日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

python mysqldb_python学习-使用MySQLdb操作mysql数据库

發布時間:2024/9/19 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python mysqldb_python学习-使用MySQLdb操作mysql数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

操作環境為python2.7 centos7

一、MySQLdb的安裝與配置

MySQLdb是用于Python連接mysql數據庫的接口,它實現了Python數據庫api規范2.0。

按照以下方式安裝yum?install?epel-release

yum?install?python-pip

yum?install?python-devel

yum?install?mysql-devel

pip?install?MySQL-python

安裝完模塊后,使用時導入模塊名即可import?MySQLdb

二、數據庫準備

創建一個數據庫為了準備研究使用

1、創建數據庫TESTDB

2、在TESTDB數據庫中創建表EMPLOYEE

3、EMPLOYEE表字段為ID,FIRST_NAME,LAST_NAME,AGE,SEX

4、連接數據TESTDB使用用用戶名為"testuser",密碼“test123"

創建完數據表配置命令如下ctreate?database?TESTDB?charset?utf8;

use??TESTDB;

create?table?EMPLOYEE(

ID?int?primary?key?auto_increment,

FIRST_NAME?varchar(10)?not?null,

LAST_NAME?varchar(10)?not?null,

AGE?int?not?null,

SEX?varchar(10)?not?null

);

desc?EMPLOYEE;

創建數據庫用戶create?user?'testuser'@'localhost'?identified?by?'test123';#創建用戶

grant?all?privileges?on?TESTDB.*?to?'testuser'@'%'?identified?by?'test123'?with?grant?option;#指定用戶testuser可以從任何位置訪問TESTDB數據下的任何表,擁有全部權限

flush?privileges;

revoke?drop?on?*.*?from?'testuser'@'%';?#移除用戶testuser從任何位置刪除權限

flush?privileges;

驗證是否能偶遠程登陸

至此,數據庫準備完畢

三、MySQLdb基本方法

3.1connect函數

host:數據庫服務的地址,默認通過UNINX socket訪問本地數據庫;

user:登陸數據庫的用戶名

passwd 登陸數據的密碼

db 創建數據庫連接以后選擇的數據庫

port 連接數據庫連接的端口號 ,默認3306

unix_socket:UNIX socket的路徑

connect_timeout:連接超時時間

read_default_file 讀取Mysql的配置文件中的配置進行連接

3.2Conection類的成員

通過正確的參數調用MySQLdb的connect函數,將會返回Connection類的對象。常用方法如下:

begin:開始事務

commit:提交事務

rollback:回滾事務

cursor:返回一個cursor對象

autocommint:設置事務是否自動提交

set_character_set:設置字符集編碼;

get_server_info:獲取數據庫版本信息

3.3cusor類成員

cursor對象表示數據庫游標,用于執行sql語句并獲取sql語句的執行結果。常用方法如下

execute:執行語句

close 關閉游標

fetchall:獲取sql語句的所有記錄

fetchmany :獲取sql語句的多條記錄

fetchone:獲取sql語句的一條記錄

owncount:常量,表示sql語句的結果集中返回了多少條記錄

arraysize:變量,保存了當前獲取記錄的下標

四、連接數據庫基本操作

4.1數據庫連接import?MySQLdb

#?打開數據庫連接

db?=?MySQLdb.connect('localhost','testuser','test123','TESTDB',charset='utf8')

#?使用cursor()方法獲取操作游標

cursor?=?db.cursor()

#?使用execute方法執行SQL語句

cursor.execute('SELECT?VERSION()')

#?使用?fetchone()?方法獲取一條數據

data?=?cursor.fetchone()

print?"Database?version?:?%s?"?%?data

#?關閉數據庫連接db.close()

db.close()

執行完以上語句后,輸出結果如下

4.2創建數據庫表EMPLOYEE_1

#!/usr/bin/python

#?-*-?coding:?UTF-8?-*-

import?MySQLdb

#?打開數據庫連接

