首頁技術(shù)文章正文

pymysql庫常用對象用法

更新時間:2020-12-10 來源:黑馬程序員 瀏覽量:

pymysql庫中提供了兩個常用的對象:Connection對象和Cursor對象。

1. Connection對象

Connection對象用于建立與MySQL數(shù)據(jù)庫的連接,可以通過以下方法創(chuàng)建:

connect(參數(shù)列表)

以上方法中的常用參數(shù)及其含義如下:

·參數(shù)host,數(shù)據(jù)庫所在主機(jī)的IP主機(jī)地址,若數(shù)據(jù)庫位于本機(jī),可設(shè)為localhost。

·參數(shù)port,數(shù)據(jù)庫占用的端口,默認(rèn)是3306。

·參數(shù)database ,表示數(shù)據(jù)庫的名稱。

·參數(shù)user,連入數(shù)據(jù)庫時使用的用戶名。

·參數(shù)password ,用戶密碼。

·參數(shù)charset,表示通信采用的編碼方式,推薦使用utf8。

使用connect()方法向本地?cái)?shù)據(jù)庫建立連接,示例代碼如下:

conn = pymysql.connect( 
    host='localhost',
    user='root',
    password ='123456',
    database ='dbtest',
    charset='utf8')

pymysql庫為Connection對象提供了一些實(shí)現(xiàn)了數(shù)據(jù)庫操作的常用方法,這些方法的說明如表1所示。

表1 Connection對象的常用方法

方法說明
close()關(guān)閉連接
commit()提交當(dāng)前事務(wù)
rollback()回滾當(dāng)前事務(wù)。事務(wù)回滾是指,事務(wù)在運(yùn)行過程中因發(fā)生某種故障而不能繼續(xù)執(zhí)行,使得系統(tǒng)將事務(wù)中對數(shù)據(jù)庫的所有已完成的更新操作全部撤銷,將數(shù)據(jù)庫返回到事務(wù)開始時的狀態(tài)。
cursor()創(chuàng)建并返回Cursor對象


2. Cursor對象

Cursor對象即游標(biāo)對象,它主要負(fù)責(zé)執(zhí)行SQL語句。Cursor對象通過調(diào)用Connection對象的cursor()方法創(chuàng)建。使用上文創(chuàng)建的Connection對象conn獲得游標(biāo)對象,示例代碼如下:

cs_obj = conn.cursor()

Cursor對象的常用屬性和方法分別如表2和表3所示。

表2 Cursor對象的常用屬性

屬性說明
rowcount獲取最近一次execute()執(zhí)行后受影響的行數(shù)
connection獲得當(dāng)前連接對象

表3 Cursor對象的常用方法

方法說明
close()關(guān)閉游標(biāo)
execute(query, args=None)執(zhí)行SQL語句,返回受影響的行數(shù)
fetchall()執(zhí)行SQL查詢語句,將結(jié)果集(符合SQL語句中條件的所有行集合)中的每行轉(zhuǎn)化為一個元組,再將這些元組裝入一個元組返回
fetchone()執(zhí)行SQL查詢語句,獲取下一個查詢結(jié)果集

多學(xué)一招:SQL語句

SQL(全稱Structure Query Language)是結(jié)構(gòu)化查詢語言,也是目前應(yīng)用較廣泛的用于訪問和操作關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,具有易學(xué)易用、功能豐富的特點(diǎn)。下面將對基礎(chǔ)的SQL語句進(jìn)行介紹。

(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ì)數(shù)據(jù)表的字段時,可以為其添加約束,例如,primary key用于設(shè)置某個字段為主鍵,unique用于設(shè)置某個字段的值唯一,not null用于設(shè)置某個字段不能有空值。

在之前創(chuàng)建的數(shù)據(jù)庫dbtest中創(chuàng)建數(shù)據(jù)表users,示例如下:

use dbtest; # 使用dbtest數(shù)據(jù)庫
create table users(
    UserID int primary key, # UserID字段被設(shè)置為主鍵
    UserName varchar(20) unique, # UserName的值是惟一的,不能重復(fù)
    UserPwd varchar(20) not null # UserPwd字段的值不能為空
)


(4)數(shù)據(jù)的增加

增加數(shù)據(jù)使用“insert into”語句實(shí)現(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子句實(shí)現(xiàn),語法格式如下:

delete from 表名稱 where 條件

例如,從users表中將第1條數(shù)據(jù)刪除:

delete from users where UserID = 1


(6) 數(shù)據(jù)的更新

更新數(shù)據(jù)使用“update”語句和where子句實(shí)現(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”語句實(shí)現(xiàn),語法格式如下:

select 字段1,字段2,......字段n from 表名稱


還可以使用select語句和where子句實(shí)現(xiàn)條件查詢,語法格式如下:

select 字段1,字段2,......字段n from 表名稱 where 條件

例如,從users表中查詢所有的數(shù)據(jù):

use dbtest;
select * from users


猜你喜歡:

Scrapy框架的工作原理是什么?

如何做數(shù)據(jù)分析?數(shù)據(jù)分析有什么作用?

緩存穿透及解決方案

Python+數(shù)據(jù)分析培訓(xùn)課程


分享到:
在線咨詢 我要報(bào)名
和我們在線交談!