Python 連接 MySQL資料庫
Python標準資料庫介面為Python DB-API,為我們的開發人員提供了資料庫應用編程介面,
1、Python DB-API使用流程
- 匯入API模塊
- 獲取與資料庫的連接
- 執行SQL陳述句和存盤程序
- 關閉資料庫連接
2、安裝MySQL-Connector
我們可以直接去MySQL-connector-python下載地址去下載

上面有兩個download按鍵,上面是64位的MySQL驅動器安裝程式,下面是32位的MySQL驅動器安裝程式,
我們按需安裝,如果你的MySQL是64位就裝64位的驅動器,如果你的MySQL是32位就裝32位的驅動器,
如果安裝完成后,我們進入CMD中,輸入python,進入Python的字符互動界面,我們輸入以下的代碼,如果沒有出錯的話,表明安裝成功,
import mysql.connector
2、 Python連接資料庫以及一些對資料庫的操作
2.1、創建MySQL驅動
創建驅動時,需要自己資料庫的主機名,用戶名和用戶密碼,
mydb = mysql.connector.connect(
host="yourHost", # 資料庫主機地址
user="yourUserName", # 資料庫用戶名
passwd="yourPassword" # 資料庫用戶密碼
)
注意: passwd記得不要打錯了,很容易被打成password,
2.2、創建游標物件
游標,通俗說法就是“游動的標志“,在資料庫中是一個很重要的概念,
有時,我們需要執行一條查詢陳述句時,往往會得到N條結果,執行SQL陳述句時,去除這些回傳結果的介面就是游標,沿著這個介面,我們可以一次取出一行記錄,
如果我們不適用游標功能的話,我們執行一個查詢陳述句,系統會直接將記錄回傳到界面中,我們不能對資料進行操作,
如果我們開啟了游標功能, 再去執行這條陳述句時,系統會幫我們找到這些行,先存放起來,然后提供一個游標介面,當你需要資料時,借助這個游標一行行取出資料,每取出一個記錄,游標指標就朝前移動一次,直到取完最后一行資料為止,
# 創建游標物件
mycursor = mydb.cursor()
2.3、創建資料庫
我們通過游標物件的execute()方法來執行SQL陳述句,
注意: 使用游標物件來執行SQL陳述句,系統并不會將結果回傳到螢屏上,而是將上述得到的結果找個地方存盤起來,提供一個游標介面給我們,我們需要呼叫資料時,可以從中提取資料,
# 創建資料庫
mycursor.execute("create database mydb")
2.4、展示資料庫
我們可以通過使用”Show databases“陳述句來查看資料庫是否存在,
# 展示資料庫
mycursor.execute("show databases")
for i in mycursor:
print(i)
查看結果如下:

2.5、創建資料表
我們可以在游標物件中的execute陳述句中使用”CREATE TABLE“陳述句,
創建資料表前,我們需要確保資料庫已存在,以下我們創建一個名為User的資料表,
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
cursor = mydb.cursor()
cursor.execute("create table user (id int(10), name varchar(10));")
cursor.execute("show tables")
for i in cursor:
print(i)
執行成功后,我們將看到資料庫創建的資料表user,

注意: 這里我是執行了一遍,所以注釋了創建資料庫的陳述句,
2.6、插入資料
插入資料是用“INSERT INTO"陳述句,
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "INSERT INTO user VALUES (1, 'Mike')"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "記錄插入成功")
顯示結果

查看插入結果

注意: 涉及到對資料庫內容的修改都需要使用commit方法,需要提交,
2.7、批量插入
插入資料是用“INSERT INTO"陳述句,
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "INSERT INTO user VALUES (2, 'Bob'), (3, 'Jobs'), (4, 'Alice'), (5, 'Mark')"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "記錄插入成功")
顯示結果

查看插入結果

2.8、查詢資料
查詢資料使用SELECT陳述句
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM user")
myresult = mycursor.fetchall() #獲取所有記錄
for i in myresult:
print(i)
查詢結果

讀取一條資料
我們如果只想讀取一條資料,可以使用fetchone方法
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM user")
myresult = mycursor.fetchone() #獲取所有記錄
print(myresult)
查看結果

where條件陳述句
查詢指定條件的資料,我們需要使用where陳述句,
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM user WHERE name LIKE '%o%'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
查看結果

2.9、排序
查詢結果排序可以使用 ORDER BY 陳述句,默認的排序方式為升序,關鍵字為 ASC,如果要設定降序排序,可以設定關鍵字 DESC,
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM user ORDER BY name"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
查看結果

2.10、洗掉資料
洗掉資料使用"DELTE FROM"陳述句
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "DELETE FROM user WHERE name = 'Mark'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "條記錄被洗掉")
查看結果

查詢結果

2.11 更新資料
資料表的更新使用"UPDATE"陳述句
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "UPDATE user SET name = 'Tom' WHERE name = 'Bob'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "條記錄被修改")
查看結果

查詢結果

2.12 洗掉表
洗掉表使用 “DROP TABLE” 陳述句, IF EXISTS 關鍵字是用于判斷表是否存在,只有在存在的情況才洗掉,
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="mydb"
)
mycursor = mydb.cursor()
sql = "DROP TABLE IF EXISTS user" # 洗掉資料表 user
mycursor.execute(sql)
洗掉結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/180995.html
標籤:其他
上一篇:MySQL——查詢當前時間
下一篇:Mybatis框架從入門到放棄
