Python数据库操作(PyMysql)

来源:互联网 发布:unity3d安卓真机调试 编辑:程序博客网 时间:2024/05/29 11:01
MYSQL数据库
  安装mysql驱动模块(https://github.com/PyMySQL/PyMySQL)
  1. pip install PyMySQL
   注意:linux 共存pyhon2 和python3 上面默认是给python2安的,所以python3使用pip3.6 install PyMysql
   pymysql模块
   数据库连接pymysql.connect()
  1. 参数 描述
  2. host 数据库地址
  3. user 数据库用户名
  4. passwd 数据库密码
  5. db 数据库库名
  6. port 数据库端口,默认3306
  7. connect_timeout 连接超时时间,秒为单位
  8. use_unicode 结果以unicode字符串返回
  9. charset 插入数据库编码
   连接对象返回的connect()函数
  1. commit() 提交事务。对支持事务的数据库和表,如果提交修改操作,不适用这个方法,则不会写到数据库中
  2. rollback() 事务回滚。对支持事务的数据库和表,如果执行此方法,则回滚当前事务。在没有commit()前提下。
  3. cursor([cursorclass]) 创建一个游标对象。所有的sql语句的执行都要在游标对象下进行。MySQL本身不支持游标,MySQLdb模块对其游标进行了仿真。
    游标对象方法
  1. close()关闭游标
  2. execute(sql) 执行sql语句
  3. excutemany(sql)执行多条sql语句
  4. fetchone()从执行结果中取第一条记录
  5. fetchmany(n) 从执行结果中取n条记录
  6. fetchall() 从执行结果中取所有记录
  7. scroll(self, value, mode='relative') 游标滚动


数据库增删查改
   准备:(数据库yum直接安装 http://blog.csdn.net/hzsunshine/article/details/54933294)
   如果数据库默认编码不是utf-8,记得修改/etc/my.cnf文件的编码
  1. [client]
  2. default-character-set = utf8
  3. [mysqld]
  4. default-storage-engine = INNODB
  5. character-set-server = utf8
  6. collation-server = utf8_general_ci
   可通过以下命令查看
  1. show variables like '%char%';
  2. +--------------------------+----------------------------+
  3. | Variable_name | Value |
  4. +--------------------------+----------------------------+
  5. | character_set_client | utf8 |
  6. | character_set_connection | utf8 |
  7. | character_set_database | utf8 |
  8. | character_set_filesystem | binary |
  9. | character_set_results | utf8 |
  10. | character_set_server | utf8 |
  11. | character_set_system | utf8 |
  12. | character_sets_dir | /usr/share/mysql/charsets/ |
  13. +--------------------------+----------------------------+
   实例:
  1. #导入PyMysql模块
  2. >>> import pymysql
  3. #连接mysql数据库
  4. >>> conn = pymysql.connect(host='127.0.0.1',user='root',passwd='960304',charset='utf8')
  5. #创建游标对象
  6. >>> cursor = conn.cursor()
  7. #创建数据库test
  8. >>> sql = 'create database test'
  9. >>> cursor.execute(sql) #执行,返回受影响行数
  10. 1
  11. #查看当前mysql数据库
  12. >>> sql = 'show databases'
  13. >>> cursor.execute(sql)
  14. 4
  15. >>> cursor.fetchall() #查看上一命令执行结果的所有记录
  16. (('information_schema',), ('mysql',), ('performance_schema',), ('test',))
  17. #使用test数据库
  18. >>> sql = 'use test'
  19. >>> cursor.execute(sql)
  20. 0
  21. #创建表单user
  22. >>> sql = "create table user(num varchar(10),name varchar(20))"
  23. >>> cursor.execute(sql)
  24. 0
  25. #查看当前数据库表单
  26. >>> sql = 'show tables'
  27. >>> cursor.execute(sql)
  28. 1
  29. >>> cursor.fetchall()
  30. (('user',),)
  31. #向表单插入数据
  32. >>> sql = "insert into user(num,name) values('1','韩')"
  33. >>> cursor.execute(sql)
  34. 1
  35. >>> cursor.fetchall()
  36. ()
  37. >>> conn.commit() #使插入生效
  38. #查看表单数据
  39. >>> sql = 'select * from user'
  40. >>> cursor.execute(sql)
  41. 1
  42. >>> cursor.fetchall()
  43. (('1', '韩'),)
  44. #向表单插入多条数据
  45. >>> sql = "insert into user(num,name) values(%s,%s)"
  46. >>> args = [('2','张'),('3','陈')]
  47. >>> cursor.executemany(sql,args)
  48. 2
  49. >>> conn.commit()
  50. #查看表单
  51. >>> sql = 'select * from user'
  52. >>> cursor.execute(sql)
  53. 3
  54. >>> cursor.fetchall()
  55. (('1', '韩'), ('2', '张'), ('3', '陈'))
  56. #删除表单数据
  57. >>> sql = "delete from user where num='1'"
  58. >>> cursor.execute(sql)
  59. 1
  60. >>> conn.commit()
  61. >>> sql = 'select * from user'
  62. >>> cursor.execute(sql)
  63. 2
  64. >>> cursor.fetchall()
  65. (('2', '张'), ('3', '陈'))

 
学习博客:http://lizhenliang.blog.51cto.com/7876557/1875753
学习博客:http://www.runoob.com/python3/python3-mysql.html
学习博客:http://www.liaoxuefeng.com