下面講講關(guān)于python操作MySQL數(shù)據(jù)庫(kù)的方法,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完python操作mysql數(shù)據(jù)庫(kù)的方法這篇文章你一定會(huì)有所受益。
創(chuàng)新互聯(lián)建站 - 成都二樞服務(wù)器租用托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽(yáng)服務(wù)器托管,德陽(yáng)服務(wù)器托管,遂寧服務(wù)器托管,綿陽(yáng)服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),成都二樞服務(wù)器租用托管,西南服務(wù)器托管,四川/成都大帶寬,服務(wù)器機(jī)柜,四川老牌IDC服務(wù)商
基礎(chǔ)環(huán)境:Python 3.5.1
mysql版本:5.6.35 (rpm安裝方式)
操作系統(tǒng):Centos7.3 和windows7
一、python連接數(shù)據(jù)庫(kù)模塊介紹:
目前主要用的有以下幾種、MySQLdb和pymsql以及mysql官方提供的mysql-connector-python驅(qū)動(dòng),MySQLdb模塊是python2.X使用比較多的,而python3.X使用的pymsql會(huì)更多一點(diǎn),以后再研究官方的mysql-connector-python,本次學(xué)習(xí)以及實(shí)踐全部基于pymsql模塊。
PyMySQL的使用方法和MySQLdb幾乎一樣,習(xí)慣用MySQLdb的,只需 import MySQLdb 修改為 import pymysql 就可以了。
二、pymysql連接數(shù)據(jù)庫(kù)的方法以及參數(shù)介紹:
pymysql連接mysql 使用pymysql.connect()方法,可以調(diào)整很多參數(shù):
參數(shù) | 描述 |
host | 數(shù)據(jù)庫(kù)地址 |
user | 數(shù)據(jù)庫(kù)用戶名, |
passwd | 數(shù)據(jù)庫(kù)密碼,默認(rèn)為空 |
db | 數(shù)據(jù)庫(kù)庫(kù)名,沒(méi)有默認(rèn)庫(kù) |
port | 數(shù)據(jù)庫(kù)端口,默認(rèn)3306 |
connect_timeout | 連接超時(shí)時(shí)間,秒為單位 |
use_unicode | 結(jié)果以u(píng)nicode字符串返回 |
charset | 插入數(shù)據(jù)庫(kù)編碼 |
連接示例:
connect=pymysql.connect(host="192.168.186.157",port=3306,user="winner",passwd="123123",db="DB",charset="utf8",connect_timeout=3000) 示例連接主要包含host,user,passwrd以及port等參數(shù) 連接示例2: connect=pymysql.connect("192.168.186.157","winner","123123","test") 不用加host等參數(shù),但是格式固定,分別是主機(jī) 、用戶、 密碼以及初始連接的數(shù)據(jù)庫(kù)不能互換位置, 而上面的帶參數(shù)的示例相對(duì)來(lái)說(shuō)更隨意一些。 注意:這里的端口以及連接超時(shí)時(shí)間都是int,所以不需要帶引號(hào)
連接對(duì)象返回的connect()函數(shù):
commit() | 提交事務(wù)。對(duì)支持事務(wù)的數(shù)據(jù)庫(kù)和表,如果提交修改操作,不適用這個(gè)方法,則不會(huì)寫(xiě)到數(shù)據(jù)庫(kù)中 |
rollback() | 事務(wù)回滾。對(duì)支持事務(wù)的數(shù)據(jù)庫(kù)和表,如果執(zhí)行此方法,則回滾當(dāng)前事務(wù)。在沒(méi)有commit()前提下。 |
cursor([cursorclass]) | 創(chuàng)建一個(gè)游標(biāo)對(duì)象。所有的sql語(yǔ)句的執(zhí)行都要在游標(biāo)對(duì)象下進(jìn)行。MySQL本身不支持游標(biāo),MySQLdb模塊對(duì)其游標(biāo)進(jìn)行了仿真。 |
在python操作mysql數(shù)據(jù)庫(kù)的過(guò)程中,我們主要是使用獲取游標(biāo)方法counect.cursor()和cursor.execute()方法對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,像創(chuàng)建數(shù)據(jù)庫(kù)以及數(shù)據(jù)表等操作,我們一般直接在mysql客戶端連接,執(zhí)行SQL語(yǔ)句就可以了,所以我們更多的操作就是增、刪、改、查等操作
游標(biāo)對(duì)象也提供了幾種方法:
close() | 關(guān)閉游標(biāo) |
execute(sql) | 執(zhí)行sql語(yǔ)句 |
excutemany(sql) | 執(zhí)行多條sql語(yǔ)句 |
fetchone() | 從執(zhí)行結(jié)果中取第一條記錄 |
fetchmany(n) | 從執(zhí)行結(jié)果中取n條記錄 |
fetchall() | 從執(zhí)行結(jié)果中取所有記錄 |
scroll(self, value, mode='relative') | 游標(biāo)滾動(dòng) |
示例一、連接192.168.186.157的mysql服務(wù)端創(chuàng)建pymysql庫(kù)字符集為utf8
#/usr/bin/env python #_*_coding:utf-8_*_ #導(dǎo)入pymysql模塊 import pymysql #使用pymysql.connect()方法創(chuàng)建數(shù)據(jù)庫(kù)鏈接 con=pymysql.connect(host='192.168.186.157',user='winner',passwd='123123',port=3306) #使用con.cursor()方法創(chuàng)建游標(biāo) cursor=con.cursor() sql=" create database If Not Exists pymysql default character set utf8;" '''sql="""create table if not exists class (id int(10) primary key auto_increment, name varchar(20) not null ,address varchar(20) not null default "gansu")""" ''' cursor.execute(sql) cursor.execute("show databases") dataname=cursor.fetchall() print(dataname)
執(zhí)行結(jié)果:
(('information_schema',), ('#mysql50#2017-03-16_09-38-47',), ('DB',), ('mysql',), ('performance_schema',), ('pymysql',), ('test',), ('winner_mas',)) Process finished with exit code 0
示例二、連接剛創(chuàng)建的pymysql數(shù)據(jù)庫(kù)創(chuàng)建class表
#/usr/bin/env python #_*_coding:utf-8_*_ #導(dǎo)入pymysql模塊 import pymysql #使用pymysql.connect()方法創(chuàng)建數(shù)據(jù)庫(kù)鏈接 con=pymysql.connect(host='192.168.186.157',user='winner',passwd='123123',port=3306,db='pymysql') #使用con.cursor()方法創(chuàng)建游標(biāo) cursor=con.cursor() #sql=" create database If Not Exists pymysql default character set utf8;" sql="""create table if not exists class (id int(10) primary key auto_increment, name varchar(20) not null ,address varchar(20) not null default "gansu")""" cursor.execute(sql) cursor.execute("show tables") dataname=cursor.fetchall() print(dataname)
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe C:/Users/Administrator/PycharmProjects/python/createdatabase.py (('class',),) C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py:166: Warning: (1050, "Table 'class' already exists") result = self._query(query) Process finished with exit code 0
對(duì)于以上python操作mysql數(shù)據(jù)庫(kù)的方法相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
網(wǎng)站名稱(chēng):python操作mysql數(shù)據(jù)庫(kù)的方法介紹
當(dāng)前網(wǎng)址:http://muchs.cn/article46/pioihg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、響應(yīng)式網(wǎng)站、網(wǎng)站制作、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)