程序員的工作少不了要和數(shù)據(jù)庫打交道。下面以 Python 語言為例,使用 Python 第三方庫 pymysql 來和 MySQL 數(shù)據(jù)庫進(jìn)行一些查詢操作。
一、pymysql
在 Python 語言關(guān)于跟數(shù)據(jù)庫交互的第三方庫有很多,以 MySQL 數(shù)據(jù)庫為例,有:mysqldb、mysqlclient、pymysql等等。
三者之間,個(gè)人比較推薦 pymysql 庫。不僅安裝簡單,而且使用起來也是簡單的。
安裝
pymysql 的安裝非常的簡單,就和大多數(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ù)庫對象,用來存放數(shù)據(jù)庫表中的數(shù)據(jù)行副本,也可以指向存儲在數(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ù)是不會導(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)常會使用 sql 語言來對數(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é)果:
同時(shí)也可以獲取多列或者全部的內(nèi)容。sql語句如下:
SELECT * FROM tbl_role
SELECT column1, column2, column3 FROM tbl_role
2、DISTINCT 關(guān)鍵字
和 SELECT 語句相結(jié)合,將會去掉重復(fù)的記錄,留下唯一的信息。
sql = '''SELECT DISTINCT age FROM tbl_role'''
查詢結(jié)果:
3、ORDER BY 排序
ORDER BY 關(guān)鍵字會起到自動排序的作用,默認(rèn)是以升序(ASC)的形式排序。如果想要以降序的形式排序,可以加入關(guān)鍵字 DESC。
sql = '''SELECT * FROM tbl_role ORDER BY age DESC'''
查詢結(jié)果:
4、LIMIT 關(guān)鍵字
默認(rèn)返回所有符合SQL語句中指定條件的結(jié)果。
sql = '''SELECT * from tbl_role LIMIT 5'''
5 表示獲取列表的前五行。
查詢結(jié)果:
sql = '''SELECT * from tbl_role LIMIT 3, 5'''
如果數(shù)字在程序作為位置索引,默認(rèn)是從 0 開始。因此,3 表示從第四個(gè)位置開始,獲取前五行的信息。
查詢結(jié)果:
三、總結(jié)
以上就是關(guān)于 Python 第三方庫 pymysql 的一些基本操作介紹和 sql 語言的查詢語句 SELECT 以及部分關(guān)鍵字的結(jié)合使用。感謝各位的閱讀!