19.1 数据持久化技术概述
1)文件文本
Python的文件操作和管理技术将数据保存到文本文件中,然后进行读写操作,这些文件一般是结构化文档,能将数据组织起来,如XML和JSON文件。
2)数据库
Python将数据保存到数据库中的技术,主要是两类:
遵循Python DB-API规范技术(在Python中编写SQL语句访问数据库)和ORM技术(面向对象,超过了Python基础范围)。
19.2 MySQL数据库管理系统
Python DB-API规范一定会依托某个数据库管理系统(Database Management System,DBMS),还会用到SQL语句。现在主流的数据库管理系统:Oracle,SQL Server,DB2,Sysbase,MySQL和SQLite。
Python内置了对SQLite数据库访问的支持,但是SQLite主要是嵌入式系统设计,数据承载能力差。
19.2.1 数据库安装与配置
MySQL:MySQL
下载社区版,MySQL :: Download MySQL Community Server
下载第二个。 然后解压。
解压之后将里面的bin添加到Path环境变量
๏ 1)初始化数据库
指令 C:\Users\21904\Downloads\mysql-8.3.0-winx64\mysql-8.3.0-winx64\bin\mysql -initialize -console
一定要记住这个密码
๏ 2)安装MySQL服务
C:\Users\21904\Downloads\mysql-8.3.0-winx64\mysql-8.3.0-winx64\bin\mysql --install
๏ 3)启用服务
net start mysql
๏ 4)修改root临时密码
C:\Users\21904\Downloads\mysql-8.3.0-winx64\mysql-8.3.0-winx64\bin\mysql -u root -p
接下来修改密码为12345
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345';
19.2.2 登录服务器
命令提示符窗口登录服务器。完整指令:mysql -h 主机IP地址(主机名) -u 用户 -p
p对应密码。
登录本机数据库,用户是root,密码是12345,至少6种指令可以登录数据库。
๏ mysql -u root -p
๏ mysql -u root -p12345
๏ mysql -uroot -p12345
๏ mysql -h localhost -u root -p
๏ mysql -h localhost -u root -p12345
๏ mysql -hlocalhost -uroot -p12345
19.2.3 常见的管理命令
通过命令行客户端管理MySQL数据库。
1.help
2.退出命令
quit或exit
3.数据库管理
查看数据库:show databases;
创建名字为testdb数据库:create database testdb;
删除名字为testdb数据库:drop database testdb;
4.数据表管理
查看多少个数据表的命令:show tables;
使用数据库:use; 但use sys
知道表结构desc命令,如获得city表结构可以使用desc host_summary;命令
19.3 Python DB-API
Python DB-API规范涉及到三种不同的角色
19.3.1 建立数据连接
数据库访问的第一步是进行数据库连接。建立数据库链接可以通过connect(parameters...)函数实现,该函数根据parameters参数连接数据库。
使用pymysql库连接数据库代码如下。
import pymysql
connection = pymysql.connect(host='localhost',
user='root',
password='12345',
database='mydb',
charset='utf8',
)
pymysql.connect()函数中常用的连接函数:
host:数据库主机名或IP地址
port:连接数据库端口号。
user:访问数据库账号
password或passwd:访问数据库密码
database或da:数据库中的库名
charset:数据库编码格式。
Connection对象有一些方法。
close():关闭数据库连接
commit():提交数据库事务
rollback:回滚数据库事务
cursor():获得Cursor游标对象
19.3.2 创建游标
一个Cursor游标对象表示一个数据库游标,游标暂时保存了SQL操作所影响到的数 据。在数据库事务管理中游标非常重要,游标是通过数据库连接创建的,相同数据库连 接创建的游标所引起的数据变化,会马上反映到同一连接中的其他游标对象。
Cursor对象方法和属性
๏ execute(operation[, parameters])。执行一条SQL语句,operation 是SQL语句,parameters是为SQL提供的参数,可以是序列或字典类型。返回值是整数,表示执行SQL语句影响的行数。
๏ executemany(operation[, seq_of_params])。执行批量SQL语句, operation是SQL语句,seq_of_params是为SQL提供的参数, seq_of_params是序列。返回值是整数,表示执行SQL语句影响的行 数。
๏ callproc(procname[, parameters])。执行存储过程,procname是存 储过程名,parameters是为存储过程提供参数。
相关提取方法如下:
๏ fetchone()。从结果集中返回一条记录的序列,如果没有数据返回 None。
๏ fetchmany([size=cursor.arraysize])。从结果集返回小于等于size记 录数序列,如果没有数据返回空序列,size默认情况下是整个游标的行数。
๏ fetchall()。从结果集返回所有数据。
19.4 实例:User表CRUD操作
对数据库表中的数据进行4类操作:数据插入(Create)、删除数据(Delete)、数据更新(Update)和数据查询(Read)。也就是“增删改查”。
19.4.1 安装PyMySQL库
用pip安装。
19.4.2 数据库编程一般过程
19.4.3 数据查询操作
介绍数据查询操作案例,准备一个User表,它有两个字段name和userid。