db?=?MySQLdb.connect("localhost",?"testuser",?"test123",?"TESTDB",?charset='utf8'?)

#?使用cursor()方法獲取操作游標

cursor?=?db.cursor()

#?如果數據表已經存在使用?execute()?方法刪除表。

#cursor.execute("DROP?TABLE?IF?EXISTS?EMPLOYEE_1")

#?創建數據表SQL語句

sql?=?"""CREATE?TABLE?EMPLOYEE_1?(

FIRST_NAME??CHAR(20)?NOT?NULL,

LAST_NAME??CHAR(20),

AGE?INT,

SEX?CHAR(1),

INCOME?FLOAT?)"""

cursor.execute(sql)

#?關閉數據庫連接

db.close()

此時查看表已經被創建

4.3數據庫插入操作

以下為使用sql insert語句向表EMPLOYEE_1插入記錄:

#!/usr/bin/python

#?-*-?coding:?UTF-8?-*-

import?MySQLdb

#?打開數據庫連接

db?=?MySQLdb.connect("localhost",?"testuser",?"test123",?"TESTDB",?charset='utf8'?)

#?使用cursor()方法獲取操作游標

cursor?=?db.cursor()

#?SQL?插入語句

sql?=?"INSERT?INTO?EMPLOYEE_1(FIRST_NAME,?\

LAST_NAME,?AGE,?SEX,?INCOME)?\

VALUES?('%s',?'%s',?'%d',?'%c',?'%d'?)"?%?\

('Mac',?'Mohan',?20,?'M',?2000)

try:

#?執行sql語句

cursor.execute(sql)

#?提交到數據庫執行

db.commit()

except:

#?發生錯誤時回滾

db.rollback()

#?關閉數據庫連接

db.close()

可以看到,數據已經插入了

4.4執行事務

事務機制可以確保數據一致性。

事務應該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱為ACID特性。原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要么都做,要么都不做。

一致性(consistency)。事務必須是使數據庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。

隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對并發的其他事務是隔離的,并發執行的各個事務之間不能互相干擾。

