安裝mysqlclient
要想使 python 可以操作 mysql 就需要 MySQLdb 驅動,它是 python 操作 mysql 必不可少的模塊。
使用pip安裝
pip install mysqlclient
安裝出錯
在此站點下載mysqlclient安裝包:https://www.lfd.uci.edu/~gohlke/pythonlibs/# 進行本地安裝
以下是從這個網站上面檢索到的mysqlclient的所有版本
cp37代表python3.7的版本,win32代表32位的系統,所以需要選擇正確,否則安裝過程會報錯平台不匹配。
在命令行中進入安裝文件所在路徑運行命令:pip install mysqlclient‑1.3.13‑cp37‑cp37m‑win_amd64.whl(所下載文件全稱)
測試
測試非常簡單,檢查 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')")
- 1
我要想插入新的數據,必須要對這條語句中的值做修改。我們可以做如下修改:
#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語句,但是重復執行參數列表里的參數,返回值為受影響的行數。