鲁德软件测试吧 关注:50贴子:179
  • 0回复贴,共1

鲁德——Python对数据库进行简单操作

只看楼主收藏回复

Python对数据库进行简单操作
#!/usr/bin/python
#-*- coding:UTF-8 -*-
import MySQLdb
#打开数据库连接localhost--服务器;testuser--连接用户名; test123--连接密码; TESTDB--数据库名
db=MySQLdb.connet("localhost","testuser","test123","TESTDB")
#使用cursor()方法获取操作游标
cursor=db.cursor()
#如果数据表已经存在使用execute()方法删除表。
cursor.exectute("DROP TABLE IF EXISTS EMPLOYEE")
#创建数据表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)
#SQL插入语句
sqlinsert="""INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME,AGE,SEX,INCOME)
VALUES('Mac','Mohan',20,'M',2000)"""
#与上一句sql语句等效 --向SQL语句中传递参数
sqlinsert1="INSERT INTO EMPLOYEE(FIRST_NAME,\
LAST_NAME,AGE,SEX,INCOME)\
VALUES('%s','%s','%d','%c','%d')" %\
('Mac','Mohan',20,'M',2000)
try:
#执行sql语句
cursor.excute(sqlinsert)
#提交数据到数据库执行
db.commit()
except:
#Rollback in case there is any error
db.rollback()
#SQL查询语句
sqlsel="SELECT * FROM EMPLOYEE WHERE INCOME >'%d'"%(1000)
try:
#执行sql语句
cursor.execute(sqlsel)
#获取所有记录列表
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")
#SQL更新语句
sqlupd="UPDATE EMPLOYEE SET AGE=AGE+1 WHERE SEX='%c'" %('M')
try:
cursor.excute(sqlupd)
db.commit()
except:
db.rollback()
#关闭数据库连接
db.close()


1楼2017-11-24 18:35回复