python mysql数据库_Python3中操作MySQL数据库
0.安裝
pip install pymysql
1.打開數(shù)據(jù)庫連接
import pymysql
db = pymysql.connect(host="數(shù)據(jù)庫地址",
user="用戶名",
password="密碼",
port="端口",
database="數(shù)據(jù)庫名",
charset='utf8')
2.創(chuàng)建游標
cursor = db.cursor()
3.操作數(shù)據(jù)庫
3.1創(chuàng)建表
# 如果數(shù)據(jù)表已經(jīng)存在使用execute()方法刪除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 創(chuàng)建數(shù)據(jù)表SQL語句
sql = """CREATE TABLE EMPLOYEE (
id int(7) NOT NULL auto_increment,
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT,primary key(id))ENGINE=InnoDB DEFAULT CHARSET=utf8"""
cursor.execute(sql)
3.2添加
# SQL 插入語句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
cursor.execute(sql)
# 提交到數(shù)據(jù)庫執(zhí)行
db.commit()
except:
# 發(fā)生錯誤時回滾
db.rollback()
3.3查詢
# SQL 查詢語句
sql = "SELECT * FROM EMPLOYEE WHERE INCOME > {}".format(1000)
try:
# 執(zhí)行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]
# 打印結(jié)果
print("fname={},lname={},age={},sex={},income={}".format(fname, lname, age, sex, income))
except:
print("Error: unable to fecth data")
fetchone(): 獲取單條數(shù)據(jù),返回結(jié)果行元組,若無結(jié)果,返回null;
rowcount:獲取下一個查詢結(jié)果集,是一個對象;
fetchall():獲取多條數(shù)據(jù)元組;若無結(jié)果,返回()。
備注:在MySQL中是NULL,而在Python中則是None。
3.4修改
# SQL 更新語句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '{}'".format('M')
try:
cursor.execute(sql)
# 提交到數(shù)據(jù)庫執(zhí)行
db.commit()
except:
# 發(fā)生錯誤時回滾
db.rollback()
3.5刪除
# SQL 刪除語句
sql = "DELETE FROM EMPLOYEE WHERE AGE > {}".format(20)
try:
cursor.execute(sql)
# 提交到數(shù)據(jù)庫執(zhí)行
db.commit()
except:
# 發(fā)生錯誤時回滾
db.rollback()
4.關(guān)閉游標與數(shù)據(jù)庫連接
cursor.close()
db.close()
總結(jié)
以上是生活随笔為你收集整理的python mysql数据库_Python3中操作MySQL数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自带的函数有哪些_为什么说
- 下一篇: sublime编辑python_在没有安