示例數據庫名demo,表名info
select * from info; 查看該表數據
+----+-------+--------+-----+---------------------+---------------------+
| id | name | gender | age | createTime | updateTime |
+----+-------+--------+-----+---------------------+---------------------+
| 1 | Miles | Male | 21 | 2019-12-24 10:10:41 | 2019-12-24 10:11:02 |
| 2 | Mary | Female | 15 | 2019-12-24 19:26:24 | 2019-12-24 19:26:24 |
| 3 | Marx | Male | 35 | 2019-12-24 19:39:19 | 2019-12-24 19:39:19 |
| 4 | Fox | Female | 8 | 2019-12-24 19:39:19 | 2019-12-24 19:39:19 |
+----+-------+--------+-----+---------------------+---------------------+
查詢數據
獲取查詢結果的三種方法:
- fetchone() 獲取查詢結果中最早的一行數據,返回結果為一個元組,對應查詢的字段,如果查詢結果為空則返回None
- fetchall() 獲取所有的查詢結果,返回結果為一個大元組,大元組中每個元素為小元組,小元組就是每一行的數據,對應查詢的字段,如果查詢結果為空則返回一個空元組
- fetchmany() 和fetchall()類似,只不過要傳入一個整數表示要獲取多少行數據,從最早開始算,如果傳入參數大於結果條數則獲取所有結果,如果查詢結果為空則返回空元組
import pymysql
# 連接數據庫服務器,參數:IP地址,用戶名,密碼,要使用的數據庫名稱,編碼格式
conn = pymysql.connect('服務器ip地址', 'mysql用戶名', 'mysql密碼', '數據庫名', charset='utf8')
# 獲得一個游標對象來操作數據庫
cur = conn.cursor()
# 編寫sql
sql = 'select name, gender, age from info;'
# 傳入sql並執行
cur.execute(sql)
# 使用fetchone,fetchmany,fetchall三種方法之一獲得查詢的結果
result = cur.fetchall()
# 關閉游標和數據庫連接
cur.close()
conn.close()
# 打印結果
print(result)
輸出結果:
# fetchone()
('Miles', 'Male', 21)
# fetchall()
(('Miles', 'Male', 21), ('Mary', 'Female', 15), ('Marx', 'Male', 35), ('Fox', 'Female', 8))
# fetchmany(2)
(('Miles', 'Male', 21), ('Mary', 'Female', 15))
增刪改
增刪改操作不需要獲得結果,但是要commit提交操作
import pymysql
# 連接數據庫服務器,參數:IP地址,用戶名,密碼,要使用的數據庫名稱,編碼格式
conn = pymysql.connect('服務器ip地址', 'mysql用戶名', 'mysql密碼', '數據庫名', charset='utf8')
# 獲得一個游標對象來操作數據庫
cur = conn.cursor()
# 編寫sql
sql = 'insert into info(name, gender, age) values("Demo", "Male", 10);' # 新增數據
# sql = 'delete from info where name="Miles";' # 刪除數據
# sql = 'update info set name="Mark" where name="Marx";' # 修改數據
# 傳入sql並執行
cur.execute(sql)
# 提交修改
conn.commit()
# 關閉游標和數據庫連接
cur.close()
conn.close()
