Python基礎學習-MySQL與Python結合
阿新 • • 發佈:2019-02-08
一、MySQL
1、下載安裝MySQL 5.0
2、mysql操作
- cmd->
-
mysql -h 主機名 -u 使用者名稱 -p
- -h : 該命令用於指定客戶端所要登入的MySQL主機名, 登入當前機器該引數可以省略;
- -u : 所要登入的使用者名稱;
- -p : 告訴伺服器將會使用一個密碼來登入, 如果所要登入的使用者名稱密碼為空, 可以忽略此選項。
- MySQL command line client
3、具體SQL語言操作
二、mysql-connector-python 由於MySQL伺服器以獨立的程序執行,並通過網路對外服務,所以,需要支援Python的MySQL驅動來連線到MySQL伺服器。- 官網下載 只有2.7、3.2、3.3版本的
- 在github上找了個支援3.4的版本
序號 | 描述 |
1 | 去github上下載pymysql的安裝包 pymysql |
2 | 解壓到某個碟符下 |
3 | 開啟cmd視窗(win環境下),進入pymysql的根目錄下執行命令,python setup.py install |
4 | 在程式裡,匯入pymysql |
5 | 開始連線資料庫 |
程式碼如下:
__author__ = 'qindongliang'
#匯入pymysql的包
import pymysql
try:
#獲取一個數據庫連線,注意如果是UTF-8型別的,需要制定資料庫
conn=pymysql.connect(host='localhost',user='root',passwd='qin',db='person',port=3306,charset='utf8')
cur=conn.cursor()#獲取一個遊標
cur.execute('select * from person')
data=cur.fetchall()
for d in data :
#注意int型別需要使用str函式轉義
print("ID: "+str(d[0])+' 名字: '+d[1]+" 性別: "+d[2])
cur.close()#關閉遊標
conn.close()#釋放資料庫資源
except Exception :print("發生異常")
結果如下:
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/mysql.py
ID: 1 名字: 秦天 性別: 男
ID: 2 名字: 王晶 性別: 女
Process finished with exit code 0
示例來自:《如何使用Python3.4連線MySQL》
import pymysql
conn=pymysql.connect(host='localhost',user='root',passwd='****',db='learnpy')
cur=conn.cursor()
sqll_ct='create table students(' \
'id int unsigned not null auto_increment primary key,' \
'name char(32) not null,' \
'sex char(4) not null,' \
'age tinyint unsigned not null);'
cur.execute(sqll_ct)
print("create table done!")
sqll_ins=['insert into students values(NULL,"guodegang","M",38);', \
'insert into students values(NULL,"yuqian","M",47);', \
'insert into students values(NULL,"yangmi","F",27);', \
'insert into students values(NULL,"angelababy ","F",26);', \
'insert into students values(NULL,"wangjukai","M",17);', \
'insert into students values(NULL,"yiyangqianxi","M",16);', \
'insert into students values(NULL,"wangyuan","M",16);', \
'insert into students values(NULL,"liuyifei","F",18);']
for lang in sqll_ins:
cur.execute(lang)
print("insert info done!")
sqll_s='select * from students where sex="M" order by age'
cur.execute(sqll_s)
print("select info done!")
data=cur.fetchall()
for x in data:
print("ID: %s Name: %s Age:%d"%(str(x[0]),x[1],x[3]))
cur.close()
conn.close()
另之前一直name那塊不能輸入為中文,後來改了幾個地方才好:
1、資料庫的基字符集:改為utf8或gbk
2、資料庫連線時候加上“
charset='utf8'” 效果如下: