Python3.x的mysqlclient的安装、Python操作mysql,python连接MySQL数据库,python创建数据库表,带有事务的操作,CRUD
1、數(shù)據(jù)庫操作
1.1準(zhǔn)備工作:
1、安裝一個mysql數(shù)據(jù)庫軟件
2、創(chuàng)建一個數(shù)據(jù)庫,test
3、在python的環(huán)境安裝一個模塊:
1.2 安裝mysql的連接包
第一種:工具安裝
Python3.x版本:Pip install mysqlclient
Python2.x 版本:pip install mysql-python
錯誤
在win7-64bit的環(huán)境下會有錯誤:unable to find vcvarsall.bat
解決方案:
基本等于誤解
第二種:手動安裝
(1)先wheel
需要下載安裝包:
http://www.lfd.uci.edu/~gohlke/pythonlibs/
根據(jù)對應(yīng)的python版本下載安裝包
Pip instal xxxxxxx.whl
(2)安裝mysqlclient
下載地址:
http://www.lfd.uci.edu/~gohlke/pythonlibs/
下載后的內(nèi)容:
選擇版本:
在網(wǎng)上有很多安裝mysql的操作方法,簡單概述就是:
Python2.x 安裝mysql-python (如果是Python2.x就安裝mysql-python)
Python3.x 安裝mysqlclient (如果是Python3.x就安裝mysqlclient)
安裝步驟:
1.2.1 首先要在cmd下安裝wheel包:
D:\baiduDownload\software\python>pip install wheel1.2.2 接著進(jìn)入*.whl安裝包所在的目錄,用cd命令
D:\baiduDownload\software\python>cd /D D:/baiduDownload/software/python1.2.3 使用 pip install *.whl安裝mysqlclient
D:\baiduDownload\software\python>pip install mysqlclient2、編寫python操作數(shù)據(jù)的代碼
import MySQLdb # 打開數(shù)據(jù)庫連接 db = MySQLdb.connect("192.168.106.100","root","123456","bigdata") # 使用cursor()方法獲取操作游標(biāo) cursor = db.cursor() # 使用execute方法執(zhí)行SQL語句 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法獲取一條數(shù)據(jù)庫。 data = cursor.fetchone() print("Database version : %s " % data) # 關(guān)閉數(shù)據(jù)庫連接 db.close()運(yùn)行結(jié)果:
3、python創(chuàng)建數(shù)據(jù)庫表
import MySQLdb # 打開數(shù)據(jù)庫連接 db = MySQLdb.connect("192.168.106.100","root","123456","bigdata") #使用cursor()方法獲取操作游標(biāo) cursor = db.cursor() # 如果數(shù)據(jù)表已經(jīng)存在使用 execute() 方法刪除表。 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 創(chuàng)建數(shù)據(jù)表SQL語句 sql = """CREATE TABLE EMPLOYEE (FIRST_NAME CHAR(20) NOT NULL,LAST_NAME CHAR(20),AGE INT,SEX CHAR(1),INCOME FLOAT)""" cursor.execute(sql) # 關(guān)閉數(shù)據(jù)庫連接 db.close()4、插入數(shù)據(jù)
import MySQLdb #打開數(shù)據(jù)庫連接 db = MySQLdb.connect("192.168.106.100","root","123456","bigdata") # 使用cursor()方法獲取操作游標(biāo) cursor = db.cursor() # SQL 插入語句 sql = """INSERT INTO EMPLOYEE(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME)VALUES ('Mac', 'Mohan', 20, 'M', 2000)""" try:# 執(zhí)行sql語句cursor.execute(sql)# 提交到數(shù)據(jù)庫執(zhí)行db.commit() except:# Rollback in case there is any errordb.rollback() # 關(guān)閉數(shù)據(jù)庫連接 db.close()上面的代碼可以寫成:
import MySQLdb #打開數(shù)據(jù)連接 db = MySQLdb.connect("192.168.106.100","root","123456","bigdata") # 使用cursor()方法獲取操作游標(biāo) cursor = db.cursor() # SQL 插入語句 sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \LAST_NAME, AGE, SEX, INCOME) \VALUES ('%s', '%s', '%d', '%c', '%d' )" % \('Mac', 'Mohan', 20, 'M', 2000) try:# 執(zhí)行sql語句cursor.execute(sql)# 提交到數(shù)據(jù)庫執(zhí)行db.commit() except:# 發(fā)生錯誤時回滾db.rollback() # 關(guān)閉數(shù)據(jù)庫連接 db.close()5、查詢數(shù)據(jù)
Python查詢Mysql使用 fetchone() 方法獲取單條數(shù)據(jù), 使用fetchall() 方法獲取多條數(shù)據(jù)。
fetchone(): 該方法獲取下一個查詢結(jié)果集。結(jié)果集是一個對象
fetchall():接收全部的返回結(jié)果行.
rowcount: 這是一個只讀屬性,并返回執(zhí)行execute()方法后影響的行數(shù)。
執(zhí)行后的結(jié)果:
6 更新數(shù)據(jù)庫內(nèi)容
import MySQLdb db = MySQLdb.connect("192.168.106.100","root","123456","bigdata")# 使用cursor()方法獲取操作游標(biāo) cursor = db.cursor() # SQL 更新語句 sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M') try:# 執(zhí)行SQL語句cursor.execute(sql)# 提交到數(shù)據(jù)庫執(zhí)行db.commit() except:# 發(fā)生錯誤時回滾db.rollback() # 關(guān)閉數(shù)據(jù)庫連接 db.close()執(zhí)行后前的結(jié)果是:
更新后的結(jié)果:
7 數(shù)據(jù)庫刪除操作
刪除作用于刪除數(shù)據(jù)表中的數(shù)據(jù)
刪除數(shù)據(jù)表EMPLOYEE中AGE大于20的所有數(shù)據(jù):
數(shù)據(jù)刪除前的操作:
總結(jié)
以上是生活随笔為你收集整理的Python3.x的mysqlclient的安装、Python操作mysql,python连接MySQL数据库,python创建数据库表,带有事务的操作,CRUD的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西瓜为什么能够利尿?
- 下一篇: Python爬虫项目,获取所有网站上的新