持久性(durability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。

Python DB API 2.0 的事務提供了兩個方法 commit 或 rollback。#?SQL刪除記錄語句

sql?=?"DELETE?FROM?EMPLOYEE?WHERE?AGE?>?'%d'"?%?(20)

try:

#?執行SQL語句

cursor.execute(sql)

#?向數據庫提交

db.commit()

except:

#?發生錯誤時回滾

db.rollback()

4.5數據庫查詢操作

Python查詢Mysql使用 fetchone() 方法獲取單條數據, 使用fetchall() 方法獲取多條數據。fetchone():?該方法獲取下一個查詢結果集。結果集是一個對象

fetchall():接收全部的返回結果行.

rowcount:?這是一個只讀屬性,并返回執行execute()方法后影響的行數。#!/usr/bin/python

#?-*-?coding:?UTF-8?-*-

import?MySQLdb

#?打開數據庫連接

db?=?MySQLdb.connect("localhost",?"testuser",?"test123",?"TESTDB",?charset='utf8'?)

#?使用cursor()方法獲取操作游標

cursor?=?db.cursor()

#?SQL?查詢語句

sql?=?"SELECT?*?FROM?EMPLOYEE_1?\

WHERE?INCOME?>?'%d'"?%?(1000)

try:

#?執行SQL語句

cursor.execute(sql)

#?獲取所有記錄列表

results?=?cursor.fetchall()

for?row?in?results:

fname?=?row[0]

lname?=?row[1]

age?=?row[2]

sex?=?row[3]

income?=?row[4]

#?打印結果

print?"fname=%s,lname=%s,age=%d,sex=%s,income=%d"?%?\

(fname,?lname,?age,?sex,?income?)

except:

print?"Error:?unable?to?fecth?data"

#?關閉數據庫連接

db.close()

查詢EMPLOYEE_1表中salary(工資)字段大于1000的所有數據:

4.5數據庫更新操作

新操作用于更新數據表的的數據,以下實例將 EMPLOYEE_1 表中的 SEX 字段為 'M' 的 AGE 字段遞增 1:#!/usr/bin/python

#?-*-?coding:?UTF-8?-*-

import?MySQLdb

#?打開數據庫連接

db?=?MySQLdb.connect("localhost",?"testuser",?"test123",?"TESTDB",?charset='utf8'?)

#?使用cursor()方法獲取操作游標

cursor?=?db.cursor()

#?SQL?更新語句

sql?=?"UPDATE?EMPLOYEE?SET?AGE?=?AGE?+?1?WHERE?SEX?=?'%c'"?%?('M')

try:

#?執行SQL語句

cursor.execute(sql)

#?提交到數據庫執行

db.commit()

except:

#?發生錯誤時回滾

db.rollback()

#?關閉數據庫連接

db.close()

六、錯誤處理

以下為常見異常及解釋

總結

以上是生活随笔為你收集整理的python mysqldb_python学习-使用MySQLdb操作mysql数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久久久久久久久久久久久久 | 国产91精品露脸国语对白 | 国产午夜一区 | 婷婷色伊人| 国产一级性生活片 | 中文字幕区| 成人免费毛片嘿嘿连载视频 | a√天堂在线 | 高清久久久 | 91看片免费版 | 中文字幕韩日 | 亚洲欧美高清视频 | 免费的黄色大片 | 色狠久 | 在线视频自拍 | 人人看人人插 | 靠逼网站在线观看 | 好吊一区二区三区视频 | 韩国电影一区二区三区 | 精品久久综合 | 中国超碰 | 黄色的毛片 | 亚洲av成人精品午夜一区二区 | 少妇一级淫片免费放 | 午夜精| 精品人妻一区二区三区在线视频 | 国产精品久久久久久婷婷天堂 | 亚洲一区二区三区四区五区六区 | 欧美yyy| 日日夜夜天天操 | 精品一区李梓熙捆绑 | 在线免费观看黄网站 | 亚洲AV成人午夜无码精品久久 | 动漫美女被到爽流 | 中文字幕永久在线观看 | a免费观看| 日韩欧美视频一区二区三区 | 草草在线免费视频 | 大地资源高清播放在线观看 | 精品一区二区无码 | 日本成人激情视频 | 天天干天天插天天操 | 美女被猛网站 | 人妻体体内射精一区二区 | 综合伊人 | 成人乱人乱一区二区三区 | 在线播放国产精品 | 日韩资源在线观看 | 亚洲精品大片 | 漂亮少妇高潮午夜精品 | 国产精品国产一区二区三区四区 | 国产一伦一伦一伦 | 成人在线国产 | 男人的天堂色偷偷 | 精品一区二区三区精华液 | 欧美在线视频网站 | 新狠狠干| 成人午夜在线播放 | 国产毛片电影 | 亚洲国产成人一区二区精品区 | 久久男人精品 | 91亚洲精品一区二区乱码 | 神宫寺奈绪一区二区三区 | 免费黄色网址在线观看 | 亚洲www啪成人一区二区麻豆 | 日韩黄色在线观看 | av的天堂 | 久久草av | 一级福利片 | 免费麻豆国产一区二区三区四区 | 一区二区三区免费 | 亚洲美女久久久 | 成人一区在线观看 | 午夜福利三级理论电影 | 国产乱人 | 男女搞鸡网站 | h在线播放 | 国产精品久久无码一三区 | 91叼嘿视频 | 国产精品视频无码 | 麻豆视频在线观看免费网站黄 | 日本精品三区 | 国产美女主播在线观看 | 免费在线看黄的网站 | 国产精品免费视频一区二区三区 | 麻豆成人在线视频 | www在线观看免费视频 | 超碰天天操 | 国模精品一区二区三区 | 91日本精品| 男人在线网站 | 91精品国产综合久久国产大片 | 香港三级韩国三级日本三级 | 国产极品久久久 | 日本黄色片. | 搡老熟女老女人一区二区 | 天天黄色片| 天天色影院 | 亚洲搞av|