1. 程式人生 > >通過mysqlclient操作MySQL資料庫

通過mysqlclient操作MySQL資料庫

我使用的是 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語句,但是重複執行引數列表裡的引數,返回值為受影響的行數。