数据库开发
文章目录
驱动
与MySQL通信就是典型的CS模式。Server就是服务器端,使用客户端先建立连接,数据库编程时,这个客户端变成了程序。
MySQL基于TCP协议之上开发,传输的数据必须遵循MySQL的协议。
由于协议多且复杂,就被封装为MySQL协议的包,习惯上称为驱动程序。
MySQL的驱动
- MySQLdb
最有名的库。对MySQL的C Client封装实现,支持Python 2,现在不更新了,且不支持Python3 - mysqlclient
在MySQLdb的基础上, 增加了对Python 3的支持 - MySQL官方Connector
Mysql官网 htts://dev.mysgl.com/downloads/connector/ - pymysql
语法兼容MySQLdb,使用纯Python写的MySQL客户端库,支持Python 3
CPython 2.7、3.4+
MySQL 5.5+、MariaDB 5.5+
pymysql使用
安装
pip install pymysql
pip install simplejson
simplejson库处理json文件方便。
创建数据库和表
CREATE DATABASE IF NOT EXISTS school;
SHOW DATABASES;
USE school;
CREATE TABLE `student`(
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFALUT CHARSET=utf8;
连接Connect
pymysql.connect()方法返回的是connections模块下的Connection类实例。connect方法传参就是给Connection类的init方法提供参数
connection初始化常用参数 | 说明 |
---|---|
host | 主机 |
user | 用户名 |
password | 密码 |
database | 数据库 |
port | 端口 |
Connection.ping()方法,测试数据库是否活着。有一个参数reconnect表示断开与服务器连接是否重新连接,连接关闭抛出异常。
conn.json文件
{
"host":"192.168.10.100",
"user":"qy",
"password":"*963.",
"database":"test",
"port":3306
}
import pymysql
import simplejson
with open('conn.json') as f:
cfg = simplejson.load(f)
conn = None
try:
conn = pymysql.connect(**cfg)#执行到该句时会连接数据库,配置不能出错。
print(type(conn),conn)
conn.ping(False)#ping不通抛异常,True重连
finally:
if conn:
conn.close()
游标Cursor
操作数据库,必须使用游标,需要先获取一个游标对象。
Connection.cursor(cursor=None)方法返回一个新的游标对象。
连接没有关闭前,游标对象可以反复使用。
cursor参数,可以指定一个Cursor类。 如果为None,则使用默认Cursor类。
Cursor类的实例,使用execute() 方法,执行SQL语句ÿ