PyCharm連接MySQL數據庫,進行創建數據庫實例的創建和表的創建以及表的增刪改查操作


一、創建數據庫實例

 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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM