您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)使用Python怎么操作MySQL數(shù)據(jù)庫(kù),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
建表的時(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;
import pymysql ''' 連接 mysql 數(shù)據(jù)庫(kù)的步驟 fetchall 接受全部的返回結(jié)果行 PS:只有 innodb 類型的表才可以設(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()
以上就是使用Python怎么操作MySQL數(shù)據(jù)庫(kù),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。