pymysql數據庫之建庫建表、增刪改查

上次有同學問到,Python的持久化怎麼處理。這次就帶大家來體驗一下,Python怎麼去訪問數據庫。

首先要有個數據庫

現在的數據庫分類很多,以mysql爲例。需要到mysql的官網上去下載mysql。
下載路徑
下載打開安裝包,勾選常見的安裝位置等配置以後,設置數據庫用戶名密碼,啓動mysql就可以了。
mac上的啓動可以沿着一下路徑開啓: 系統偏好設置------Mysql------開啓。如圖所示:
在這裏插入圖片描述
在這裏插入圖片描述
點擊按鈕,當狀態標誌從紅色的stopped變成綠色的running,就說明mysql已經啓動完成。

然後需要有個Python模塊

Python3的數據庫模塊可以是pymysql。安裝可以通過pip安裝:
在這裏插入圖片描述
安裝完成後,你的python數據庫的底層依賴算是完成了。

愉快的創建數據庫、增刪改查

創建數據庫可以下載圖形客戶端(mysql workbench或者navicat等等),也可以通過Python代碼。
這裏我們使用Python代碼來處理:

建庫建表

建數據庫,庫名爲awesome;建表,表名blogs;共有三列,列名 id,user_id, name

import pymysql

# 建庫和建表
con = pymysql.connect(host='localhost', user='root',
                      passwd='123456', charset='utf8')
cur = con.cursor()
# 開始建庫
cur.execute("create database awesome character set utf8;")
# 使用庫
cur.execute("use awesome;")
# 建表
cur.execute("create table blogs(id char(20),user_id char(20),name char(20),)character set utf8;")

查詢操作

查詢表,表名blogs

# 1.建立連接,用戶root 密碼mysql123456 dbname:awesome
db = pymysql.connect("localhost","root","mysql123456","awesome")
# 獲取遊標
cur = db.cursor()
# sql查詢語句 表名blogs
sql = "select * from blogs"
try:
    cur.execute(sql)  # 執行sql語句

    results = cur.fetchall()  # 獲取查詢的所有記錄
    print("id", "user_id", "name")
    # 遍歷結果
    for row in results:
        id = row[0]
        user_id = row[1]
        name = row[4]
        print(id, name, user_id)
except Exception as e:
    raise e
finally:
    db.close()  # 關閉連接

插入操作

往表blog裏插入一行數據(id,user_id,name) = (“test_id”,‘test_user_id’,‘test_name’)

# 2.插入操作
db = pymysql.connect("localhost","root","mysql12345","awesome")
cur_insert = db.cursor()

# sql插入語句 表名blogs
sql_insert ="""insert into blogs(id,user_id,name) values ("test_id",'test_user_id','test_name')"""

try:
    cur_insert.execute(sql_insert)
    # 提交
    db.commit()
    print('開始數據庫插入操作')
except Exception as e:
    db.rollback()
    print('數據庫插入操作錯誤回滾')
finally:
    db.close()

更新操作

更新user_id = “test_user_id” 的行,將其 name 更新爲 “update_test_name”

# 3.更新操作
db = pymysql.connect("localhost","root","mysql12345","awesome")
cur_update = db.cursor()

sql_update = "update awesome.blogs set name = '%s' where user_id = '%s'"
try:
    cur_update.execute(sql_update % ("update_test_name", "test_user_id"))
    # 提交
    db.commit()
    print('開始數據庫更新操作')
except Exception as e:
    db.rollback()
    print('數據庫更新操作錯誤回滾')
finally:
    db.close()

刪除操作

刪除 name = “update_test_name” 的行

# 4.刪除操作
db = pymysql.connect("localhost","root","mysql12345","awesome")
cur_delete = db.cursor()

sql_delete = "delete from awesome.blogs where name = '%s'"

try:
    cur_delete.execute(sql_delete % ("update_test_name"))  # 像sql語句傳遞參數
    # 提交
    db.commit()
    print('開始數據庫刪除操作')
except Exception as e:
    db.rollback()
    print('數據庫刪除操作錯誤回滾')
finally:
    db.close()

這裏以mysql爲例,如果使用mongodb等其他數據庫,使用方法也是類似的,大家可以舉一反三。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章