通過mysqlclient操作MySQL資料庫
阿新 • • 發佈:2019-01-26
我使用的是 Python3.5,所以選擇 mysqlclient 來操作 MySQL
安裝mysqlclient
要想使 python 可以操作 mysql 就需要 MySQLdb 驅動,它是 python 操作 mysql 必不可少的模組。
使用pip安裝
pip install mysqlclient
測試
測試非常簡單,檢查 MySQLdb 模組是否可以正常匯入。
>>> import MySQLdb
沒有報錯提示MySQLdb模組找不到,說明安裝OK
python 操作mysql資料庫基礎
#coding=utf-8
import MySQLdb
#connect() 方法用於建立資料庫的連線,裡面可以指定引數:使用者名稱,密碼,主機等資訊。
#這只是連線到了資料庫,要想操作資料庫需要建立遊標。
conn= MySQLdb.connect(
host='localhost',
port = 3306,
user='root',
passwd='123456',
db ='test',
)
#通過獲取到的資料庫連線conn下的cursor()方法來建立遊標。
cur = conn.cursor()
#建立資料表,通過遊標cur 操作execute()方法可以寫入純sql語句。通過execute()方法中寫如sql語句來對資料進行操作
cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
#插入一條資料
cur.execute("insert into student values('2','Tom','3 year 2 class','9')")
#修改查詢條件的資料
cur.execute("update student set class='3 year 1 class' where name = 'Tom'")
#刪除查詢條件的資料
cur.execute("delete from student where age='9'" )
#cur.close() 關閉遊標
cur.close()
#conn.commit()方法在提交事物,在向資料庫插入一條資料時必須要有這個方法,否則資料不會被真正的插入。
conn.commit()
#conn.close()關閉資料庫連線
conn.close()
插入資料
通過上面execute()方法中寫入純的sql語句來插入資料並不方便。如:
cur.execute("insert into student values('2','Tom','3 year 2 class','9')")
我要想插入新的資料,必須要對這條語句中的值做修改。我們可以做如下修改:
#coding=utf-8
import MySQLdb
conn= MySQLdb.connect(
host='localhost',
port = 3306,
user='root',
passwd='123456',
db ='test',
)
cur = conn.cursor()
#插入一條資料
sqli="insert into student values(%s,%s,%s,%s)"
cur.execute(sqli,('3','Huhu','2 year 1 class','7'))
cur.close()
conn.commit()
conn.close()
假如要一次向資料表中插入多條值呢?
#coding=utf-8
import MySQLdb
conn= MySQLdb.connect(
host='localhost',
port = 3306,
user='root',
passwd='123456',
db ='test',
)
cur = conn.cursor()
#一次插入多條記錄
sqli="insert into student values(%s,%s,%s,%s)"
cur.executemany(sqli,[
('3','Tom','1 year 1 class','6'),
('3','Jack','2 year 1 class','7'),
('3','Yaheng','2 year 2 class','7'),
])
cur.close()
conn.commit()
conn.close()
executemany()
方法可以一次插入多條值,執行單挑sql語句,但是重複執行引數列表裡的引數,返回值為受影響的行數。