Python操作MySQL数据库
参考:http://www.w3cschool.cc/python/python-mysql.html
假定:
- 已经安装好MySQL并创建了数据库 TESTDB
- 连接数据库TESTDB使用的用户名为 "testuser" ,密码为 "test123"
- 在你的机子上已经安装了 Python MySQLdb 模块
Python操作MySQL新建表示例:
1 # encoding: utf-8 2 #!/usr/bin/python 3 4 import MySQLdb 5 6 # 打开数据库连接 7 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) 8 9 # 使用cursor()方法获取操作游标 10 cursor = db.cursor() 11 12 # 如果数据表已经存在使用 execute() 方法删除表。 13 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") 14 15 # 创建数据表SQL语句 16 sql = """CREATE TABLE EMPLOYEE ( 17 FIRST_NAME CHAR(20) NOT NULL, 18 LAST_NAME CHAR(20), 19 AGE INT, 20 SEX CHAR(1), 21 INCOME FLOAT )""" 22 23 cursor.execute(sql) 24 25 # 关闭数据库连接 26 db.close()
向表中写入数据示例:
1 # encoding: utf-8 2 #!/usr/bin/python 3 4 import MySQLdb 5 6 # 打开数据库连接 7 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) 8 9 # 使用cursor()方法获取操作游标 10 cursor = db.cursor() 11 12 # SQL 插入语句 13 sql = """INSERT INTO EMPLOYEE(FIRST_NAME, 14 LAST_NAME, AGE, SEX, INCOME) 15 VALUES (‘Mac‘, ‘Mohan‘, 20, ‘M‘, 2000)""" 16 try: 17 # 执行sql语句 18 cursor.execute(sql) 19 # 提交到数据库执行 20 db.commit() 21 except: 22 # Rollback in case there is any error 23 db.rollback() 24 25 # 关闭数据库连接 26 db.close()
查询示例:
1 # encoding: utf-8 2 #!/usr/bin/python 3 4 import MySQLdb 5 6 # 打开数据库连接 7 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) 8 9 # 使用cursor()方法获取操作游标 10 cursor = db.cursor() 11 12 # SQL 查询语句 13 sql = "SELECT * FROM EMPLOYEE 14 WHERE INCOME > ‘%d‘" % (1000) 15 try: 16 # 执行SQL语句 17 cursor.execute(sql) 18 # 获取所有记录列表 19 results = cursor.fetchall() 20 for row in results: 21 fname = row[0] 22 lname = row[1] 23 age = row[2] 24 sex = row[3] 25 income = row[4] 26 # 打印结果 27 print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % 28 (fname, lname, age, sex, income ) 29 except: 30 print "Error: unable to fecth data" 31 32 # 关闭数据库连接 33 db.close()
事务示例:
1 # SQL删除记录语句 2 sql = "DELETE FROM EMPLOYEE WHERE AGE > ‘%d‘" % (20) 3 try: 4 # 执行SQL语句 5 cursor.execute(sql) 6 # 向数据库提交 7 db.commit() 8 except: 9 # 发生错误时回滚 10 db.rollback()
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。