python每日一練之mysql.connector
阿新 • • 發佈:2020-08-07
python的第三方資料庫驅動器蠻多的,我用的是官方驅動MYSQL-connector,網友可以到https://pypi.org/下載自行安裝。
1.資料庫的連線
import mysql.connector if __name__ == "__main__": db = mysql.connector.connect( host="localhost", user="root", passwd="xxx", db="my_db3", buffered=True
) db_cursor = db.cursor()
也可以在連線資料庫時,不指定資料庫,在後面再執行“use database db_name”
buffered=Ture 是為了查詢做準備,如果沒有宣告buffed,並且上個查詢沒有取出所有的結果行,連續查詢會出錯。
# 建立資料庫 create_db = "create database my_db3" db_cursor.execute(create_db) use_db = "use database my_db3"
2.表的建立和變更
# 建立表 create_table_stu = "create table stud(SID int unsigned auto_increment primary key," \ "name varchar(10), sex varchar(10))" db_cursor.execute(create_table_stu) # alter表 # 增加列 add_column = "alter table stud add age int after sex" db_cursor.execute(add_column) # 更改列 change_column = "alter table stud change age agee int" db_cursor.execute(change_column)# 刪除列 drop_column = "alter table stud drop agee" db_cursor.execute(drop_column) # 重命名錶 rename_table = "alter table stud rename students" db_cursor.execute(rename_table)
3.資料的增刪查改
當表中資料有更新時,需要在更新資料後執行db.commit(),db_cursor.lastrowid返回修改行的最後一行行號,rowcount返回修改的總行數。
# 插入資料 insert_value = "insert into students(SID,name,sex) values(null,'王五','男')" db_cursor.execute(insert_value) db.commit() print(db_cursor.rowcount) insert_values = "insert into students(SID,name,sex) values(%s,%s,%s)" values = [(None, 'test1', '女'), (None, 'test2', '女'), (None, 'test3', '男')] db_cursor.executemany(insert_values, values) db.commit() print(db_cursor.lastrowid) # 更新資料 update_value = 'update students set sex="男" where name="test2"' db_cursor.execute(update_value) db.commit() # 刪除資料 delete_row = "delete from students where name = 'test2'" db_cursor.execute(delete_row) db.commit()
查詢資料
# 查詢資料 select_sql1 = "select * from students" my_cursor.execute(select_sql1) select_result1 = my_cursor.fetchone() # 返回緩衝區的一行 print(select_result1) # 如果沒有宣告buffed,並且上個查詢沒有取出所有的結果行,連續查詢會出錯。 select_sql2 = "select * from students limit 3 offset 1" my_cursor.execute(select_sql2) select_result2 = my_cursor.fetchall() # 獲取所有查詢結果 print(select_result2)
使用後,記得關閉db_cursor和db,關於資料庫的語句和複雜的查詢、資料型別,後面在溫習時會再另寫一篇文章。