python操作mysql數(shù)據(jù)庫(kù)的方法介紹

下面講講關(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)

成都網(wǎng)站建設(shè)公司