溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Python怎么操作MySQL數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2021-04-14 15:34:23 來(lái)源:億速云 閱讀:134 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)使用Python怎么操作MySQL數(shù)據(jù)庫(kù),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

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 類型的表才可以設(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è)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI