使用 pymysql
操作 mysql
数据库,数据库的创建,表的创建,以及数据的增删改查
安装
安装不复杂,直接使用 pip
安装即可
python -m pip install pymysql
使用
下面是一个完整操作数据库的例子,其中包括
- 创建一个数据库连接,可选择是否直接操作的需要数据库,若不指定,需要执行
user databse;
类似的来指定需要的数据库,当然也可以用这个语句切换数据库 - 在连接的基础上取一个游标对象
cursor
- 通过
cursor
执行 (execute()
)sql
语句来达到操作数据库的目的- 插入、更新、删除操作需要额外的
commit()
操作,事务级操作支持rollback()
- 查询需要对返回结果 (查询到的数据数量) 进行判断,再结合
fetchone()
、fetchmany(size=None)
、fetchall()
获取到查询的数据,结合实际情况自定义操作
- 插入、更新、删除操作需要额外的
- 最后不要忘记关闭连接
示例:
import pymysql
localhost = '192.168.1.161'
localport = 3306
username = 'root'
pwd = 'ubuntu123'
# connect mysql
# 直接连接数据库 conn = pymysql.connect(host=localhost, port=3306, user=username, password=pwd, database="school", charset="utf8")
conn = pymysql.connect(host=localhost, port=localport, user=username, password=pwd,charset="utf8")
# cursor 主要用来执行命令和接收返回值
cursor = conn.cursor()
# 创建名为'school'数据库
cdbret = cursor.execute("CREATE DATABASE if not exists school")
# 切换到需要使用的数据库
cursor.execute("use school")
# 在'school'中创建名为'school'的表
createtableret = cursor.execute("CREATE TABLE if not exists `school_info` (\
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,\
`name` VARCHAR(64) DEFAULT NULL COMMENT '学校名称',\
`starttime` INT(11) DEFAULT NULL COMMENT '创建日期',\
`location` VARCHAR(64) DEFAULT NULL COMMENT '地理位置',\
PRIMARY KEY (`id`)\
) ENGINE=INNODB DEFAULT CHARSET=utf8 ")
name = '北京大学'
starttime = 1898
location = '北京'
# 插入操作 execure 的返回值是受影响的行数
insertsql = "INSERT INTO `school_info`(`name`, `starttime`, `location`) VALUES ('{}', '{}', '{}')".format( name, starttime, location)
try:
insertret = cursor.execute(insertsql)
# 插入、更新、删除操作需要提交至数据库连接执行
conn.commit()
except:
conn.rollback()
# 查询操作
queryret = cursor.execute("SELECT * FROM `school_info`")
if queryret:
print("find {} datas".format(queryret))
# 处理返回值需要使用 cursor.fetchone() cursor.fetchmany(self.size=None) cursor.fetchall()
data = cursor.fetchone()
print("one data {}".format(data))
# 退出时需要关闭cursor和conn
cursor.close()
conn.close()
总结
整个使用下来 pymysql
的操作不是很复杂,sql
语句和我们命令行下进入 mysql
后的命令语句没有任何差别,算是一款很简单实用的工具了~