一、创建数据库实例

1 from pymysql import *
 2 # 创建数据库实例
 3 #1.建立数据库连接
 4 conn  = connect(host="192.168.20.101",user="root",password="123456")
 5 # 2.获取游标对象
 6 mycur = conn.cursor()
 7 #3.执行创建数据库实例,并返回int类型结果   1表示添加成功,如果数据库实例已经存在则抛出异常
 8 try:
 9     result = mycur.execute("create database pydb")
10     print("添加数据库实例后返回的结果:",result)
11 except ProgrammingError as msg:
12     print("添加数据库实例出现异常:",msg)
13 finally:
14     #4.关闭游标
15     mycur.close()
16     # 5.关闭连接
17     conn.close()

二、创建表

1 from pymysql import *
 2 # 1. 创建数据库连接对象
 3 conn = connect(host="192.168.20.101", user="root", password="123456",database="pydb")
 4 # 2.从连接对象上获取游标
 5 mycur = conn.cursor()
 6 # 3.执行创建数据库的表tb_user,返回int类型的结果  成功添加表的话,返回0 ;添加失败抛出异常
 7 try:
 8     result = mycur.execute("""
 9     CREATE TABLE `tb_user` (
10       `id` bigint(20) NOT NULL AUTO_INCREMENT,
11       `username` varchar(50) NOT NULL COMMENT '用户名',
12       `password` varchar(32) NOT NULL COMMENT '密码,加密存储',
13       `phone` varchar(20) DEFAULT NULL COMMENT '注册手机号',
14       `email` varchar(50) DEFAULT NULL COMMENT '注册邮箱',
15       `created` datetime NOT NULL,
16       `updated` datetime NOT NULL,
17       PRIMARY KEY (`id`),
18       UNIQUE KEY `username` (`username`) USING BTREE,
19       UNIQUE KEY `phone` (`phone`) USING BTREE,
20       UNIQUE KEY `email` (`email`) USING BTREE
21     ) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='用户表'
22     """)
23     print("返回结果:%d"%result)
24 except (InternalError,ProgrammingError) as msg:
25     print("表添加出现异常,异常信息:%s"%msg)
26 finally:
27     # 4关闭游标
28     mycur.close()
29     # 5 关闭连接
30     conn.close()

三、向表中插入数据

1 from pymysql import  *
 2 # 1.建立到数据库连接
 3 conn = connect(host="192.168.20.101",user="root",password="123456",database="pydb")
 4 # 2.获取游标
 5 mycur = conn.cursor()
 6 try:
 7     # 3.开启事务
 8     conn.begin()
 9     # 4.执行插入数据,并返回影响的行数
10     rowNum1 = mycur.execute("""insert into `tb_user` values(1,'lisi','e10adc3949ba59abbe56e057f20f883e','13412345678','jinxf101@126.com','2020-12-25 17:03:55','2020-12-25 17:03:55');""")
11     # 防止sql注入的风险,通过%s占位符,
12     rowNum2 = mycur.execute("""insert into `tb_user` values(%s,%s,%s,%s,%s,%s,%s);""",
13                             (2,'wangwu','202cb962ac59075b964b07152d234b70','13412345679','jinxf102@126.com','2020-12-26 17:03:55','2020-12-26 17:03:55'))
14     # 在表名后添加列名
15     rowNum3 = mycur.execute("""insert into tb_user(username,password,phone,email,created,updated) values(%s,%s,%s,%s,%s,%s);""",
16                             ('zhaoliu','e10adc3949ba59abbe56e057f20f883e','13412345675','jinxf103@126.com','2020-12-27 17:03:55','2020-12-27 17:03:55'))
17     row = rowNum1+rowNum2+rowNum3
18     print("受影响的行数:",row)
19     if row==3:
20         #提交事务
21         conn.commit()
22     else:
23         # 回滚事务
24         conn.rollback()
25 except IntegrityError as msg:
26     print("出现异常",msg)
27     # 回滚事务
28     conn.rollback()
29 finally:
30     # 关闭游标
31     mycur.close()
32     # 关闭连接
33     conn.close()

四、查询表中数据

1 from pymysql import *
 2 # 建立连接
 3 conn = connect(host="192.168.20.101",user="root",password="123456",database="pydb")
 4 # 获取游标
 5 mycur = conn.cursor()
 6 # 执行查询,并返回查询出来的数据的总行数
 7 rowNum = mycur.execute("select * from tb_user")
 8 print("共查询出 %d 行数据"%rowNum)
 9 # 获取查询出来的数据
10 results = mycur.fetchall()
11 print(type(results))
12 #遍历输出
13 for result in results:
14     # print(result)
15     print(result[0],result[1])
16 
17 #关闭游标和连接
18 mycur.close()
19 conn.close()

五、修改表中数据

1 from pymysql import *
 2 conn = connect(host="192.168.20.101",user="root",password="123456",database="pydb")
 3 mycur = conn.cursor()
 4 try:
 5     conn.begin()
 6     row = mycur.execute("update tb_user set username=%s,phone=%s,email=%s,updated=%s where id = %s",
 7                         ('zhaomin','13888889999','zhaomin@126.com','2021-01-29 20:16:20',37))
 8     # 提交事务
 9     conn.commit()
10     if row ==1:
11         print("修改成功")
12     else:
13         print("修改失败")
14 except Exception as msg:
15     #回滚事务
16     conn.rollback()
17     print("修改失败,提示信息:",msg)
18 finally:
19     # 关闭游标
20     mycur.close()
21     # 关闭数据库连接
22     conn.close()

六、删除表中数据

1 from pymysql import *
 2 # 建立数据库连接
 3 conn = connect(host="192.168.20.101",user="root",password="123456",database="pydb")
 4 # 获取游标
 5 mycur = conn.cursor()
 6 try:
 7     # 开启事务
 8     conn.begin()
 9     # 执行删除数据
10     rowNum = mycur.execute("delete from tb_user where id = %s",(37,))
11     print("受影响的行数:",rowNum)
12     conn.commit()
13 except Exception as msg:
14     print("删除抛出异常,提示信息:",msg)
15     conn.rollback()#回滚事务
16 finally:
17     # 关闭游标和数据库连接
18     mycur.close()
19     conn.close()