mysql-connector是一个Python模块,它在Python中重新实现MySQL协议,它比较慢,但不需要C库,因此更便携.
mysql-connector 是 MySQL 官方提供的驱动器。
python -m pip install mysql-connector
需要导入驱动模块,mysql.connector,并使用connector模块中的connect方法连接数据库,
查看源码 def connect(*args, **kwargs),该方法中允许传入元祖模式参数,和字典类型参数,
即就是:
#字典
localdb=mysql.connector.connect(
host='127.0.0.1',
user='root11',
passwd='root22')
#元祖
localdb=mysql.connector.connect('127.0.0.1','root11','root22')
例一:
import mysql.connector
localdb=mysql.connector.connect(
host='127.0.0.1',
user='root11',
passwd='root22')
print(localdb)
mycursor=localdb.cursor()
mycursor.execute("CREATE DATABASE python3sql")
mycursor.execute("show databases")
for x in mycursor:
print(x)
正如例一,创建一个cursor实例来执行数据库操作。
插入:在执行插入语句时候,数据库表有更新,需要像数据库提交事务,如例二,
mydb.commit() # 数据表内容有更新,必须使用到该语句
此处插入可以进行多数据插入,使用 mycursor.executemany(sql,val2) 方法。
删除:同插入
更新:同插入
查询:在执行查询语句时候,需要返回查询结果,
全部返回 fetchall(self),
部分返回 fetchmany(self,size=1),
单数据返回 fetchone(self)
例二:
import mysql.connector
mydb=mysql.connector.connect(
host='localhost',
user='root',
passwd='root',
database='python3sql'
)
sql='insert into sites (name,url) values (%s,%s)'
val=('python2mysql','http;//www.baidu.com')
print(mydb)
mycursor=mydb.cursor()
mycursor.execute(sql,val)
mydb.commit() # 数据表内容有更新,必须使用到该语句
print(mycursor.rowcount, "记录插入成功。")
mycursor.execute('show tables')
for x in mycursor:
print(x)
print("~~~~~~~~~~~~~~~~~~批量插入~~~~~~~~~~~~~~~~~")
val2=[('百度','www.baidu.com'),
('腾讯','http://tengxun.cn'),
('新浪','http://sina.com')]
mycursor.executemany(sql,val2)
mydb.commit()
print(mycursor.rowcount,"批量插入成功")