- 1、如何使用python連接mysql資料庫
- 2、Python之MySQL操作
- 3、Python 操作 MySQL 的5種方式
- 4、掌握Python 操作 MySQL 資料庫
在 Python 語言環境下我們這樣連接資料庫。
In [1]: from mysql import connector
In [2]: cnx = connector.connect(host=”172.16.192.100″,port=3306,user=”appuser”,password=”xxxxxx”)
但是連接資料庫的背後發生了什麼呢?
答案
當我們通過驅動程序(mysql-connector-python,pymysql)連接 MySQL 服務端的時候,就是把連接參數傳遞給驅動程序,驅動程序再根據參數會發起到 MySQL 服務端的 TCP 連接。當 TCP 連接建立之後驅動程序與服務端之間會按特定的格式和次序交換數據包,數據包的格式和發送次序由 MySQL 協議 規定。MySQL 協議:整個連接的過程中 MySQL 服務端與驅動程序之間,按如下的次序發送了這些包。
MySQL 服務端向客戶端發送一個握手包,包里記錄了 MySQL-Server 的版本,默認的授權插件,密碼鹽值(auth-data)。
2. MySQL 客戶端發出 ssl 連接請求包(如果有必要的話)。
3. MySQL 客戶端發出握手包的響應包,這個包時記錄了用戶名,密碼加密後的串,客戶端屬性,等等其它信息。
4. MySQL 服務端發出響應包,這個包里記錄了登錄是否成功,如果沒有成功也會給出錯誤信息。
MySQL 是目前使用最廣泛的資料庫之一,它有著良好的性能,能夠跨平台,支持分散式,能夠承受高並發。下載地址: MySQL :: Download MySQL Community Server 安裝參考: 圖解MySQL5.7.20免安裝版配置方法-百度經驗 (baidu.com)
Python 大致有如下 5 種方式操作 MySQL。
先使用如下建表語句創建一張簡單的資料庫表。
2.1 mysqlclient
執行 pip install mysqlclient 進行安裝,看一下具體操作。
新增
查詢
cursor 查看方法
修改
刪除
2.2 PyMySQL
執行 pip install pymysql 進行安裝,使用方式與 mysqlclient 基本類似。
2.3 peewee
執行 pip install peewee 進行安裝,看一下具體操作。
定義映射類
新增
查詢
修改
刪除
2.4 SQLAlchemy
執行 pip install sqlalchemy 進行安裝,看一下具體操作。
定義映射類
新增
查詢
修改
刪除
Python學習日記
1、MySQLdb
# 前置條件
sudo apt-get install python-dev libmysqlclient-dev # Ubuntu
sudo yum install python-devel mysql-devel # Red Hat / CentOS
# 安裝
pip install MySQL-python
Windows 直接通過下載 exe 文件安裝
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(
host = “localhost”, # 主機名
user = “root”, # 用戶名
passwd = “pythontab.com”, # 密碼
db = “testdb”) # 資料庫名稱
# 查詢前,必須先獲取游標
cur = db.cursor()
# 執行的都是原生SQL語句
cur.execute(“SELECT * FROM mytable”)
for row in cur.fetchall():
print(row[0])
db.close()
2、mysqlclient
# Windows安裝
pip install some-package.whl
# linux 前置條件
sudo apt-get install python3-dev # debian / Ubuntu
sudo yum install python3-devel # Red Hat / CentOS
brew install mysql-connector-c # macOS (Homebrew)
pip install mysqlclient
3、PyMySQL
pip install PyMySQL
# 為了兼容mysqldb,只需要加入
pymysql.install_as_MySQLdb()
import pymysql
conn = pymysql.connect(host = ‘127.0.0.1’, user = ‘root’, passwd = “pythontab.com”, db = ‘testdb’)
cur = conn.cursor()
cur.execute(“SELECT Host,User FROM user”)
for r in cur:
print(r)
cur.close()
conn.close()
4、peewee
pip install peewee
import peewee
from peewee import *
db = MySQLDatabase(‘testdb’, user = ‘root’, passwd = ‘pythontab.com’)
class Book(peewee.Model):
author = peewee.CharField()
title = peewee.TextField()
class Meta:
database = db
Book.create_table()
book = Book(author = “pythontab”, title = ‘pythontab is good website’)
book.save()
for book in Book.filter(author = “pythontab”):
print(book.title)
5、SQLAlchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Address, Base, Person
class Address(Base):
__tablename__ = ‘address’
id = Column(Integer, primary_key = True)
street_name = Column(String(250))
engine = create_engine(‘sqlite:///sqlalchemy_example.db’)
Base.metadata.bind = engine
DBSession = sessionmaker(bind = engine)
session = DBSession()
# Insert a Person in the person table
new_person = Person(name = ‘new person’)
session.add(new_person)
session.commit()
本文Python 操作 MySQL 資料庫需要是使用到 PyMySQL 驅動
Python 操作 MySQL 前提是要安裝好 MySQL 資料庫並能正常連接使用,安裝步驟詳見下文。
注意: 安裝過程我們需要通過開啟管理員許可權來安裝,否則會由於許可權不足導致無法安裝。
首先需要先下載 MySQL 安裝包, 官網下載地址 下載對應版本即可,或直接在網上拉取並安裝:
許可權設置:
初始化 MySQL:
啟動 MySQL:
查看 MySQL 運行狀態:
Mysql安裝成功後,默認的root用戶密碼為空,你可以使用以下命令來創建root用戶的密碼:
登陸:
創建資料庫:
查看資料庫:
PyMySQL 模塊使用 pip命令進行安裝:
假如系統不支持 pip 命令,可以使用以下方式安裝:
pymysql .connect 函數:連接上資料庫
輸出結果顯示如下:表面資料庫連接成功
使用 pymysql 的 connect() 方法連接資料庫,connect 參數解釋如下:
conn.cursor():獲取游標
如果要操作資料庫,光連接數據是不夠的,咱們必須拿到操作資料庫的游標,才能進行後續的操作,游標的主要作用是用來接收資料庫操作後的返回結果,比如讀取數據、添加數據。通過獲取到的資料庫連接實例 conn 下的 cursor() 方法來創建游標,實例如下:
輸出結果為:
cursor 返回一個游標實例對象,其中包含了很多操作數據的方法,如執行sql語句,sql 執行命令: execute() 和 executemany()
execute(query,args=None):
executemany(query,args=None):
其他游標對象如下表:
完整資料庫連接操作實例如下:
以上結果輸出為:
創建表代碼如下:
如下所示資料庫表創建成功:
插入數據實現代碼:
插入數據結果:
Python查詢Mysql使用 fetchone() 方法獲取單條數據, 使用fetchall() 方法獲取多條數據。
查詢數據代碼如下:
輸出結果:
DB API中定義了一些資料庫操作的錯誤及異常,下表列出了這些錯誤和異常:
本文給大家介紹 Python 如何連接 Mysql 進行數據的增刪改查操作,文章通過簡潔的代碼方式進行示例演示,給使用 Python 操作 Mysql 的工程師提供支撐。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126548.html