用python操作mysql資料庫

2021-10-19 09:19:13 字數 3360 閱讀 2812

資料庫的安裝和連線

pymysql的安裝

pip install pymysql

python連線資料庫

view code

更多引數

建立表操作

複製**

import pymysql

db = pymysql.connect(「localhost」,「testuser」,「test123」,「testdb」 )

cursor = db.cursor()

cursor.execute(「drop table if exists employee」)

sql = 「」「create table employee (

first_name char(20) not null,

last_name char(20),

age int,

*** char(1),

income float )」""

cursor.execute(sql)

db.close()

複製**

運算元據

插入操作

複製**

import pymysql

db = pymysql.connect(「localhost」,「testuser」,「test123」,「testdb」 )

cursor = db.cursor()

sql = 「」「insert into employee(first_name,

last_name, age, ***, income)

values (『mac』, 『mohan』, 20, 『m』, 2000)」""

try:

cursor.execute(sql) # 執行sql語句

db.commit() # 提交到資料庫執行

except:

db.rollback() # 如果發生錯誤則回滾

db.close()

複製**

另一種形式

查詢操作

python查詢mysql使用 fetchone() 方法獲取單條資料, 使用fetchall() 方法獲取多條資料。

fetchone(): 該方法獲取下乙個查詢結果集。結果集是乙個物件

fetchall(): 接收全部的返回結果行.

rowcount: 這是乙個唯讀屬性,並返回執行execute()方法後影響的行數。

複製**

import pymysql

db = pymysql.connect(「localhost」,「testuser」,「test123」,「testdb」 )

cursor = db.cursor()

sql = 「select * from employee

where income > %s」 % (1000)

try:

cursor.execute(sql)# 執行sql語句

results = cursor.fetchall()# 獲取所有記錄列表

for row in results:

fname = row[0]

lname = row[1]

age = row[2]

*** = row[3]

income = row[4]

# 列印結果

print (「fname=%s,lname=%s,age=%s,***=%s,income=%s」 %

(fname, lname, age, ***, income ))

except:

print (「error: unable to fetch data」)

db.close()

複製**

更新操作

複製**

import pymysql

db = pymysql.connect(「localhost」,「testuser」,「test123」,「testdb」 )

cursor = db.cursor()

sql = 「update employee set age = age + 1 where *** = 『%c』」 % (『m』)

try:

cursor.execute(sql) # 執行sql語句

db.commit() # 提交到資料庫執行

except

db.rollback() # 發生錯誤時回滾

db.close()

複製**

刪除操作

複製**

import pymysql

db = pymysql.connect(「localhost」,「testuser」,「test123」,「testdb」 )

cursor = db.cursor()

sql = 「delete from employee where age > %s」 % (20)

trycursor.execute(sql) # 執行sql語句

db.commit() # 提交修改

except

db.rollback() # 發生錯誤時回滾# 關閉連線

db.close()

複製**

資料備份

資料庫的邏輯備份

複製**

#語法:

#示例:

#單庫備份

mysqldump -uroot -p123 db1 > db1.sql

mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql

#多庫備份

mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql

#備份所有庫

mysqldump -uroot -p123 --all-databases > all.sql

複製**

資料恢復

複製**

#方法一:

[root@egon backup]# mysql -uroot -p123 < /backup/all.sql

#方法二:

mysql> use db1;

mysql> set sql_log_bin=0; #關閉二進位制日誌,只對當前session生效

mysql> source /root/db1.sql

複製**

事務和鎖

begin; # 開啟事務

select * from emp where id = 1 for update; # 查詢id值,for update新增行鎖;

update emp set salary=10000 where id = 1; # 完成更新

commit; # 提交事務

用Python對MySQL簡單操作

import pymysql 連線資料庫 conn pymysql.connect host localhost user root password helloguitar532123 charset utf8 獲得浮標 cursor conn.cursor 建立資料庫 sql create cr...

用mysqlbinlog恢復MySQL資料庫

如果mysql 伺服器 啟用了二進位制日誌,你可以使用mysql binlog工具來恢復從指定的時間點開始 例如,從你最後一次備份 直到現在或另乙個指定的時間點的資料。關於啟用二進位制日誌的資訊,參見5.11.3節,二進位制日誌 對於 mysql binlog的詳細資訊,參見mysql手冊8.6節,...

C WindowsForm操作MySql資料庫

1 c 提供運算元據庫技術 ado技術 2 運算元據庫步驟 連線資料庫 要先開啟允許遠端連線設定 1 定義連線資料庫字串 sql server 動態鏈結庫 using system.data.sqlclient string constr server uid root pwd 1365756916...