目录
链接:软件测试第一篇_测试理论_Linux数据库_超详细教程_哔哩哔哩_bilibili
一、数据库的基本知识
1、数据库概念
数据库是指长期存储在计算机内、有组织的数据集合,简而言之,数据库就是一个存储数据的地方。
表是数据库中存储数据的基本单位,数据按照分类存储到不同的表中,能够非常高效的查询其中的数据。
注意:对于测试工作而言,如果项目页面没有实现,但是又想要校验数据,则可以直接通过查询数据库实现。
2、常见的数据库分类
(1)、当前主要使用的两种类型数据库
- 关系型数据库
- 非关系型数据库
(2)、关系型数据库
1、基本概念
RDMS:(Relational Database Management System)关系型数据库系统,是将数据间的关系以数据库表的形式加以表达,并将数据存储在表格中,以便于查询。
2、关系型数据库的代表产品
- Oracle:在大型项目中使用,例如:银行、电信等项目。
- MySQL:Web项目中使用最广泛的关系型数据库。
- Microsoft【买块儿沙佛特】 SQL Server:在微软的项目中使用。
- SQLite【Lite:雷特】:轻量级数据库,主要应用在移动平台。
3、关系型数据库的核心元素
- 数据行(一条记录)
- 数据列(字段)
- 数据表(数据行的集合)
- 数据库(数据表的集合,一个数据库中能够有n多个数据表)
(3)、非关系型数据库
将数据以key、value、文本、图片等形式存储的数据构成。
- Redis
- MongoDB
二、SQL基本知识
1、SQL介绍
SQL:Structred Query Language(结构化查询语言),通过SQL语言可以对数据库进行操作。
主流的关系型数据库都支持使用SQL语言进行操作,也就是说可以通过SQL语言操作Oracle、MySQL、Microsoft SQL Server、SQLite 等关系型的数据库。
2、SQL语言的分类
- DQL:数据查询语言,用于对数据进行查询,例如:select
- DML:数据操作语言,对数据进行增加、修改、删除,例如:insert、update、delete。
- DCL:数据控制语言,进行授权与权限回收,例如:grant、revoke。
- DDL:数据定义语言,进行数据库、表的管理等,例如:create、drop。
注意:
- 对于测试工程师来说,重点是数据的查询,因此需要熟练编写DQL。
- 在MySQL中,默认对SQL语法不区分大小写。
三、MySQL基本知识
登录MySQL的命令:mysql -u数据库用户名 -p数据库密码
关闭MySQL的命令:exit
1、MySQL介绍
MySQL是一个关系型数据库管理系统,目前属于Oracle旗下产品。
目前为止,MySQL社区版是可以免费使用的。
2、MySQL特点
开源、社区版免费、支持多平台/多语言、使用范围广泛,是学习数据库开发与使用的首选。
MySQL的连接工具,建议使用Navicat。
说明:由于数据库软件处于服务器中,想要操作数据库,就必须使用工具远程连接数据库后,进行操作。
3、MySQL的数据类型和约束
3.1、常用数据类型
数据类型:对于填入的数据值本身进行控制,保证数据准确性。
- 整数:int,分为有符号范围和无符号范围。有符号范围(-2147483648~2147483647),无符号(unsigned[安塞的])范围(0~4294967295)。
- 小数:decimal[黛色某],例如:decimal(5,2)表示共存5位数,小数占2位,整数占3位。
- 字符串:varchar[挖个儿],范围(0~65533),例如:varchar(3)表示最多存3个字符,一个中文或一个字母都占一个字符。
- 日期时间:datetime,范围(1000-01-01 00:00:00~9999-12-31 23:59:59),例如:'2020-01-01 12:29:59'
3.2、约束
约束:对于整张数据表进行限制,确保对应字段的所有数据符合设计要求。
- 主键(primary【拍莫瑞】 key):能唯一标识表中的每一条记录的属性组。
- 非空(not null):此字段不允许填写空值。
- 唯一(unique【优尼科】):此字段的值不允许重复。
- 默认值(default):当不填写此值时会使用默认值,如果填写以填写为准。注意:如果默认值的内容为字符串,必须加英文格式下的引号。
- 外键(foreign【for 瑞】 key):一个表中的一个字段引用另一个表的主键。
作用:
- 主键的作用是为了保证数据表内的数据每一条的顺序是固定的,不会由于删除或增加数据,而导致数据乱序,需要注意的是:一般的在一张数据表中只需要有一个主键。为了使用方便,一般会设置成自动递增,并且是无符号。
- 还需要注意的是,主键的虽然是天然的不为空,但也要将自动递增和无符号这两个选项选上。
- 唯一的操作顺序:
- 唯一的作用是当前字段内的所有数据不能重复。
4、MySQL数据库语法
4.1、在Navicat中如何MySQL语句
想要操作数据库,就在如图所示的位置上右键点击新建查询,如果想要操作数据表,则在相对应的数据库右键新建查询。
4.2、创建数据库
-
语法格式
# 创建数据库
create database 数据库名称 [charset] [字符编码] [collate] [校验规则];
# 创建结果查看
show create database 数据库名称
-
举例说明
# 创建一个名称为python的数据库
create database python charset=utf8 collate=utf8_general_ci;
# 查看创建结果
show create database python;
4.3、使用数据库
# 语法格式
# 使用(打开)数据库
use 数据库名
# 查看当前使用数据库
select database()
# 举例说明
#使用数据库
use python
4.4、修改数据库
# 语法格式
alter database [数据库名]
[default] character set <字符集名>
[default] collate <校对规则名>
# 举例说明
# 创建testpython数据库,字符集为gb2312
create database testpython charset=gb232
# 修改testpython的指定字符集修改为utf8mb4,默认校验规则为utf8mb4_general_ci
alter database testpython
default character set utf8mb4
default collate utf8mb4_general_ci
4.5、删除数据库
# 语法格式
drop database 数据库名;
# 举例说明
drop database python;
4.6、数据库的其他操作
- 查看所有数据库: show database
- mysqldump -uroot -p 数据库名 > python.sql 再按照提示输入mysql的密码
4.7、关于命令的小总结
- 创建是create
- 使用是use
- 修改是alter【奥特儿】
- 删除是drop【抓普】
4.8.1、使用Navicat工具实现数据库的备份
4.8.1.1、存储数据库
要备份哪个数据库,就鼠标右键哪个数据库,点击转储SQL文件。
4.8.1.2、恢复数据库
4.8.1.3、应用场景
- 说明:在测试工作中,为了防止对数据库产生错误操作,或产生垃圾数据,都需要在操作前,适当对数据库进行备份操作。
- 垃圾数据:例如在自动化测试中,对注册模块操作生成的所有数据,属于典型的垃圾数据,应该清理。
4.8.2、命令备份数据库
- 注意: 命令是不需要连接到数据库以后执行的(非 mysql> 模式 ),也就是说,在虚拟机中用命令备份数据库,不需要用 mysql -u数据库用户名 -p数据库密码 进入数据库。
- 备份命令:mysqldump -u数据库用户名 -p 目标数据库名 > 备份文件.sql
- 还原命令:mysql -u数据库用户名 -p 目标数据库 < 备份文件名.sql
注意点:因为-p后面没有跟数据库密码,所以需要根据提示输入数据库密码,执行数据库的备份和还原操作。