当前位置:Gxlcms > mysql > MySQLdb库连接MySQL数据库

MySQLdb库连接MySQL数据库

时间:2021-07-01 10:21:17 帮助过:56人阅读

Python DB-API是Python的数据库应用程序接口,支持包括Oracle,MySQL,DB2,MSSQL,Sybase等主流数据库,但不同的数据库,需要下载不同的模块,比如说:MySQLdb模块支持MySQL. 虽然模不一样,但所有这些API执行步骤是一致的: 1. 导入API模 2. 获取与数据库的连接

Python DB-API是Python的数据库应用程序接口,支持包括Oracle,MySQL,DB2,MSSQL,Sybase等主流数据库,但不同的数据库,需要下载不同的模块,比如说:MySQLdb模块支持MySQL. 虽然模不一样,但所有这些API执行步骤是一致的:

1. 导入API模
2. 获取与数据库的连接.
3. 发出SQL语句和存储过程.
4. 关闭连接


下面以MySQLdb模块来做说明:

安装

首先必须安装。Windows下载链接:http://www.codegood.com/archives/4


插入

  1. #导入相关模块
  2. import MySQLdb
  3. #建立和mysql数据库的连接
  4. dbconn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='abcd')
  5. #获取游标
  6. cursor = dbconn.cursor()
  7. #执行SQL,创建一个数据库
  8. cursor.execute("drop database if exists test")
  9. cursor.execute("create database test")
  10. #选择连接哪个数据库
  11. dbconn.select_db('test')
  12. #引入异常处理
  13. try:
  14. #执行SQL,创建一个表
  15. cursor.execute("create table log(id int,message varchar(50))")
  16. #插入一条记录
  17. value = [0,"Log Information ID is:0"]
  18. cursor.execute("insert into log values(%s,%s)",value)
  19. #插入多条记录
  20. values = []
  21. for i in range(1,11):
  22. values.append((i,'Log Information ID is:' + str(i)))
  23. cursor.executemany("insert into log values(%s,%s)",values)
  24. #提交修改
  25. dbconn.commit()
  26. except:
  27. #如果执行SQL语句有错,则回滚!
  28. dbconn.rollback()
  29. #关闭游标连接,释放资源
  30. cursor.close()
  31. #关闭连接
  32. dbconn.close()

查询

数据库建立连接后,可以使用fetchone()方法来获取单个记录或者fetchAll方法fetech从数据库表的多个值.
fetchone(): 这种方法获取查询结果集的下一行。结果集是一个对象时,将返回一个游标对象用于查询表.
fetchall(): 这种方法获取结果集的所有行。如果某些行已经从结果集中提取,fetchAll()方法检索结果集的其余行.
rowcount: 这是一个只读属性,返回受影响的行数execute()方法.

  1. #导入模块
  2. import MySQLdb
  3. #也可以将数据库名放到Connect()
  4. dbconn = MySQLdb.Connection('127.0.0.1', 'root', 'abcd', 'test')
  5. cursor = dbconn.cursor()
  6. count = cursor.execute('select * from log')
  7. print '总共有 %s 条记录',count
  8. #获取一条记录,每条记录做为一个元组返回
  9. print "只获取一条记录:"
  10. result = cursor.fetchone();
  11. print result
  12. print 'ID: %s Log Info: %s' % result
  13. #获取5条记录,注意由于之前执行有了fetchone(),所以游标已经指到第二条记录了,也就是从第二条开始的所有记录
  14. print "只获取5条记录:"
  15. results = cursor.fetchmany(5)
  16. for res in results:
  17. print res
  18. print "获取所有结果:"
  19. #重置游标位置,0,为偏移量,mode=absolute | relative,默认为relative,
  20. cursor.scroll(0,mode='absolute')
  21. #获取所有结果
  22. results = cursor.fetchall()
  23. for res in results:
  24. print res
  25. dbconn.close()
  1. C:\Work\Python\Learn>python select.py
  2. 总共有 %s 条记录 11
  3. 只获取一条记录:
  4. (0L, 'Log Information ID is:0')
  5. ID: 0 Log Info: Log Information ID is:0
  6. 只获取5条记录:
  7. (1L, 'Log Information ID is:1')
  8. (2L, 'Log Information ID is:2')
  9. (3L, 'Log Information ID is:3')
  10. (4L, 'Log Information ID is:4')
  11. (5L, 'Log Information ID is:5')
  12. 获取所有结果:
  13. (0L, 'Log Information ID is:0')
  14. (1L, 'Log Information ID is:1')
  15. (2L, 'Log Information ID is:2')
  16. (3L, 'Log Information ID is:3')
  17. (4L, 'Log Information ID is:4')
  18. (5L, 'Log Information ID is:5')
  19. (6L, 'Log Information ID is:6')
  20. (7L, 'Log Information ID is:7')
  21. (8L, 'Log Information ID is:8')
  22. (9L, 'Log Information ID is:9')
  23. (10L, 'Log Information ID is:10')

人气教程排行