>>>
了解数据库编程接口中的连接对象和游标对象
掌握如何创建SQLite数据库
掌握操作SQLite数据库的方法
了解如何下载和安装MYSQL数据库
了解安装PyMySQL的方法
掌握如何通过PyMySql连接和创建数据库
掌握如何操作MySql数据库
14.1 数据库编程接口
14.1.1 连接对象
a, 获取连接对象
b, 连接对象的方法
close() # 关闭数据库连接
commit() # 提交事务
rollback() # 回滚事务
cursor() # 获取游标对象,用于数据库操作
14.1.2 游标对象
cursor()
# 返回的是影响行数的统计信息
# 常用方法:
close(),excute(), exutemany(), fetchone(),
fetchmany(size), fetchall(), nextset(),
14.2 使用SQLite
14.2.1 创建数据库文件
import sqlite3
conn = sqlite3.connect('mrsoft.db') # 没有就创建数据库
cursor = conn.cursor();
cursor.execute('create table user (id int(10) primary key, name varchar(20))')
cursor.close()
conn.close()
14.2.2 操作数据库
a, 新增用户数据
import sqlite3
conn = sqlite3.connect('mrsoft.db')
cursor = conn.cursor();
cursor.execute('insert into user(id, name) values ("2", "张三")' )
cursor.close()
conn.commit() # 新增数据,需要提交事务(修改,删除也要)
conn.close()
b, 查看用户数据信息
import sqlite3
conn = sqlite3.connect('mrsoft.db')
cursor = conn.cursor();
cursor.execute('select * from user')
res = cursor.fetchall() # 返回结果元组列表,一个元组表一行数据
# fetchone(一行数据)fetchmany(指定数量) fetchall(所有数据)
print(res)
cursor.close()
conn.close()
c, 修改用户数据
import sqlite3
conn = sqlite3.connect('mrsoft.db')
cursor = conn.cursor();
res = cursor.execute('update user set name = ? where id = ?',('王 五 ',1))
print(res)
res_sr = cursor.execute('select * from user')
res = cursor.fetchall()
print(res)
cursor.close()
conn.commit()
conn.close()
d, 删除数据
res = cursor.execute('delete from user where id = ?',(1,))
# 同上,改一下上面那个更新为删除就好了
14.3 使用MySql
14.3.1 下载安装MySql
a, 下载
b, 安装
c, 设置环境变量
d, 启动mySql # mysql -u root -p
e, 使用Navicat for MySql
14.3.2 安装pyMySql
# pip install PyMySql
14.3.3 连接数据库
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","root","zyh1092254723","mrsoft" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 关闭数据库连接
db.close()
14.3.4 创建数据表
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","root","zyh1092254723","mrsoft" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS books1")
# 使用预处理语句创建表
sql = """
CREATE TABLE books1 (
id int(8) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
category varchar(50) NOT NULL,
price decimal(10,2) DEFAULT NULL,
publish_time date DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
"""
cursor.execute(sql)
# 关闭数据库连接
db.close()
14.3.5 操作数据库
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","root","zyh1092254723","mrsoft" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 数据列表
data = [("零基础学Python",'Python','79.80','2018-5-20'),
("Python从入门到精通",'Python','69.80','2018-6-18'),
("零基础学PHP",'PHP','69.80','2017-5-23'),
("PHP项目开发实战入门",'PHP','79.80','2016-5-23'),
("零基础学Java",'Java','69.80','2017-5-23'),
]
try:
# 执行sql语句,插入多条数据
cursor.executemany("insert into books(name, category, price, publish_time) values (%s,%s,%s,%s)", data)
# 提交数据
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()