Python操做MySQL總結

模塊的安裝和配置

本人用的是ubuntu系統下虛擬環境的python3,故要先進到虛擬環境再下載pymysql。先用workon查看虛擬環境叫什麼?再進入用pip下載。python

進入後輸入命令行:pip3 install pymysql,若是提示須要升級pip版本,按照其指定命令輸入便可。若是你用的是ubuntu下的python,就不須要進入虛擬環境就能夠直接pip安裝。mysql

安裝完成後,在cd到下圖的指定文件下,使用sudo打開文件輸入密碼,最後修改指定部分。sql

將bind-address的127.0.0.1改成0.0.0.0,IP地址127.0.0.1是隻有本地才能鏈接,0.0.0.0是全部的ip都能訪問。數據庫

python操做MySQL

首先導包ubuntu

import pymysql

再創建和數據庫的鏈接,配置pymysql.connect鏈接數據庫。mysql的端口號是3306.fetch

con = pymysql.connect(
host = '127.0.0.1',
port = 3306,
user = 'wanglong',
password = '12580',
db = 'mydb', #數據庫名
charset = 'utf8')

再定義遊標,以後利用python操做數據庫的語句都是基於這個遊標。命令行

cur = con.cursor()

利用execute執行MySQL語句3d

a = cur.execute('show tables')
print (a)

上面的結果是6,返回的表格的數目。進入數據庫執行相應語句效果以下:code

若是想輸出上圖的具體數據,就要用fetchone或fetchall來提取數據。blog

cur.execute('show tables')
d = cur.fetchone()
f = cur.fetchall()
print (d)
print (*f)#拆包
('choose',)
('col',) ('course',) ('stu',) ('stu_for',) ('test',)

能夠發現,再取出全部數據時,其第一條數據並無取出,緣由是在取出全部數據前實行了取出一條數據的命令。

我還能夠建一張新表,以下所示:

tb = '''
create table test(
id int primary key auto_increment,
name varchar(20)
)
'''
cur.execute(tb)

須要注意的是,當咱們利用execute語句執行mysql的插入、刪除、更新時,它會自定開啓一個事務,故若是不提交這個事務而運行,底層數據不會有任何改變。提交事務有兩種方法,一種是原始的mysql語句,一種是pymysql模塊內的方法。

cur.exectue('commit')
con.commit()

最後要注意的是,在全部操做完成以後要先關閉遊標,再關閉鏈接。

cur.close()
con.close()
相關文章
相關標籤/搜索