Python3 MySQL操作(个人总结)

概要: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

发布了40 篇原创文章 · 获赞 31 · 访问量 62万+

猜你喜欢

转载自blog.csdn.net/weixin_38422258/article/details/104412228