日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Python连接MySQL数据库之pymysql模块使用

發布時間:2024/8/26 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python连接MySQL数据库之pymysql模块使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python3連接MySQL

本文介紹Python3連接MySQL的第三方庫--PyMySQL的基本使用。

PyMySQL介紹

PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務器的一個庫,Python2中則使用mysqldb。

Django中也可以使用PyMySQL連接MySQL數據庫。

PyMySQL安裝

#終端中安裝pymysql
pip install pymysql
python3.6 使用 pymysql 連接 Mysql 數據庫及 簡單的增刪改查操作

折騰好半天的數據庫連接,由于之前未安裝 pip ,而且自己用的python 版本為3.6. 只能用 pymysql 來連接數據庫,(如果有和我一樣未安裝 pip 的朋友請 點這里http://blog.csdn.net/qq_37176126/article/details/72824404 ),下邊 簡單介紹一下 連接的過程,以及簡單的增刪改查操作。
1.通過 pip 安裝 pymysql

進入 cmd 輸入 pip install pymysql
回車等待安裝完成;

安裝完成后出現如圖相關信息,表示安裝成功。

連接數據庫

MySQL 連接


使用mysql二進制方式連接

您可以使用MySQL二進制方式進入到mysql命令提示符下來連接MySQL數據庫。

實例

以下是從命令行中連接mysql服務器的簡單實例:

#[root@host]# mysql -u root -p
#Enter password:******

在登錄成功后會出現 mysql> 命令提示窗口,你可以在上面執行任何 SQL 語句。

以上命令執行后,登錄成功輸出結果如下:

#Welcome to the MySQL monitor.  Commands end with ; or g.
#Your MySQL connection id is 2854760 to server version: 5.0.9

#Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

在以上實例中,我們使用了root用戶登錄到mysql服務器,當然你也可以使用其他mysql用戶登錄。

如果用戶權限足夠,任何用戶都可以在mysql的命令提示窗口中進行SQL操作。

退出 mysql> 命令提示窗口可以使用 exit 命令,如下所示:

mysql> exit
Bye

創建數據庫

#-- 創建一個名為day59的數據庫


cerate database day59;
# -- 使用day59數據庫
 use day59;
#-- 創建一個userinfo表
 create table userinfo (id int auto_increment primary key,name varchar(10) not null, pwd varchar(18) not null );

#-- 查看表結構是否正確
desc userinfo;

#-- 添加3條測試數據 insert into userinfo (name, pwd) values ("alex", "alex3714"),("xiaohei", "123456"),("yimi", "654321"); #-- 查看數據 select * from userinfo; #-- 根據特定的用戶名和密碼從數據庫中檢索 select * from userinfo where name="alex" and pwd="alex3714";



注意事項

在進行本文以下內容之前需要注意:

你有一個MySQL數據庫,并且已經啟動。
你有可以連接該數據庫的用戶名和密碼
你有一個有權限操作的database

基本使用

# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句的光標對象
cursor = conn.cursor()
# 定義要執行的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;
"""
# 執行SQL語句
cursor.execute(sql)
# 關閉光標對象
cursor.close()
# 關閉數據庫連接
conn.close()

#注意:harset="utf8",中間沒有空格,因為mySql不支持

返回字典格式數據:

# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句并且將結果作為字典返回的游標
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 定義要執行的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;
"""
# 執行SQL語句
cursor.execute(sql)
# 關閉光標對象
cursor.close()
# 關閉數據庫連接
conn.close()

注意:

charset=“utf8”,編碼不要寫成"utf-8"

數據庫版登錄


增刪改查操作

# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句的光標對象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "Alex"
age = 18
# 執行SQL語句
cursor.execute(sql, [username, age])
# 提交事務
conn.commit()
cursor.close()
conn.close()


mysql端:

插入數據失敗回滾

# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句的光標對象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "Alex"
age = 18
try:
    # 執行SQL語句
    cursor.execute(sql, [username, age])
    # 提交事務
    conn.commit()
except Exception as e:
    # 有異常,回滾事務
    conn.rollback()
cursor.close()
conn.close()



獲取插入數據的ID(關聯操作時會用到)

# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句的光標對象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "Alex"
age = 18
try:
    # 執行SQL語句
    cursor.execute(sql, [username, age])
    # 提交事務
    conn.commit()
    # 提交之后,獲取剛插入的數據的ID
    last_id = cursor.lastrowid
except Exception as e:
    # 有異常,回滾事務
    conn.rollback()
cursor.close()
conn.close()

批量執行

# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句的光標對象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
data = [("Alex", 18), ("Egon", 20), ("Yuan", 21)]
try:
    # 批量執行多條插入SQL語句
    cursor.executemany(sql, data)
    # 提交事務
    conn.commit()

except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()



由于數據庫的編碼格式不一樣所以出現亂碼:

創建數據庫的時候指定編碼需要:

創建列表的時候也要指定一下,避免亂碼:

# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句的光標對象
cursor = conn.cursor()
sql = "DELETE FROM USER1 WHERE id=%s;"
try:
    cursor.execute(sql, [4])
    # 提交事務
    conn.commit()
except Exception as e:
    # 有異常,回滾事務
    conn.rollback()
cursor.close()
conn.close()


# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句的光標對象
cursor = conn.cursor()
# 修改數據的SQL語句
sql = "UPDATE USER1 SET age=%s WHERE name=%s;"
username = "Alex"
age = 80
try:
    # 執行SQL語句
    cursor.execute(sql, [age, username])
    # 提交事務
    conn.commit()
except Exception as e:
    # 有異常,回滾事務
    conn.rollback()
cursor.close()
conn.close()


#查詢操作

import pymysql  #導入 pymysql  
  
#打開數據庫連接  
db= pymysql.connect(host="localhost",user="root",  
    password="123456",db="test",port=3307)  
  
# 使用cursor()方法獲取操作游標  
cur = db.cursor()  
  
#1.查詢操作  
# 編寫sql 查詢語句  user 對應我的表名  
sql = "select * from user"  
try:  
    cur.execute(sql)    #執行sql語句  
  
    results = cur.fetchall()    #獲取查詢的所有記錄  
    print("id","name","password")  
    #遍歷結果  
    for row in results :  
        id = row[0]  
        name = row[1]  
        password = row[2]  
        print(id,name,password)  
except Exception as e:  
    raise e  
finally:  
    db.close()  #關閉連接  

查詢單條數據

# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句的光標對象
cursor = conn.cursor()
# 查詢數據的SQL語句
sql = "SELECT id,name,age from USER1 WHERE id=1;"
# 執行SQL語句
cursor.execute(sql)
# 獲取單條查詢數據
ret = cursor.fetchone()
cursor.close()
conn.close()
# 打印下查詢結果
print(ret)


查詢多條數據

# 導入pymysql模塊
import pymysql
# 連接database
conn = pymysql.connect(host=“你的數據庫地址”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
# 得到一個可以執行SQL語句的光標對象
cursor = conn.cursor()
# 查詢數據的SQL語句
sql = "SELECT id,name,age from USER1;"
# 執行SQL語句
cursor.execute(sql)
# 獲取多條查詢數據
ret = cursor.fetchall()
cursor.close()
conn.close()
# 打印下查詢結果
print(ret)


進階用法

# 可以獲取指定數量的數據
cursor.fetchmany(3)
# 光標按絕對位置移動1
cursor.scroll(1, mode="absolute")
# 光標按照相對位置(當前位置)移動1
cursor.scroll(1, mode="relative")

總結

以上是生活随笔為你收集整理的Python连接MySQL数据库之pymysql模块使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 香蕉av一区二区 | www.五月婷 | 国精产品一区一区三区有限公司杨 | 欧美成人h版 | 欧美性猛交xxx乱大交3 | 久久亚洲AV成人无码国产野外 | 久久人人插 | 成人动漫在线观看免费 | 91手机在线播放 | 韩国中文字幕hd久久精品 | 天天综合网在线 | 亚洲天天做 | 亚洲女同视频 | 亚洲国产精品人人爽夜夜爽 | 欧美aaa级| 国产a视频 | 2020狠狠干 | 逼逼爱插插网站 | 国产精品高潮呻吟视频 | 国产又粗又猛又黄又爽的视频 | 免费草逼网站 | 成人午夜免费在线 | 99资源在线 | 久久久久久久国产精品美女 | 午夜激情视频在线观看 | 白峰美羽在线播放 | 日韩欧美亚洲一区二区 | 欧美人xxx| 中文字幕视频免费 | 精品一区二区三区四区五区 | а 天堂 在线 | 校园春色 亚洲色图 | 91看片在线| 成人综合在线观看 | 欧美性受xxxx狂喷水 | 日韩一区二区三区四区五区六区 | 香蕉成人在线视频 | 日韩在线一二三区 | 绝顶高潮合集videos | wwwxx日本 | 韩国主播青草55部完整 | 性高湖久久久久久久久免费 | 国产三级av在线 | 久久人人爽人人爽人人 | 少妇一级淫片免费放 | 三级艳丽杨钰莹三级 | 亚洲精品在线观看网站 | 欧美一级做a爰片久久高潮 久热国产精品视频 | av毛片在线| 欧美在线免费看 | 日日夜夜操视频 | 日本少妇裸体 | 色婷婷av777 麻豆传媒网站 | 性一交一乱一乱一视频 | 三级网站在线 | 污污视频免费观看 | 手机在线免费视频 | 69精品久久久久久久 | 被两个男人吃奶三p爽文 | 亚洲综合社区 | 日韩精品视频网 | 自拍偷拍色图 | 欧美福利影院 | 青青草久久久 | 欧美激情一区二区三区 | 九九久久网 | 日日操狠狠操 | 午夜精品久久久久久久96蜜桃 | 亚洲午夜剧场 | 天天操天天操天天操 | 亚洲综合不卡 | 国产综合精品一区二区三区 | 欧美s码亚洲码精品m码 | 91国产精品 | 99国产视频在线 | 日韩欧美国产电影 | 亚洲AV无码精品色毛片浪潮 | 成人a区 | 伊人看片| 伊人久久精品视频 | 亚洲综合日韩 | 色鬼综合 | 天堂a在线 | 天天射夜夜骑 | 久久国产精品波多野结衣av | 亚洲一区免费观看 | 爱情岛亚洲论坛入口福利 | 老牛影视少妇在线观看 | 欧美亚洲国产另类 | 欧美啪啪网站 | 亚洲精品乱码 | 久久一| 啪啪资源| 午夜寂寞院| 九九久久免费视频 | 97精品一区二区三区 | 麻豆久久久9性大片 | 色狗网站 | 久久久综合久久久 |