python+mysql样例

来源:互联网 发布:阿里云redis 编辑:程序博客网 时间:2024/06/05 11:15
import pymysql
 
# 打开数据库连接
db = pymysql.connect("localhost","root","1234","test" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute()  方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)


print ("开始创建表EMPLOYEE")
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS 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)
print ("EMPLOYEE 表创建成功")


print ("EMPLOYEE 表插入数据")
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
#sql也可以写成如下形式:  
sql = "INSERT INTO EMPLOYEE(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()
   print ("EMPLOYEE 表插入数据成功")
except:
   # 如果发生错误则回滚
   db.rollback()
   print ("EMPLOYEE 表插入数据失败")
   
# SQL 查询语句
print ("EMPLOYEE 表查询数据")
sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > '%d'" % (1000)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
   count = 0
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
      count +=1
      # 打印结果
      print ("%s fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
             (count, fname, lname, age, sex, income ))
  
except:
   print ("查询失败")
   
# SQL 更新语句
print ("EMPLOYEE 表更新数据")
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
   print ("EMPLOYEE 表更新数据成功")
except:
   # 发生错误时回滚
   db.rollback()
   print ("EMPLOYEE 表更新数据失败")
   


# SQL 删除语句
print ("EMPLOYEE 表删除数据")
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交修改
   db.commit()
   print ("EMPLOYEE 表删除成功")
except:
   # 发生错误时回滚
   db.rollback()
   print ("EMPLOYEE 表删除数据失败")
   
# 关闭数据库连接
db.close()