MYSQL数据库
安装mysql驱动模块
(https://github.com/PyMySQL/PyMySQL)
pip install PyMySQL
注意:linux 共存pyhon2 和python3 上面默认是给python2安的,所以python3使用pip3.6 install PyMysql
pymysql模块
数据库连接pymysql.connect()
- 参数 描述
host 数据库地址
user 数据库用户名
passwd 数据库密码
db 数据库库名
port 数据库端口,默认3306
connect_timeout 连接超时时间,秒为单位
use_unicode 结果以unicode字符串返回
charset 插入数据库编码
连接对象返回的connect()函数
commit() 提交事务。对支持事务的数据库和表,如果提交修改操作,不适用这个方法,则不会写到数据库中
rollback() 事务回滚。对支持事务的数据库和表,如果执行此方法,则回滚当前事务。在没有commit()前提下。
cursor([cursorclass]) 创建一个游标对象。所有的sql语句的执行都要在游标对象下进行。MySQL本身不支持游标,MySQLdb模块对其游标进行了仿真。
游标对象方法
close() 关闭游标
execute(sql) 执行sql语句
excutemany(sql) 执行多条sql语句
fetchone() 从执行结果中取第一条记录
fetchmany(n) 从执行结果中取n条记录
fetchall() 从执行结果中取所有记录
scroll(self, value, mode='relative') 游标滚动
数据库增删查改
准备:(数据库yum直接安装 http://blog.csdn.net/hzsunshine/article/details/54933294)
如果数据库默认编码不是utf-8,记得修改/etc/my.cnf文件的编码
[client]
default-character-set = utf8
[mysqld]
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
可通过以下命令查看
show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
实例:
#导入PyMysql模块
>>> import pymysql
#连接mysql数据库
>>> conn = pymysql.connect(host='127.0.0.1',user='root',passwd='960304',charset='utf8')
#创建游标对象
>>> cursor = conn.cursor()
#创建数据库test
>>> sql = 'create database test'
>>> cursor.execute(sql) #执行,返回受影响行数
1
#查看当前mysql数据库
>>> sql = 'show databases'
>>> cursor.execute(sql)
4
>>> cursor.fetchall() #查看上一命令执行结果的所有记录
(('information_schema',), ('mysql',), ('performance_schema',), ('test',))
#使用test数据库
>>> sql = 'use test'
>>> cursor.execute(sql)
0
#创建表单user
>>> sql = "create table user(num varchar(10),name varchar(20))"
>>> cursor.execute(sql)
0
#查看当前数据库表单
>>> sql = 'show tables'
>>> cursor.execute(sql)
1
>>> cursor.fetchall()
(('user',),)
#向表单插入数据
>>> sql = "insert into user(num,name) values('1','韩')"
>>> cursor.execute(sql)
1
>>> cursor.fetchall()
()
>>> conn.commit() #使插入生效
#查看表单数据
>>> sql = 'select * from user'
>>> cursor.execute(sql)
1
>>> cursor.fetchall()
(('1', '韩'),)
#向表单插入多条数据
>>> sql = "insert into user(num,name) values(%s,%s)"
>>> args = [('2','张'),('3','陈')]
>>> cursor.executemany(sql,args)
2
>>> conn.commit()
#查看表单
>>> sql = 'select * from user'
>>> cursor.execute(sql)
3
>>> cursor.fetchall()
(('1', '韩'), ('2', '张'), ('3', '陈'))
#删除表单数据
>>> sql = "delete from user where num='1'"
>>> cursor.execute(sql)
1
>>> conn.commit()
>>> sql = 'select * from user'
>>> cursor.execute(sql)
2
>>> cursor.fetchall()
(('2', '张'), ('3', '陈'))
学习博客:http://www.liaoxuefeng.com