最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Pymysql介紹及其增刪改查

2023-07-17 15:06 作者:程序員四次元ポケット  | 我要投稿

學習目標

  • 能夠自己動手將對應的數(shù)據(jù)導入到數(shù)據(jù)庫

  • 知道外鍵約束的作用

  • 了解E-R模型的組成部分

  • 能夠舉例說出生活中 1對1 1對多 多對多關系的例子

  • 知道一個表結構設計是否滿足范式的要求

  • 能夠說出 python 操作數(shù)據(jù)庫的步驟

  • 能夠 connect 方法創(chuàng)建連接對象

  • 能夠使用連接對象的 cursor()方法 創(chuàng)建游標對象

  • 能夠使用游標對象的 execute()方法執(zhí)行 SQL 語句

  • 能夠使用游標對象的 close()方法關閉游標對象

  • 能夠使用連接對象的 close()方法關閉連接對象

  • 能夠使用游標對象的 fetchall()方法取出所有數(shù)據(jù)

  • 能夠使用游標對象的 fetchone()方法取出一條數(shù)據(jù)

  • 能夠說出如何避免 SQL 注入問題

數(shù)據(jù)準備

1. 數(shù)據(jù)準備

  • 創(chuàng)建數(shù)據(jù)表



  • 插入數(shù)據(jù)



2. SQL語句強化

  • 查詢類型cate_name為 '超極本' 的商品名稱、價格



  • 顯示商品的種類



  • 求所有電腦產(chǎn)品的平均價格,并且保留兩位小數(shù)



  • 顯示每種商品的平均價格



  • 查詢每種類型的商品中 最貴、最便宜、平均價、數(shù)量



  • 查詢所有價格大于平均價格的商品,并且按價格降序排序



分表操作

學習目標

  • 能夠把一個表中的數(shù)據(jù)放到多個表中

1. 分表操作步驟

  • 問題表

由于只存在商品信息一張表 其中既有商品信息又有分類名稱和品牌名稱。當把某個商品信息刪除后,本不應該刪除的<獨立于商品信息的分類和品牌>等信息結果也隨著刪除商品信息而刪除,那么此時存在刪除異常

  • 解決方案

如圖我們創(chuàng)建兩張表 商品種類表 商品品牌表 存儲對應的信息 就不會出現(xiàn)刪除異常了

  • 最終效果

有了這樣的最終表,我們的商品種類和商品品牌信息就能獨立保存起來

  • 分表操作步驟

  • 第一步: 創(chuàng)建商品種類表

  • 第二步: 同步數(shù)據(jù)到商品種類表中

  • 第三步: 更新商品信息表數(shù)據(jù)

  • 第四步: 修改商品信息表表結構


2. 根據(jù)商品表中的分類信息創(chuàng)建分類表

  • 創(chuàng)建 "商品分類"表

由于只存在一張表 其中既有商品信息又有分類名稱和品牌名稱。當把某種分類或者品牌的商品全部刪除后,本不應該刪除<獨立于商品信息的分類和品牌>等信息結果也隨著刪除商品信息而刪除,那么此時存在刪除異常。

為解決刪除異常問題,則必須再創(chuàng)建分類表和品牌表單獨用來存儲數(shù)據(jù)。

  • 將分類信息導入到分類表中

  • 查詢goods表中商品的種類

  • 將分組結果寫入到goods_cates商品種類數(shù)據(jù)表

insert?into?goods_cates?(name)?? ?select?cate_name?from?goods?group?by?cate_name;

  • 將商品表中的分類名稱更改為分類名稱對應的分類id

  • 通過goods_cates數(shù)據(jù)表來更新goods表


3. 根據(jù)商品表中的品牌信息創(chuàng)建品牌表

  • 創(chuàng)建 "商品品牌表" 表并導入品牌名稱

  • 通過create table ...select來創(chuàng)建數(shù)據(jù)表并且同時寫入記錄,一步到位

  • 使用商品品牌表中的信息更新商品表信息

  • 通過goods_brands數(shù)據(jù)表來更新goods數(shù)據(jù)表


4. 修改商品表表結構

  • 查看 goods 的數(shù)據(jù)表結構,會發(fā)現(xiàn) cate_name 和 brand_name對應的類型為 varchar

  • 通過alter table語句修改表結構


pymysql-查操作

學習目標

  • 能夠說出 python 操作數(shù)據(jù)庫的步驟

  • 能夠 connect 方法創(chuàng)建連接對象

  • 能夠使用連接對象的 cursor()方法 創(chuàng)建游標對象

  • 能夠使用游標對象的 execute()方法執(zhí)行 SQL 語句

  • 能夠使用游標對象的 close()方法關閉游標對象

  • 能夠使用連接對象的 close()方法關閉連接對象

1. pymysql模塊的作用

問題: 如何使用客戶端將100000行數(shù)據(jù)插入到數(shù)據(jù)庫?

