python编程 之 PyMysql包接口,python中如何使用数据库

1,环境介绍

要求:使用数据库TESTDB.EMPLOYMENT

           EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。

2,基本用法:

import pymysql
 
# 打开数据库连接,4个参数依次是:本地数据库,数据库用户名,密码,数据库名
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB" )
 
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
 
# 使用 execute()  方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")    #返回1
 
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
 
print ("Database version : %s " % data)    #返回:DATABASE VERSION:5.7.23-0ubuntu0.16.04.1
# 关闭数据库连接
db.close()

    >import pymysql

    >db=pymysql.connect("localhost","testuser","test123","TESTDB" )    #连接到数据库先

    >cursor=db.cursor()    #使用cursor方法创建一个游标对象cursor,目前不是很懂

    >cursor.execute("drop table if exists EMPLOYEE")    #execute()的参数直接就是sql语言,只是不用末尾加分号而已,由此可见,这果然是个接口包。ps:真的可以删掉EMPLOYEE!厉害了

 

    >sql="""create table employee (FIRST_NAME CHAR(20) NOT NULL,LAST_NAME CHAR(20),AGE INT,SEX CHAR(1),INCOME FLOAT)"""

    >cursor.execute(sql)    #执行sql字符串代表的sql语言,创建一个table叫employee。 在命令行中执行的话,执行无误会返回0,

2,增

#!/usr/bin/python3
import pymysql
 
# 打开数据库连接,创建游标,开头启动数据库都是这一套,先链接数据库再设置游标
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB" )
cursor = db.cursor()
 
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
   # 执行sql语句,此处只是预执行,不会真正插入数据,但是如果可执行就返回1,后面用commit提交
   cursor.execute(sql)
   # 提交刚刚的插入请求到数据库执行
   db.commit()
except:
   # 如果发生错误则回滚
   db.rollback()
 
# 关闭数据库连接
db.close()

    特殊说明:ROLLBACK指的是【回滚】,即是在事务的运行过程中,发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有的已完成的操作全部撤销,回滚到事务开始之前的状态。

3 查

import pymysql
 
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB" )
cursor = db.cursor()
 
# SQL 查询语句
sql = "select * from employee where income >2000"
try:
   # 模拟执行SQL语句
   cursor.execute(sql)    #返回2
   # 获取所有记录列表
   results = cursor.fetchall()    #真正的执行查询语句,此时results是:(('Mark', 'Twn', 50, 'M', 3000.0), ('lee', 'devin', 30, 'M', 4000.0))
   #此处往下只是格式化提取results中的内容。
   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 fetch data")
 
# 关闭数据库连接
db.close()

特殊说明:pymysql中使用fetchone()或者fetchall()语句来提交和处理查询请求

4,改

import pymysql
 
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB" )
cursor = db.cursor()
 
# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE INCOME >2000"
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 发生错误时回滚
   db.rollback() 
# 关闭数据库连接
db.close()

5,删

import pymysql
db = pymysql.connect("localhost","xxxx","xxxx","TESTDB" 
cursor = db.cursor()
 
# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > 40"
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交修改
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()
 
# 关闭连接
db.close()

 

posted @ 2018-08-15 17:12  0点0度  阅读(732)  评论(0编辑  收藏  举报