您好,登錄后才能下訂單哦!
下面講講關于python操作mysql數據庫的方法,文字的奧妙在于貼近主題相關。所以,閑話就不談了,我們直接看下文吧,相信看完python操作mysql數據庫的方法這篇文章你一定會有所受益。
基礎環境:Python 3.5.1
mysql版本:5.6.35 (rpm安裝方式)
操作系統:Centos7.3 和windows7
一、python連接數據庫模塊介紹:
目前主要用的有以下幾種、MySQLdb和pymsql以及mysql官方提供的mysql-connector-python驅動,MySQLdb模塊是python2.X使用比較多的,而python3.X使用的pymsql會更多一點,以后再研究官方的mysql-connector-python,本次學習以及實踐全部基于pymsql模塊。
PyMySQL的使用方法和MySQLdb幾乎一樣,習慣用MySQLdb的,只需 import MySQLdb 修改為 import pymysql 就可以了。
二、pymysql連接數據庫的方法以及參數介紹:
pymysql連接mysql 使用pymysql.connect()方法,可以調整很多參數:
參數 | 描述 |
host | 數據庫地址 |
user | 數據庫用戶名, |
passwd | 數據庫密碼,默認為空 |
db | 數據庫庫名,沒有默認庫 |
port | 數據庫端口,默認3306 |
connect_timeout | 連接超時時間,秒為單位 |
use_unicode | 結果以unicode字符串返回 |
charset | 插入數據庫編碼 |
連接示例:
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等參數 連接示例2: connect=pymysql.connect("192.168.186.157","winner","123123","test") 不用加host等參數,但是格式固定,分別是主機 、用戶、 密碼以及初始連接的數據庫不能互換位置, 而上面的帶參數的示例相對來說更隨意一些。 注意:這里的端口以及連接超時時間都是int,所以不需要帶引號
連接對象返回的connect()函數:
commit() | 提交事務。對支持事務的數據庫和表,如果提交修改操作,不適用這個方法,則不會寫到數據庫中 |
rollback() | 事務回滾。對支持事務的數據庫和表,如果執行此方法,則回滾當前事務。在沒有commit()前提下。 |
cursor([cursorclass]) | 創建一個游標對象。所有的sql語句的執行都要在游標對象下進行。MySQL本身不支持游標,MySQLdb模塊對其游標進行了仿真。 |
在python操作mysql數據庫的過程中,我們主要是使用獲取游標方法counect.cursor()和cursor.execute()方法對數據庫進行操作,像創建數據庫以及數據表等操作,我們一般直接在mysql客戶端連接,執行SQL語句就可以了,所以我們更多的操作就是增、刪、改、查等操作
游標對象也提供了幾種方法:
close() | 關閉游標 |
execute(sql) | 執行sql語句 |
excutemany(sql) | 執行多條sql語句 |
fetchone() | 從執行結果中取第一條記錄 |
fetchmany(n) | 從執行結果中取n條記錄 |
fetchall() | 從執行結果中取所有記錄 |
scroll(self, value, mode='relative') | 游標滾動 |
示例一、連接192.168.186.157的mysql服務端創建pymysql庫字符集為utf8
#/usr/bin/env python #_*_coding:utf-8_*_ #導入pymysql模塊 import pymysql #使用pymysql.connect()方法創建數據庫鏈接 con=pymysql.connect(host='192.168.186.157',user='winner',passwd='123123',port=3306) #使用con.cursor()方法創建游標 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)
執行結果:
(('information_schema',), ('#mysql50#2017-03-16_09-38-47',), ('DB',), ('mysql',), ('performance_schema',), ('pymysql',), ('test',), ('winner_mas',)) Process finished with exit code 0
示例二、連接剛創建的pymysql數據庫創建class表
#/usr/bin/env python #_*_coding:utf-8_*_ #導入pymysql模塊 import pymysql #使用pymysql.connect()方法創建數據庫鏈接 con=pymysql.connect(host='192.168.186.157',user='winner',passwd='123123',port=3306,db='pymysql') #使用con.cursor()方法創建游標 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
對于以上python操作mysql數據庫的方法相關內容,大家還有什么不明白的地方嗎?或者想要了解更多相關,可以繼續關注我們的行業資訊板塊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。