您好,登錄后才能下訂單哦!
小編給大家分享一下python連mysql數(shù)據(jù)庫的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一、Python連接MySQL數(shù)據(jù)庫
1、導(dǎo)入模塊
#導(dǎo)入模塊 import pymysql
相關(guān)課程推薦:Python基礎(chǔ)視頻教程(python語言基礎(chǔ))
2、打開數(shù)據(jù)庫連接
#打開數(shù)據(jù)庫連接 #注意:這里已經(jīng)假定存在數(shù)據(jù)庫testdb,db指定了連接的數(shù)據(jù)庫,當(dāng)然這個(gè)參數(shù)也可以沒有 db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='1234', db='testdb', charset='utf8')
3、創(chuàng)建游標(biāo)對(duì)象cursor
#使用cursor方法創(chuàng)建一個(gè)游標(biāo) cursor = db.cursor()
二、數(shù)據(jù)庫基本操作
使用execute()方法來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的基本操作。
1、查詢數(shù)據(jù)庫版本
#查詢數(shù)據(jù)庫版本 cursor.execute("select version()") data = cursor.fetchone() print(" Database Version:%s" % data)
2、創(chuàng)建數(shù)據(jù)庫
#創(chuàng)建數(shù)據(jù)庫test cursor.execute("drop database if exists test") #如果數(shù)據(jù)庫已經(jīng)存在,那么刪除后重新創(chuàng)建 sql = "create database test" cursor.execute(sql)
3、創(chuàng)建數(shù)據(jù)表
#創(chuàng)建數(shù)據(jù)庫表 cursor.execute("drop table if exists employee") #如果數(shù)據(jù)表已經(jīng)存在,那么刪除后重新創(chuàng)建 sql = """ CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT ) """ cursor.execute(sql)
4、查詢操作
#查詢數(shù)據(jù)表數(shù)據(jù) sql = "select * from employee" cursor.execute(sql) data = cursor.fetchone() print(data)
5、插入操作
#插入數(shù)據(jù) sql = "insert into employee values ('李','梅',20,'W',5000)" cursor.execute(sql) db.commit() #查看插入后的結(jié)果 sql = "select * from employee" cursor.execute(sql) data = cursor.fetchone() print(data)
6、指定條件查詢數(shù)據(jù)
#指定條件查詢數(shù)據(jù)表數(shù)據(jù) sql = " select * from employee where income > '%d' " % (1000) cursor.execute(sql) data = cursor.fetchone() print(data)
7、更新操作
#更新數(shù)據(jù)庫 sql = " update employee set age = age+1 where sex = '%c' " % ('W') cursor.execute(sql) db.commit() #查看更新后的結(jié)果 sql = "select * from employee" cursor.execute(sql) data = cursor.fetchone() print(data)
8、刪除操作
#刪除數(shù)據(jù) sql = " delete from employee where age > '%d' " % (30) cursor.execute(sql) db.commit() #查看更新后的結(jié)果 sql = "select * from employee" cursor.execute(sql) data = cursor.fetchone() print(data)
三、關(guān)閉數(shù)據(jù)庫連接
db.close()
四、其他
1、說明
·上例中"sql=..."語句,是經(jīng)典的MySQL語句的形式,將數(shù)據(jù)庫語句寫在雙引號(hào)內(nèi),形成類似字符串的形式;
·使用cursor對(duì)象的execute()方法具體執(zhí)行數(shù)據(jù)庫的操作;
·對(duì)于插入、更新、刪除等操作,需要使用db.commit()來提交到數(shù)據(jù)庫執(zhí)行,對(duì)于查詢、創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表的操作不需要此語句。
2、為有效避免因?yàn)殄e(cuò)誤導(dǎo)致的后果,使用以下方式來執(zhí)行數(shù)據(jù)庫的操作:
try: # 執(zhí)行 SQL 語句 cursor.execute(sql) # 提交修改 db.commit() except: # 發(fā)生錯(cuò)誤時(shí)回滾 db.rollback()
以上是python連mysql數(shù)據(jù)庫的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。