Python操作MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單步驟分享
前言
現(xiàn)在Python越來(lái)越被大眾所使用,特別是進(jìn)入AI人工智能時(shí)代,對(duì)編程要求更加高效根據(jù)快捷,所以Python也經(jīng)常成為人工智和大數(shù)據(jù)編程的重要語(yǔ)音。既然是編程語(yǔ)言就多多少少會(huì)需求對(duì)數(shù)據(jù)進(jìn)行操作,這一篇我們帶大家使用python對(duì)mysql進(jìn)行的操作。
別的不說(shuō),直接上代碼
MySQL 建表
建表的時(shí)候,遇到一些坑,沒(méi)有解決,如修改 MySQL 的默認(rèn)引擎,default-storage-engine=InnoDB;執(zhí)行報(bào)錯(cuò) 。。。無(wú)奈
use mybatistable; drop table Test; -- INNODB 支持事務(wù) -- Mysql 默認(rèn)的引擎是 MyISAM ,不支持事務(wù)操作 -- 在創(chuàng)建 mysql 表時(shí),最好指定表使用的引擎 -- 或者直接修改Mysql 默認(rèn)的數(shù)據(jù)庫(kù)引擎為 InnoDB -- default-storage-engine=InnoDB; 執(zhí)行報(bào)錯(cuò) 。。。無(wú)奈 create table Test( id int(10) not null auto_increment, name varchar(20) not null, password varchar(30) not null, constraint pk_id primary key(id), constraint uk_name unique(name) )engine=InnoDB charset=utf8; -- 查看表的引擎 show create table Test; -- 更新表的引擎 ,執(zhí)行報(bào)錯(cuò) -- alter table Test type = InnoDB; insert into Test values(default,'小紅',123); insert into Test values(default,'小李',123); insert into Test values(default,'小趙',123); insert into Test values(default,'小軍',123); insert into Test values(default,'小方',123); select * from Test;
python 操作 MySQL
import pymysql
'''
連接 mysql 數(shù)據(jù)庫(kù)的步驟
fetchall 接受全部的返回結(jié)果行
PS:只有 innodb 類(lèi)型的表才可以設(shè)置 autocommit;
'''
def connectMySql():
host = '127.0.0.1'
username = 'root'
password = 'root'
# dbName = 'MyBatistable'
# 獲得數(shù)據(jù)庫(kù)連接對(duì)象
conn = pymysql.connect(host,username,password)
#關(guān)閉數(shù)據(jù)庫(kù)的自動(dòng)提交事務(wù)
conn.autocommit(False)
# 選擇要操作的數(shù)據(jù)庫(kù)
conn.select_db('MyBatistable') #覆蓋之前操作的數(shù)據(jù)庫(kù)名
# 獲得游標(biāo)
cursor = conn.cursor()
#定義 SQL 語(yǔ)句
sql = 'select * from Test'
sql1 = 'insert into test values(default,"小鍋","120")'
sql2 = 'update test set name="小庫(kù)2" where id = 2'
sql3 = 'delete from test where id = 2'
#執(zhí)行 SQL 語(yǔ)句
# row = cursor._query(sql)
#執(zhí)行 execute 方法,返回影響的行數(shù)
row = cursor.execute(sql1)
print('row type:',type(row))
print('受影響的行數(shù)為:',row)
if row > 0:
conn.commit() # 提交事務(wù)
print('SUCCESS')
else:
conn.rollback() # 回滾事務(wù)
print('Failure')
#使用DQL ,返回結(jié)果集,以元組的形式
nums = cursor.fetchall()
print('nums Type:',type(nums))
#處理結(jié)果集
if nums != () :
for num in nums:
print('--',num)
if __name__ == '__main__':
connectMySql()
總結(jié)
Python 操作 MySQL 時(shí),由于MySQL 默認(rèn)使用時(shí) MyISAM 引擎,不支持事務(wù)操作。而在Python操作 Mysql 中關(guān)閉自動(dòng)提交事務(wù),發(fā)現(xiàn)并沒(méi)有卵用,然后到網(wǎng)上百度說(shuō),Mysql 中 InnoDB 支持事務(wù),然后我查找一哈我自己表的引擎發(fā)現(xiàn)是 MyISAM ,欲哭無(wú)淚啊。然后我就重新開(kāi)始建表,測(cè)試。
到此這篇關(guān)于Python操作MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單步驟的文章就介紹到這了,更多相關(guān)Python操作MySQL數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python基礎(chǔ)之操作MySQL數(shù)據(jù)庫(kù)
- Python 操作 MySQL數(shù)據(jù)庫(kù)
- Python連接mysql數(shù)據(jù)庫(kù)及簡(jiǎn)單增刪改查操作示例代碼
- Python操作MySQL數(shù)據(jù)庫(kù)的示例代碼
- Python實(shí)現(xiàn)的連接mssql數(shù)據(jù)庫(kù)操作示例
- python詳解如何通過(guò)sshtunnel pymssql實(shí)現(xiàn)遠(yuǎn)程連接數(shù)據(jù)庫(kù)
- Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫(kù)的方法詳解
- Python連接mssql數(shù)據(jù)庫(kù)編碼問(wèn)題解決方法
- 使用Python操作MySql數(shù)據(jù)庫(kù)和MsSql數(shù)據(jù)庫(kù)
相關(guān)文章
基于Python新建用戶(hù)并產(chǎn)生隨機(jī)密碼過(guò)程解析
這篇文章主要介紹了基于Python新建用戶(hù)并產(chǎn)生隨機(jī)密碼過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
基于Python實(shí)現(xiàn)簡(jiǎn)易的植物識(shí)別小系統(tǒng)
這篇文章主要介紹了利用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的植物識(shí)別系統(tǒng),文中的示例代碼簡(jiǎn)潔易懂,對(duì)我們學(xué)習(xí)Python有一定的幫助,需要的小伙伴可以參考一下2021-12-12
如何使用Django(python)實(shí)現(xiàn)android的服務(wù)器端
這篇文章主要介紹了Django(python)簡(jiǎn)單實(shí)現(xiàn)android的服務(wù)器端,這里所需要的工具是PyCharm--python編輯工具,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
Python實(shí)現(xiàn)合并同一個(gè)文件夾下所有PDF文件的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)合并同一個(gè)文件夾下所有PDF文件的方法,涉及Python針對(duì)pdf文件的讀取、判斷、解密、寫(xiě)入合并等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
Pyramid Mako模板引入helper對(duì)象的步驟方法
ylons中的mako模板,默認(rèn)會(huì)引入一個(gè)helper對(duì)象,我們可以在里面擴(kuò)展方法,應(yīng)對(duì)在模板輸出時(shí)候會(huì)常用的操作,那么在Pyramid中如何默認(rèn)引入同樣的輔助類(lèi)到模板中2013-11-11
Python datetime庫(kù)函數(shù)的示例詳解
datetime?是 Python 內(nèi)置的日期時(shí)間處理庫(kù),它包含了處理日期、時(shí)間、時(shí)間間隔等的類(lèi)和函數(shù),這篇文章主要介紹了Python datetime庫(kù)函數(shù)的詳解,需要的朋友可以參考下2023-07-07

