python连接mysql用哪个模块_Python连接MySQL数据库之pymysql模块使用
Python3連接MySQL
本文介紹Python3連接MySQL的第三方庫--PyMySQL的基本使用。
PyMySQL介紹
PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務(wù)器的一個(gè)庫,Python2中則使用mysqldb。
Django中也可以使用PyMySQL連接MySQL數(shù)據(jù)庫。
PyMySQL安裝pip?install?pymysql
連接數(shù)據(jù)庫
注意事項(xiàng)
在進(jìn)行本文以下內(nèi)容之前需要注意:你有一個(gè)MySQL數(shù)據(jù)庫,并且已經(jīng)啟動(dòng)。
你有可以連接該數(shù)據(jù)庫的用戶名和密碼
你有一個(gè)有權(quán)限操作的database
基本使用#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句的光標(biāo)對(duì)象
cursor?=?conn.cursor()
#?定義要執(zhí)行的SQL語句
sql?=?"""
CREATE?TABLE?USER1?(
id?INT?auto_increment?PRIMARY?KEY?,
name?CHAR(10)?NOT?NULL?UNIQUE,
age?TINYINT?NOT?NULL
)ENGINE=innodb?DEFAULT?CHARSET=utf8;
"""
#?執(zhí)行SQL語句
cursor.execute(sql)
#?關(guān)閉光標(biāo)對(duì)象
cursor.close()
#?關(guān)閉數(shù)據(jù)庫連接
conn.close()
返回字典格式數(shù)據(jù):#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句并且將結(jié)果作為字典返回的游標(biāo)
cursor?=?conn.cursor(cursor=pymysql.cursors.DictCursor)
#?定義要執(zhí)行的SQL語句
sql?=?"""
CREATE?TABLE?USER1?(
id?INT?auto_increment?PRIMARY?KEY?,
name?CHAR(10)?NOT?NULL?UNIQUE,
age?TINYINT?NOT?NULL
)ENGINE=innodb?DEFAULT?CHARSET=utf8;
"""
#?執(zhí)行SQL語句
cursor.execute(sql)
#?關(guān)閉光標(biāo)對(duì)象
cursor.close()
#?關(guān)閉數(shù)據(jù)庫連接
conn.close()
注意:
charset=“utf8”,編碼不要寫成"utf-8"
增刪改查操作
增#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句的光標(biāo)對(duì)象
cursor?=?conn.cursor()
sql?=?"INSERT?INTO?USER1(name,?age)?VALUES?(%s,?%s);"
username?=?"Alex"
age?=?18
#?執(zhí)行SQL語句
cursor.execute(sql,?[username,?age])
#?提交事務(wù)
conn.commit()
cursor.close()
conn.close()
插入數(shù)據(jù)失敗回滾
在執(zhí)行增刪改操作時(shí),如果不想提交前面的操作,可以使用 rollback() 回滾取消操作。#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句的光標(biāo)對(duì)象
cursor?=?conn.cursor()
sql?=?"INSERT?INTO?USER1(name,?age)?VALUES?(%s,?%s);"
username?=?"Alex"
age?=?18
try:
#?執(zhí)行SQL語句
cursor.execute(sql,?[username,?age])
#?提交事務(wù)
conn.commit()
except?Exception?as?e:
#?有異常,回滾事務(wù)
conn.rollback()
cursor.close()
conn.close()
獲取插入數(shù)據(jù)的ID(關(guān)聯(lián)操作時(shí)會(huì)用到)#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句的光標(biāo)對(duì)象
cursor?=?conn.cursor()
sql?=?"INSERT?INTO?USER1(name,?age)?VALUES?(%s,?%s);"
username?=?"Alex"
age?=?18
try:
#?執(zhí)行SQL語句
cursor.execute(sql,?[username,?age])
#?提交事務(wù)
conn.commit()
#?提交之后,獲取剛插入的數(shù)據(jù)的ID
last_id?=?cursor.lastrowid
except?Exception?as?e:
#?有異常,回滾事務(wù)
conn.rollback()
cursor.close()
conn.close()
批量執(zhí)行#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句的光標(biāo)對(duì)象
cursor?=?conn.cursor()
sql?=?"INSERT?INTO?USER1(name,?age)?VALUES?(%s,?%s);"
data?=?[("Alex",?18),?("Egon",?20),?("Yuan",?21)]
try:
#?批量執(zhí)行多條插入SQL語句
cursor.executemany(sql,?data)
#?提交事務(wù)
conn.commit()
except?Exception?as?e:
#?有異常,回滾事務(wù)
conn.rollback()
cursor.close()
conn.close()
刪#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句的光標(biāo)對(duì)象
cursor?=?conn.cursor()
sql?=?"DELETE?FROM?USER1?WHERE?id=%s;"
try:
cursor.execute(sql,?[4])
#?提交事務(wù)
conn.commit()
except?Exception?as?e:
#?有異常,回滾事務(wù)
conn.rollback()
cursor.close()
conn.close()
改#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句的光標(biāo)對(duì)象
cursor?=?conn.cursor()
#?修改數(shù)據(jù)的SQL語句
sql?=?"UPDATE?USER1?SET?age=%s?WHERE?name=%s;"
username?=?"Alex"
age?=?80
try:
#?執(zhí)行SQL語句
cursor.execute(sql,?[age,?username])
#?提交事務(wù)
conn.commit()
except?Exception?as?e:
#?有異常,回滾事務(wù)
conn.rollback()
cursor.close()
conn.close()
查
查詢單條數(shù)據(jù)#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句的光標(biāo)對(duì)象
cursor?=?conn.cursor()
#?查詢數(shù)據(jù)的SQL語句
sql?=?"SELECT?id,name,age?from?USER1?WHERE?id=1;"
#?執(zhí)行SQL語句
cursor.execute(sql)
#?獲取單條查詢數(shù)據(jù)
ret?=?cursor.fetchone()
cursor.close()
conn.close()
#?打印下查詢結(jié)果
print(ret)
查詢多條數(shù)據(jù)#?導(dǎo)入pymysql模塊
import?pymysql
#?連接database
conn?=?pymysql.connect(host=“你的數(shù)據(jù)庫地址”,?user=“用戶名”,password=“密碼”,database=“數(shù)據(jù)庫名”,charset=“utf8”)
#?得到一個(gè)可以執(zhí)行SQL語句的光標(biāo)對(duì)象
cursor?=?conn.cursor()
#?查詢數(shù)據(jù)的SQL語句
sql?=?"SELECT?id,name,age?from?USER1;"
#?執(zhí)行SQL語句
cursor.execute(sql)
#?獲取多條查詢數(shù)據(jù)
ret?=?cursor.fetchall()
cursor.close()
conn.close()
#?打印下查詢結(jié)果
print(ret)
進(jìn)階用法#?可以獲取指定數(shù)量的數(shù)據(jù)
cursor.fetchmany(3)
#?光標(biāo)按絕對(duì)位置移動(dòng)1
cursor.scroll(1,?mode="absolute")
#?光標(biāo)按照相對(duì)位置(當(dāng)前位置)移動(dòng)1
cursor.scroll(1,?mode="relative")
總結(jié)
以上是生活随笔為你收集整理的python连接mysql用哪个模块_Python连接MySQL数据库之pymysql模块使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vs 启动调用的目标发生异常_协程中的取
- 下一篇: android获取短信息,从其ID An