概要:PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库
一、安装pymysql
pip install pymysql
如下所示:
C:\Users\Administrator>pip install pymysql
Collecting pymysql
Downloading https://files.pythonhosted.org/packages/ed/39/15045ae46f2a123019aa
968dfcba0396c161c20f855f11dea6796bcaae95/PyMySQL-0.9.3-py2.py3-none-any.whl (47kB)
|████████████████████▌ | 30kB 11kB/s eta 0:0
|███████████████████████████▌ | 40kB 8.9kB/s
|████████████████████████████████| 51kB 11kB/s
Installing collected packages: pymysql
Successfully installed pymysql-0.9.3
C:\Users\Administrator>pip list
Package Version
---------- -------
pip 19.2.3
pymongo 3.10.1
PyMySQL 0.9.3
setuptools 41.2.0
C:\Users\Administrator>
二、安装MySQL
安装步骤可查看:https://blog.csdn.net/weixin_38422258/article/details/104231921
- 新建数据库和用户信息表用于测试
mysql> create database python3;
Query OK, 1 row affected (0.00 sec)
mysql> use python3
Database changed
mysql> CREATE TABLE `USER_INFO` (
-> `ID` varchar(48) CHARACTER SET utf8 NOT NULL COMMENT '用户ID',
-> `NAME` varchar(20) NOT NULL COMMENT '用户名',
-> `SEX` char(2) NOT NULL COMMENT '性别',
-> `PASSWORD` varchar(20) NOT NULL COMMENT '密码',
-> `PHONE` varchar(11) NOT NULL COMMENT '手机号',
-> `EMAIL` varchar(50) NOT NULL COMMENT '邮箱',
-> `PROVINCE_ID` int(6) NOT NULL COMMENT '省编码',
-> `CITY_ID` int(6) NOT NULL COMMENT '市编码',
-> `COUNTRY_ID` int(6) NOT NULL COMMENT '区/县编码',
-> `ADDRESS` varchar(50) DEFAULT NULL COMMENT '详细地址',
-> `CREATE_TIME` datetime DEFAULT NULL COMMENT '注册日期',
-> PRIMARY KEY (`ID`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.04 sec)
mysql>
SQL语句如下:
CREATE TABLE `USER_INFO` (
`ID` varchar(48) CHARACTER SET utf8 NOT NULL COMMENT '用户ID',
`NAME` varchar(20) NOT NULL COMMENT '用户名',
`SEX` char(2) NOT NULL COMMENT '性别',
`PASSWORD` varchar(20) NOT NULL COMMENT '密码',
`PHONE` varchar(11) NOT NULL COMMENT '手机号',
`EMAIL` varchar(50) NOT NULL COMMENT '邮箱',
`PROVINCE_ID` int(6) NOT NULL COMMENT '省编码',
`CITY_ID` int(6) NOT NULL COMMENT '市编码',
`COUNTRY_ID` int(6) NOT NULL COMMENT '区/县编码',
`ADDRESS` varchar(50) DEFAULT NULL COMMENT '详细地址',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '注册日期',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
三、编码示例
import pymysql
if __name__ == "__main__":
try:
conn = pymysql.connect(host='localhost', user='root', password="123456", database='python3', port=3306)
# 判断数据库连接状态是否正常
status = conn.server_status
if status == 0:
# 获取游标
cur = conn.cursor()
# 通过主键查询数据
sql = 'SELECT * FROM USER_INFO WHERE ID = %s'
# 参数
args = ('1',)
cur.execute(sql, args)
res = cur.fetchone()
print(res)
conn.close()
except Exception as e:
print(e)
('1', 'lisi', '0', '123456', '18115174635', '[email protected]', 11, 1, 21, '涌泉里22幢', datetime.datetime(2020, 2, 21, 20, 19, 36))
Process finished with exit code 0
增删改操作需要提交事务,当发生异常时需要回滚事务,具体操作不再赘述,详情可以查看w3cschool