-
1 # 會說科技
-
2 # 快樂生活你我
1、連線資料庫;
2、建立遊標物件;
3、對資料庫進行操作;
4、關閉遊標;
5、關閉連線。
-
3 # 程式設計Cow
Python有很多框架,其中有的框架本身就有資料庫,比如django。但是python也可以和Mysql資料庫連線,下面我來說一下。
兩種方法進行資料庫的連線分別是PyMySQL和mysql.connector
1、PyMSQL
PyMySQL : 是封裝了MySQL驅動的Python驅動,一個能使Python連線到MySQL的庫
環境要求:Python version >= 3.4
PyMySQL安裝
安裝
Win鍵+X鍵再按I鍵,調出Windows PowerShell視窗,輸入
pip install PyMySQL
回車
2、利用PyMySQL連線資料庫
首先我們的MySQL資料庫已安裝,且已建好名為test的資料庫,其中有名為student的表import pymysql#連線資料庫conn=pymysql.connect(host = "127.0.0.1" # 連線名稱,預設127.0.0.1,user = "root" # 使用者名稱,passwd="password" # 密碼,port= 3306 # 埠,預設為3306,db="test" # 資料庫名稱,charset="utf8" # 字元編碼)cur = conn.cursor() # 生成遊標物件sql="select from student " # SQL語句cur.execute(sql) # 執行SQL語句data = cur.fetchall() # 透過fetchall方法獲得資料for i in data[:2]: # 列印輸出前2條資料print (i)cur.close() # 關閉遊標conn.close() # 關閉連線
上述程式碼中,實現了透過Python連線MySQL查詢所有的資料,並輸出前2條資料的功能。執行結果如下:
("a", "趙大", "16")("b", "錢二", "16")
mysql.connector
mysql-connector-python:是MySQL官方的純Python驅動;
mysql.connector安裝
安裝
pip install mysql
pip version ===19.0.3
檢視版本
檢視PyMySQL的版本,輸入
pip show PyMySQL
回車
利用 mysql.connector連線資料庫
首先我們的MySQL資料庫已安裝,且已建好名為test的資料庫,其中有名為student的表
import mysql.connectorconn=mysql.connector.connect(host = "127.0.0.1" # 連線名稱,預設127.0.0.1,user = "root" # 使用者名稱,passwd="password" # 密碼,port= 3306 # 埠,預設為3306,db="test" # 資料庫名稱,charset="utf8" # 字元編碼)cur = conn.cursor() # 生成遊標物件sql="select from student " # SQL語句cur.execute(sql) # 執行SQL語句data = cur.fetchall() # 透過fetchall方法獲得資料for i in data[:2]: # 列印輸出前2條資料print (i)cur.close() # 關閉遊標conn.close() # 關閉連線
上述程式碼中,實現了透過Python連線MySQL查詢所有的資料,並輸出前2條資料的功能。執行結果如下:
("a", "趙大", "16")("b", "錢二", "16")
Python對MySql資料庫實現增刪改查
接下來我們以用pymysql包為例,介紹一下如何用Python對資料庫中的資料進行增刪改查 。
增
import pymysql#連線資料庫conn=pymysql.connect(host = "127.0.0.1" # 連線名稱,預設127.0.0.1,user = "root" # 使用者名稱,passwd="password" # 密碼,port= 3306 # 埠,預設為3306,db="test" # 資料庫名稱,charset="utf8" # 字元編碼)cur = conn.cursor() # 生成遊標物件#=============插入語句===============================sql= "INSERT INTO student VALUES ("p","魏六","17")"#===================================================try:cur.execute(sql1) # 執行插入的sql語句conn.commit() # 提交到資料庫執行except:coon.rollback()# 如果發生錯誤則回滾
conn.close() # 關閉資料庫連線
然後我們再執行查詢語句
import mysql.connectorconn=mysql.connector.connect(host = "127.0.0.1" # 連線名稱,預設127.0.0.1,user = "root" # 使用者名稱,passwd="password" # 密碼,port= 3306 # 埠,預設為3306,db="test" # 資料庫名稱,charset="utf8" # 字元編碼)cur = conn.cursor() # 生成遊標物件sql="select from student " # SQL語句cur.execute(sql) # 執行SQL語句data = cur.fetchall() # 透過fetchall方法獲得資料for i in data[:]: # 列印輸出所有資料print (i)cur.close() # 關閉遊標conn.close() # 關閉連線
執行結果就是
("b", "錢二", "16")("c", "張三", "17")("d", "李四", "17")("e", "王五", "16")("a", "趙大", "16")("p", "魏六", "17")
刪
import pymysql#連線資料庫conn=pymysql.connect(host = "127.0.0.1" # 連線名稱,預設127.0.0.1,user = "root" # 使用者名稱,passwd="password" # 密碼,port= 3306 # 埠,預設為3306,db="test" # 資料庫名稱,charset="utf8" # 字元編碼)cur = conn.cursor() # 生成遊標物件#=============刪除語句===============================sql = "DELETE FROM student WHERE 學號 = "a"#===================================================try:cur.execute(sql) # 執行插入的sql語句conn.commit() # 提交到資料庫執行except:coon.rollback()# 如果發生錯誤則回滾
conn.close() # 關閉資料庫連線
改
import pymysql#連線資料庫conn=pymysql.connect(host = "127.0.0.1" # 連線名稱,預設127.0.0.1,user = "root" # 使用者名稱,passwd="password" # 密碼,port= 3306 # 埠,預設為3306,db="test" # 資料庫名稱,charset="utf8" # 字元編碼)cur = conn.cursor() # 生成遊標物件#=============刪除語句===============================sql ="UPDATE student SET 學員姓名 = "歐陽" WHERE 學號 = "b" "#===================================================try:cur.execute(sql) # 執行插入的sql語句conn.commit() # 提交到資料庫執行except:coon.rollback()# 如果發生錯誤則回滾
conn.close() # 關閉資料庫連線
查
import pymysql#連線資料庫conn=pymysql.connect(host = "127.0.0.1" # 連線名稱,預設127.0.0.1,user = "root" # 使用者名稱,passwd="password" # 密碼,port= 3306 # 埠,預設為3306,db="test" # 資料庫名稱,charset="utf8" # 字元編碼)cur = conn.cursor() # 生成遊標物件#=============刪除語句===============================sql="select from student " # SQL語句#====================================================try:cur.execute(sql) # 執行插入的sql語句data = cur.fetchall()
for i in data[:]:print (i)
conn.commit() # 提交到資料庫執行except:coon.rollback()# 如果發生錯誤則回滾
conn.close() # 關閉資料庫連線
小型案例
import pymysql
config = {"host": "127.0.0.1","port": 3306,"user": "root","passwd": "password","charset":"utf8",
}conn = pymysql.connect(config)
cursor = conn.cursor()
try:
建立資料庫
DB_NAME = "test_3"cursor.execute("DROP DATABASE IF EXISTS %s" %DB_NAME)cursor.execute("CREATE DATABASE IF NOT EXISTS %s" %DB_NAME)conn.select_db(DB_NAME)
#建立表TABLE_NAME = "bankData"cursor.execute("CREATE TABLE %s(id int primary key,money int(30))" %TABLE_NAME)
批次插入紀錄
values = []for i in range(20):values.append((int(i),int(156i)))cursor.executemany("INSERT INTO bankData values(%s,%s)",values)conn.commit()
查詢資料條目
count = cursor.execute("SELECT FROM %s" %TABLE_NAME)print ("total records:{}".format(cursor.rowcount))
獲取表名資訊
desc = cursor.descriptionprint ("%s %3s" % (desc[0][0], desc[1][0]))
cursor.scroll(10,mode="absolute")results = cursor.fetchall()for result in results:print (result)
except:import tracebacktraceback.print_exc()
發生錯誤時會滾
conn.rollback()finally:
關閉遊標連線
cursor.close()
關閉資料庫連線
conn.close()
綜合案例
FIFA球員資訊系統
from pymysql importclass Mysqlpython:def init(self, database="test", host="127.0.0.1", user="root",password="password", port=3306, charset="utf8"):self.host = hostself.user = userself.password = passwordself.port = portself.database = databaseself.charset = charset
資料庫連線方法:
def open(self):self.db = connect(host=self.host, user=self.user,password=self.password, port=self.port,database=self.database,charset=self.charset)
遊標物件
self.cur = self.db.cursor()
資料庫關閉方法:
def close(self):self.cur.close()self.db.close()
資料庫執行操作方法:
def Operation(self, sql):try:self.open()self.cur.execute(sql)self.db.commit()print("ok")except Exception as e:self.db.rollback()print("Failed", e)self.close()
資料庫查詢所有操作方法:
def Search(self, sql):try:self.open()self.cur.execute(sql)result = self.cur.fetchall()return resultexcept Exception as e:print("Failed", e)self.close()
def Insert():#如何從外面將資料錄入到sql語句中ID = int(input("請輸入球員編號:"))people_name = input("請輸入球員名字:")PAC = int(input("請輸入速度))
步驟:
1. 連線資料庫
2. 生成遊標物件
3. 執行SQL語句
4. 關閉遊標
5. 關閉連線
-
4 # 小小猿愛嘻嘻
python怎麼和mysql連線?目前來說,有3種基本方法,分別是pymysql、sqlalchemy和pandas,下面我分別簡單介紹一下,感興趣的朋友可以嘗試一下:
01、pymysql這是最基礎、也是最基本的python操作mysql的第三方包,相信許多朋友都接觸過,封裝了對mysql的基本操作,包括增刪改查等,只需幾行程式碼即可輕鬆完成對mysql讀寫,簡單易用、非常容易學習,安裝的話,直接在cmd視窗輸入命令“pip install pymysql”即可:
安裝完成後,我們就可以直接對mysql進行操作了,如下,先建立連線,然後獲取遊標,最後直接執行sql語句即可,這裡需要注意的是,增刪改後不要忘記commit提交更新資料庫,否則資料不會更新:
02、sqlalchemy這是基於物件關係對映模型ORM開發的一個開源資料庫框架,將python類和資料表關聯起來,摒棄了底層繁瑣的資料庫操作,只需編寫一套程式碼即可在主流的資料庫之間來回切換,操作簡單、便於移植,安裝的話,直接在cmd視窗輸入命令“pip install sqlalchemy”即可,程式會自動檢測相關依賴並安裝:
安裝完成後,我們就可以直接開始資料庫操作了,如下,先建立資料庫連線,然後定義物件類(對應於具體資料表),最後直接進行增刪改查即可,需要注意的是,更新操作也需要commit提交資料庫,否則資料不會更新:
03、pandas這是python一個非常著名的資料分析包,相信許多朋友都聽說或使用過,功能強大、易於操作,可輕鬆處理日常各種檔案,包括txt、excel、csv、json等,對應於mysql,也提供了現成的函式,可直接對mysql進行讀寫,程式碼量更少,也更易於掌握,安裝的話,直接在cmd視窗輸入命令“pip install pandas”即可,程式會自動檢測相關依賴並安裝:
安裝完成後,我們就可以直接呼叫現成函式來對mysql進行操作了,這裡依賴於sqlalchemy框架,因此需要先安裝才行,如下,讀取的話,先建立資料庫連線,然後輸入需要執行的sql語句,最後直接獲取資料即可,這裡會將資料封裝為DataFrame型別,方便後期處理和篩選,插入的話,先將資料封裝為DataFrame型別,接著直接呼叫to_sql函式即可:
至此,我們就完成了python連線操作mysql資料庫。總的來說,這3種方法都非常簡單,只要你有一定python基礎,熟悉一下相關程式碼和示例,很快就能掌握的,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
回覆列表
1.安裝mysql-server
2.配置資料庫資訊
3.下載mysql的python驅動
4.透過驅動連結mysql
5.操作資料庫