回答: 大家會發(fā)現(xiàn)如果用之前客戶端幾乎是不可能完全這個任務的, 因為我們不可能去構造出那個插入10w行數(shù)據(jù)的SQL. 可是,如果我們有一個功能能夠插入一行數(shù)據(jù),借助程序強大的特點-重復,就可以輕而易舉的就將10w行數(shù)據(jù)收入麾下. 那么在Python中實現(xiàn)這樣的操作可以使用pymysql這個模塊完成.

2. Python 中操作 MySQL 步驟

操作步驟:

  1. 導入模塊

  2. 創(chuàng)建連接

  3. 創(chuàng)建游標

  4. 執(zhí)行sql

  5. 關閉游標

  6. 關閉連接

步驟詳解:

  • 引入模塊

  • 創(chuàng)建連接(創(chuàng)建connection連接對象)

作用: 用于建立與數(shù)據(jù)庫的連接, 調(diào)用pymysql模塊中的connect()方法.

  • 創(chuàng)建游標(通過連接對象獲取游標) ?游標的作用: 執(zhí)行sql語句(使用頻度最高的語句為select、insert、update、delete)

  • 獲取游標對象

  • 執(zhí)行sql(這里需要使用游標執(zhí)行sql語句)

    • 通過游標執(zhí)行sql

  • 獲取結果集中的一條數(shù)據(jù)

  • 獲取結果集中的所有數(shù)據(jù)

  • 關閉游標

  • 關閉連接

3. pymysql練習


總結

操作步驟:

  1. 導入模塊

  2. 創(chuàng)建連接

  3. 創(chuàng)建游標

  4. 執(zhí)行sql

  5. 關閉游標

  6. 關閉連接

pymysql-增刪改操作

學習目標

- 能夠使用游標對象完成數(shù)據(jù)庫的增刪改

1. 數(shù)據(jù)提交和數(shù)據(jù)回滾

  • 數(shù)據(jù)提交commit

數(shù)據(jù)庫中的基本操作: 增刪改查. 上一個章節(jié)中我們知道如何完成對數(shù)據(jù)庫中數(shù)據(jù)的獲取其實也就是查, 比如獲取一條數(shù)據(jù)或者獲取所有數(shù)據(jù)等. 接下來我們學習下如何增刪改.

注意:

查數(shù)據(jù), 并不會對原有數(shù)據(jù)庫中的數(shù)據(jù)造成影響. 而增刪改這三個操作都會對原有數(shù)據(jù)庫中的數(shù)據(jù)造成影響. 也就說查數(shù)據(jù)不會修改原有數(shù)據(jù)空中的數(shù)據(jù), 而增刪改會修改原有數(shù)據(jù)庫中的數(shù)據(jù).

當對原有數(shù)據(jù)庫中數(shù)據(jù)有修改時需要使用


# commit()提交數(shù)據(jù)到數(shù)據(jù)庫# 這里可以理解為 數(shù)據(jù)庫詢問是否確定修改數(shù)據(jù) 然后commit()就是確定修改的意思conn.commit()

  • 數(shù)據(jù)回滾rollback()

當我們在使用pymysql對數(shù)據(jù)進行響應的操作時, 會有可能會有一些錯誤操作, 這是如果想要數(shù)據(jù)返回到最原始的狀態(tài)可以使用數(shù)據(jù)回滾操作

注意:

數(shù)據(jù)回滾是需要在 commit() 之前才有效的, 也就是說數(shù)據(jù)還沒有確定修改這時候使用數(shù)據(jù)回滾才是有效的


# 回滾數(shù)據(jù)到什么都沒做的原始狀態(tài) 即撤銷剛剛所有的修改操作conn.rollback()

2. pymysql的增刪改查操作

在掌握了數(shù)據(jù)提交commit后, 實際上pymysql的數(shù)據(jù)的增刪改和數(shù)據(jù)的查就沒有什么區(qū)別了, 這里僅僅是對sql語句進行修改即可, 其他的操作步驟和原先的查是一樣的


總結

數(shù)據(jù)提交:

  • commit()

數(shù)據(jù)回滾

  • rollback()


Pymysql介紹及其增刪改查的評論 (共 條)

分享到微博請遵守國家法律
沾益县| 沽源县| 宜宾县| 阳山县| 莱阳市| 盱眙县| 土默特左旗| 澎湖县| 凤翔县| 河间市| 方正县| 赞皇县| 佳木斯市| 泽州县| 福鼎市| 绥滨县| 彩票| 凌源市| 通化县| 兴化市| 桐乡市| 喀喇| 湛江市| 句容市| 临泽县| 沂水县| 承德县| 沭阳县| 子长县| 师宗县| 平罗县| 永修县| 黄龙县| 永昌县| 桂平市| 安新县| 宁武县| 长武县| 乳山市| 三亚市| 梁河县|