App下載

pymysql庫的操作與sql查詢語句

玹333 2021-11-04 11:41:25 瀏覽數(shù) (6410)
反饋

程序員的工作少不了要和數(shù)據(jù)庫打交道。下面以 Python 語言為例,使用 Python 第三方庫 pymysql 來和 MySQL 數(shù)據(jù)庫進(jìn)行一些查詢操作。

一、pymysql

在 Python 語言關(guān)于跟數(shù)據(jù)庫交互的第三方庫有很多,以 MySQL 數(shù)據(jù)庫為例,有:mysqldb、mysqlclient、pymysql等等。

三者之間,個(gè)人比較推薦 pymysql 庫。不僅安裝簡(jiǎn)單,而且使用起來也是簡(jiǎn)單的。

安裝

pymysql 的安裝非常的簡(jiǎn)單,就和大多數(shù)庫的安裝是一樣的。只需要在終端,輸入以下的命令即可:

pip install pymysql

只需要等上片刻,就可以使用 pymysql 庫。

如果因?yàn)榫W(wǎng)速問題,也可以引用鏡像源來安裝該庫,如清華源、淘寶源等等。

pip install pymysql -i ['清華源網(wǎng)址']

使用

# 導(dǎo)入模塊
import pymysql
# 創(chuàng)建連接
conn = pymysql.connect(
host='數(shù)據(jù)庫地址,如localhost、127.0.0.1',
   user='用戶名',
   password='密碼',
   database='數(shù)據(jù)庫名'
)
# 創(chuàng)建游標(biāo)。游標(biāo)有點(diǎn)類似于指針的作用,從包括多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。
## 概括地說,游標(biāo)相當(dāng)于是臨時(shí)的數(shù)據(jù)庫對(duì)象,用來存放數(shù)據(jù)庫表中的數(shù)據(jù)行副本,也可以指向存儲(chǔ)在數(shù)據(jù)中的數(shù)據(jù)行的指針。
## 游標(biāo)用于后面執(zhí)行 sql 語句。
cursor = conn.cursor() # 如此設(shè)置,后面的結(jié)果集是以元組的形式出現(xiàn)。
# cursor = conn.cursor(pymysql.cursors.DictCursor) # 這種形式的游標(biāo),結(jié)果是以字典的形式出現(xiàn)。
# sql 語句
sql = '''SELECT * FROM table'''
# 執(zhí)行 sql 語句
cursor.execute(sql)
# 提交數(shù)據(jù)庫。當(dāng)你插入數(shù)據(jù)的時(shí)候,不執(zhí)行這一步,數(shù)據(jù)是不會(huì)導(dǎo)入數(shù)據(jù)庫的。
conn.commit()
# 關(guān)閉游標(biāo)和數(shù)據(jù)庫,釋放內(nèi)存。這是一個(gè)好習(xí)慣?。?!
cursor.close()
conn.close()

二、sql 查詢語句 SELECT

sql 這一門語言學(xué)習(xí)起來并不難,在后面的深入或許就有些復(fù)雜了。程序員經(jīng)常會(huì)使用 sql 語言來對(duì)數(shù)據(jù)庫進(jìn)行增刪改查等操作,下面主要說一下其中查詢語句 SELECT。

1、獲取表中某一列的數(shù)據(jù)

sql = '''SELECT name from tbl_role'''
cursor.execute(sql)
# fetchall 獲取所有查詢的內(nèi)容
a = cursor.fetchall()
for i in a:
   print(a)

查詢結(jié)果:

image-20211104112452518

同時(shí)也可以獲取多列或者全部的內(nèi)容。sql語句如下:

SELECT * FROM tbl_role 
SELECT column1, column2, column3 FROM tbl_role

2、DISTINCT 關(guān)鍵字

和 SELECT 語句相結(jié)合,將會(huì)去掉重復(fù)的記錄,留下唯一的信息。

sql = '''SELECT DISTINCT age FROM tbl_role'''

查詢結(jié)果:

image-20211104111935100

3、ORDER BY 排序

ORDER BY 關(guān)鍵字會(huì)起到自動(dòng)排序的作用,默認(rèn)是以升序(ASC)的形式排序。如果想要以降序的形式排序,可以加入關(guān)鍵字 DESC。

sql = '''SELECT * FROM tbl_role ORDER BY age DESC'''

查詢結(jié)果:

image-20211104112242833

4、LIMIT 關(guān)鍵字

默認(rèn)返回所有符合SQL語句中指定條件的結(jié)果。

sql = '''SELECT * from tbl_role LIMIT 5'''

5 表示獲取列表的前五行。

查詢結(jié)果:

image-20211104112452518

sql = '''SELECT * from tbl_role LIMIT 3, 5'''

如果數(shù)字在程序作為位置索引,默認(rèn)是從 0 開始。因此,3 表示從第四個(gè)位置開始,獲取前五行的信息。

查詢結(jié)果:

image-20211104112633997

三、總結(jié)

以上就是關(guān)于 Python 第三方庫 pymysql 的一些基本操作介紹和 sql 語言的查詢語句 SELECT 以及部分關(guān)鍵字的結(jié)合使用。感謝各位的閱讀!


0 人點(diǎn)贊