1. 程式人生 > >Python基礎學習-MySQL與Python結合

Python基礎學習-MySQL與Python結合

一、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的版本
pymysql操作步驟:    
序號 描述
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'
效果如下: