更新時間:2020-12-10 來源:黑馬程序員 瀏覽量:
pymysql庫中提供了兩個常用的對象:Connection對象和Cursor對象。
1. Connection對象
Connection對象用于建立與MySQL數(shù)據(jù)庫的連接,可以通過以下方法創(chuàng)建:
connect(參數(shù)列表)
以上方法中的常用參數(shù)及其含義如下:
·參數(shù)host,數(shù)據(jù)庫所在主機的IP主機地址,若數(shù)據(jù)庫位于本機,可設為localhost。
·參數(shù)port,數(shù)據(jù)庫占用的端口,默認是3306。
·參數(shù)database ,表示數(shù)據(jù)庫的名稱。
·參數(shù)user,連入數(shù)據(jù)庫時使用的用戶名。
·參數(shù)password ,用戶密碼。
·參數(shù)charset,表示通信采用的編碼方式,推薦使用utf8。
使用connect()方法向本地數(shù)據(jù)庫建立連接,示例代碼如下:
conn = pymysql.connect( host='localhost', user='root', password ='123456', database ='dbtest', charset='utf8')
pymysql庫為Connection對象提供了一些實現(xiàn)了數(shù)據(jù)庫操作的常用方法,這些方法的說明如表1所示。
表1 Connection對象的常用方法
方法 | 說明 |
---|---|
close() | 關閉連接 |
commit() | 提交當前事務 |
rollback() | 回滾當前事務。事務回滾是指,事務在運行過程中因發(fā)生某種故障而不能繼續(xù)執(zhí)行,使得系統(tǒng)將事務中對數(shù)據(jù)庫的所有已完成的更新操作全部撤銷,將數(shù)據(jù)庫返回到事務開始時的狀態(tài)。 |
cursor() | 創(chuàng)建并返回Cursor對象 |
2. Cursor對象
Cursor對象即游標對象,它主要負責執(zhí)行SQL語句。Cursor對象通過調(diào)用Connection對象的cursor()方法創(chuàng)建。使用上文創(chuàng)建的Connection對象conn獲得游標對象,示例代碼如下:
cs_obj = conn.cursor()
Cursor對象的常用屬性和方法分別如表2和表3所示。
表2 Cursor對象的常用屬性
屬性 | 說明 |
---|---|
rowcount | 獲取最近一次execute()執(zhí)行后受影響的行數(shù) |
connection | 獲得當前連接對象 |
表3 Cursor對象的常用方法
方法 | 說明 |
---|---|
close() | 關閉游標 |
execute(query, args=None) | 執(zhí)行SQL語句,返回受影響的行數(shù) |
fetchall() | 執(zhí)行SQL查詢語句,將結果集(符合SQL語句中條件的所有行集合)中的每行轉(zhuǎn)化為一個元組,再將這些元組裝入一個元組返回 |
fetchone() | 執(zhí)行SQL查詢語句,獲取下一個查詢結果集 |
多學一招:SQL語句
SQL(全稱Structure Query Language)是結構化查詢語言,也是目前應用較廣泛的用于訪問和操作關系數(shù)據(jù)庫的標準語言,具有易學易用、功能豐富的特點。下面將對基礎的SQL語句進行介紹。
(1)創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫使用“create database”語句,語法格式如下:
create database 數(shù)據(jù)庫名稱
創(chuàng)建數(shù)據(jù)庫dbtest的示例如下:
create database dbtest
(2)刪除數(shù)據(jù)庫
刪除數(shù)據(jù)庫使用“drop database”語句,語法格式如下:
drop database 數(shù)據(jù)庫名稱
刪除數(shù)據(jù)庫dbtest的示例如下:
drop database dbtest
(3)創(chuàng)建表
創(chuàng)建表使用“create table”語句,語法格式如下:
create table 表名稱( 字段名 字段類型 [約束], 字段名 字段類型 [約束], ...... 字段名 字段類型 [約束] )
MySQL支持的字段類型很豐富,主要包括數(shù)值、日期和字符串類型。其中常見的數(shù)值類型有int、double、float等,常見的日期類型有date、time、year,常見的字符串類型有char和varchar。在設計數(shù)據(jù)表的字段時,可以為其添加約束,例如,primary key用于設置某個字段為主鍵,unique用于設置某個字段的值唯一,not null用于設置某個字段不能有空值。
在之前創(chuàng)建的數(shù)據(jù)庫dbtest中創(chuàng)建數(shù)據(jù)表users,示例如下:
use dbtest; # 使用dbtest數(shù)據(jù)庫 create table users( UserID int primary key, # UserID字段被設置為主鍵 UserName varchar(20) unique, # UserName的值是惟一的,不能重復 UserPwd varchar(20) not null # UserPwd字段的值不能為空 )
(4)數(shù)據(jù)的增加
增加數(shù)據(jù)使用“insert into”語句實現(xiàn),語法格式如下:
insert into table_name (字段1, 字段2,......字段n) values (值1, 值2, ......值n); 例如,向users表里添加2行數(shù)據(jù): insert into users(userid,username,userpwd) values(1,'xiaoMing','123456'); insert into users(userid,username,userpwd) values(2,'xiaoHong','654321');
(5) 數(shù)據(jù)的刪除
刪除數(shù)據(jù)指從數(shù)據(jù)庫中將記錄徹底刪除,使用“delete”語句和where子句實現(xiàn),語法格式如下:
delete from 表名稱 where 條件
例如,從users表中將第1條數(shù)據(jù)刪除:
delete from users where UserID = 1
(6) 數(shù)據(jù)的更新
更新數(shù)據(jù)使用“update”語句和where子句實現(xiàn),語法格式如下:
update 表名稱 set 字段1 = 數(shù)值1, 字段2 = 數(shù)值2, 字段3 = 數(shù)值3.. .. where 條件
例如,將表users中UserID為1的用戶名稱改為“小華”:
update users set UserName = "小華" where UserID = 1
(7) 數(shù)據(jù)的查詢
查詢數(shù)據(jù)使用“select”語句實現(xiàn),語法格式如下:
select 字段1,字段2,......字段n from 表名稱
還可以使用select語句和where子句實現(xiàn)條件查詢,語法格式如下:
select 字段1,字段2,......字段n from 表名稱 where 條件
例如,從users表中查詢所有的數(shù)據(jù):
use dbtest; select * from users
猜你喜歡:
如何做數(shù)據(jù)分析?數(shù)據(jù)分析有什么作用?