一、Python連接MySQL數據庫
1.導入模塊
#導入模塊
import pymysql
2.打開數據庫連接
#打開數據庫連接 #注意:這里已經假定存在數據庫testdb,db指定了連接的數據庫,當然這個參數也可以沒有 db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='1234', db='testdb', charset='utf8')
3.創建游標對象cursor
#使用cursor方法創建一個游標 cursor = db.cursor()
二、數據庫基本操作
使用execute()方法來實現對數據庫的基本操作。
1.查詢數據庫版本
#查詢數據庫版本 cursor.execute("select version()") data = cursor.fetchone() print(" Database Version:%s" % data)
2.創建數據庫
#創建數據庫test cursor.execute("drop database if exists test") #如果數據庫已經存在,那么刪除后重新創建 sql = "create database test" cursor.execute(sql)
3.創建數據表
#創建數據庫表 cursor.execute("drop table if exists employee") #如果數據表已經存在,那么刪除后重新創建 sql = """ CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT ) """ cursor.execute(sql)
4.查詢操作
#查詢數據表數據 sql = "select * from employee" cursor.execute(sql) data = cursor.fetchone() print(data)
5.插入操作
#插入數據 sql = "insert into employee values ('李','梅',20,'W',5000)" cursor.execute(sql) db.commit() #查看插入后的結果 sql = "select * from employee" cursor.execute(sql) data = cursor.fetchone() print(data)
6.指定條件查詢數據
#指定條件查詢數據表數據 sql = " select * from employee where income > '%d' " % (1000) cursor.execute(sql) data = cursor.fetchone() print(data)
7.更新操作
#更新數據庫 sql = " update employee set age = age+1 where sex = '%c' " % ('W') cursor.execute(sql) db.commit() #查看更新后的結果 sql = "select * from employee" cursor.execute(sql) data = cursor.fetchone() print(data)
8.刪除操作
#刪除數據 sql = " delete from employee where age > '%d' " % (30) cursor.execute(sql) db.commit() #查看更新后的結果 sql = "select * from employee" cursor.execute(sql) data = cursor.fetchone() print(data)
三、關閉數據庫連接
db.close()
四、其他
1.說明
- 上例中"sql=..."語句,是經典的MySQL語句的形式,將數據庫語句寫在雙引號內,形成類似字符串的形式;
- 使用cursor對象的execute()方法具體執行數據庫的操作;
- 對於插入、更新、刪除等操作,需要使用db.commit()來提交到數據庫執行,對於查詢、創建數據庫和數據表的操作不需要此語句。
2.為有效避免因為錯誤導致的后果,使用以下方式來執行數據庫的操作:
try: # 執行 SQL 語句 cursor.execute(sql) # 提交修改 db.commit() except: # 發生錯誤時回滾 db.rollback()
