1. 程式人生 > >mysql與python的互動

mysql與python的互動

1. 建立一個data.sql檔案,即mysql資料庫檔案:

set names utf8;     #設立程式碼內容為utf8格式。
drop database if exists boke        #如果boke資料庫存在就刪除。
create database boke charset=utf8   #建立一個utf8格式的資料庫boke。
use boke;   #進入boke資料庫.
create table b_user(  #建立一個b_user表
    id int primary key,     #主鍵,自增長。
    uname varchar(32) not null default '',  #非空,預設值''.
    tel varchar(11) nuique not null default "",   #唯一,非空,預設值''。
    class enum("1班","2班") not null ,
    foreign key (class) refereces b_shary(s_id)   #外來鍵約束,關聯b_shary表的s_id列。 
)
insert into  b_user VALUES(null,"Ace","1111111111","1班"); 

2. python操作mysql資料庫步驟:

#步驟1:先安裝pymysql,然後在import 匯入模組pymysql在.py檔案中。
import pymysql    
#步驟2:建立一個Connection連線。
conn=connect(host="localhost",port=3306,user="root",password="mysql",database="boke",charset="utf8")
#步驟3:獲取cursor物件。
cs1=conn.cursor()
#步驟4:執行sql語句,增刪改查資料庫,並接收返回的結果result。
result=cs1.excute("select * from b_user where id>1")
#步驟5:對sql語句的返回結果進行操作處理。
print("查詢結果%s"%result)
#步驟6:關閉cursor物件。
cs1.close()
#步驟7:關閉connection連線。
conn.close()

3. python操作mysql資料庫具體案例:

import pymysql
class BOKE(object):
    def __init__(self):
        #建立一個connection連線
            self.conn=connect(host="localhost",port=3306,user="root",password="mysql",
                        database="boke",charset="utf8")
        #獲取cursor物件
        self.cs1=self.conn.cursor()
        #BOKE物件例項銷燬時,關閉cursor物件和connection連線
    def __del__(self):
        self.cs1.close()
        self.conn.close()
        #執行sql語句函式
    def sql_handle(self,sql):
        self.cs1.execute(sql)
        for tem in self.cs1.fetchall():
            print(tem)
    def select1_sql(self):
        sql="select * from b_user where name=%s"
        print(self.sql_handle(sql,["Ace"]))  #通過列表儲存%s代表的值,防止SQL注入
    def select2_sql(self):
        sql="""select * from b_user where name="Ace" """
        print(self.sql_handle(sql))
    def print_handle(self):
        print("請選擇")
        print("1:查詢使用者姓名")
        print("2.查詢使用者電話")
        return input(">>>輸入對應序號:")
    def run(self):
        while  True:
            num=print_handle()
            if num =='1':
                self.select1_sql()
            elif num=="2":
                self.select2_sql()
            else:
                print("輸入有誤!")
def main():
    boke=BOKE()
    boke.run()
if  __name__ =="__main__":
    main()