python 连接数据库
程序员文章站
2024-03-13 17:22:27
...
Python连接数据库
1.连接sqlserver
import pymssql
#获取连接
#server = '127.0.0.1'
#user='sa'
#password = '123456'
#database:数据库名字
conn = pymssql.connect(server, user, password, database='sql')
#获取游标
cursor = conn.cursor()
#创建表格
cursor.execute("""
IF OBJECT_ID('record','U',IS NOT NULL
DROP TABLE table(
id INT NOT NULL,
Name VARCHAR(100),
Recordtime VARCHAR(100),
PRIMARY KEY(id)
)
""")
#查询数据,若查全部就用*
cursor.ececute('SELECT id FROM table')
#打印出查询的值
row= cursor.fetchone()
#按条件查询
curson.execute('SELECT * FROM table WHERE Name = %s',(u'小明'))
row = cursor.fetchall()
#若查询的那行输出为none,转换格式
if row[0] is None:
row0= list(row)
row0[0]=0
row=tuple(row0)
#插入数据
cursor.executemany("INSERT INTO table VALUES (%d,%s,%s)",[1,u'小明','2018-08-28']
#必须调用commit()来保持你数据的提交如果没有,将自动提交设置为true
conn.commit()
#关闭游标关闭数据库
cursor.close()
conn.close()
2.连接mysql
import pymysql
server = '127.0.0.1'
user = 'root'
password = '123456'
conn = pymysql.connect(server,user,password,database = 'record_data2')#获取连接
cursor = conn.cursor ()#获取游标
#"**ENGINE=InnoDB DEFAULT CHARSET=utf8**"-创建表的过程中增加这条,中文就不是乱码
#创建表
'''
cursor.execute("""
CREATE TABLE record_person(
id INT NOT NULL,
Recordtime VARCHAR(100),
Come_person INT NOT NULL ,
Leave_person INT NOT NULL,
PRIMARY KEY(id)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8
""")
'''
#查询数据
cursor.execute('SELECT max(id) FROM record_person')
row= cursor.fetchone()
if row[0] is None:
row0= list(row)
row0[0]=0
row=tuple(row0)
#插入数据,注:与sqlserver有些区别
cursor.execute("INSERT INTO record_person VALUES('%d','%s','%d','%d')" %(int(row[0])+1,time,person_c,person_l))
#提交数据,才会写入表格
conn.commit()
#关闭游标关闭数据库
cursor.close()
conn.close()
注:mysql与sqlserver区别
1.python 安装pymssql,pymysql:直接pip install – 就ok
2.目前在python中连接sqlserver数据库,安装pymssql,不支持Py3.6版本。pymysql 都支持
3.在数据库中如果想要添加中文或者想从表格返回中文时,在建表格时添加一行:ENGINE=InnoDB DEFAULT CHARSET=utf8,就可输出汉字(在mysql数据库亲测有效)。
4.mysql与sqlserver 插入数据时候语法有些区别:
mysql:
cursor.executemany(“INSERT INTO table VALUES (%d,%s,%s)”,[1,u’小明’,’2018-08-28’]
sqlserver:
cursor.execute(“INSERT INTO record_person VALUES(‘%d’,’%s’,’%d’,’%d’)” %(int(row[0])+1,time,person_c,person_l))**