目录
一、数据库基础知识
1、数据库介绍
2、数据库的分类
3、SQL 语⾔介绍
4、MySQL 数据库介绍
5.1、连接数据库操作步骤
二、数据类型和约束
1、数据类型
1.1、整数⽆符号设置
2、约束
2.1、主键
2.2、不为空
2.3、唯⼀
2.4、默认值
三、SQL 语句详解
1、查询窗⼝的开启⽅法
2、单语句运⾏⽅法
3、 数据库操作
3.1、创建数据库
3.2、使⽤数据库
3.3、修改数据库
3.4、删除数据库和查看所有数据库
3.5、数据库备份
3.6、扩展: 使⽤命令备份数据库
4、数据表操作
4.1、创建表
4.2、查看表
4.3、扩展: 判断表存在移除再创建
4.5、查看表结构和删除表
5、数据操作
5.1、增加数据
5.2、修改数据
5.3、删除数据
5.4、扩展 1: 逻辑删除
5.5、扩展 2: 其他删除数据的⽅法
6、查询语句
6.1、基本查询
6.2、条件查询
6.3、其他复杂查询
编辑
7、连接查询
7.1、内连接
7.2、左连接
7.3、右连接
7.4、存在左右连接的必要性
7.5、连接查询的⼩结
8、⾃关联
9、⼦查询
9.1、⼦查询语句充当条件
9.2、⼦查询语句充当数据源
10、数据库⾼级扩展内容(了解)
10.1、ER 模型
10.2、外键
10.3、索引
11、扩展: 实际项⽬中数据库中表的样式
11.1、实际项⽬的表名设计规律编辑
11.2、查看创表语句中的字段注释编辑
12、SQL 练习题获取⽹站
12.1、⼒扣
12.2、牛客网
说明: 数据库是专⻔门⽤来存储数据的软件
注意: 对于测试⼯作⽽⾔, 如果项⽬⻚页⾯没有实现, 但是我们⼜想要校验数据, 则可以直接通过查询数据库实现
关系: 具体存在的商品录⼊后 -> 产⽣对应的数据(存到数据库中) -> 最后会被 加载到项⽬⻚页⾯中
分类:
1. 关系型数据库: 以数据表为核⼼
2. ⾮关系型数据库: 不存在数据表的概念
关系型数据库: RDMS(Relational Database Management System)关系型数据库系统
常⻅的关系型数据库:
: 在⼤型项⽬中使⽤,例如:银⾏、电信等项⽬
: Web 项⽬中使⽤最⼴泛的关系型数据库
: 在微软的项⽬中使⽤
: 轻量级数据库,主要应⽤在移动平台
关系型数据库的核⼼要素:
数据⾏(⼀条记录)
数据列(字段)
数据表(数据⾏的集合)
数据库(数据表的集合,⼀个数据库中能够有 n 多个数据表)
关系型数据库核⼼要素示例
SQL:Structured Query Language(结构化查询语⾔),通过 SQL 语 ⾔可以对数据库进⾏操作
注意:
1. SQL 语⾔默认⽀持操作所有常⻅见的关系型数据库
2. 作为测试⼈员, 必须要掌握 SQL 的查询语句
(DQL:数据查询语⾔,⽤于对数据进⾏查询,例如:select)
3. 对于 MySQL ⽽⾔, 编写 SQL 语句时, 不区分字⺟的⼤⼩写
MySQL 是⼀个关系型数据库管理系统,⽬前属于 Oracle 旗下产品, ⽬ 前为⽌ MySQL 社区版是可以免费使⽤的
特点: 开源、免费、跨平台(Windows/macOS/Linux)、跨语⾔(Java/Python...)
说明: 由于数据库软件处于服务器中, 想要操作数据库, 就必须使⽤⼯具远程连 接数据库后, 进⾏操作
5.1、连接数据库操作步骤
说明: 将来在⼯作中, 想要远程连接数据库, 需要具备以下条件:
1. 数据库所在服务器的 IP 地址及数据库的端⼝号
2. 向相关⼈员获取数据库的账号和密码
3. 使⽤数据库连接⼯具, 远程连接数据库即可
注意: 远程连接需要注意⽹络连通性
数据类型: 对于填⼊的数据值本身进⾏控制, 保证数据准确性
整数: 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-0101 12:29:59'
1.1、整数⽆符号设置
约束: 对于整张数据表进⾏限制, 确保对应字段的所有数据符合设计要求
主键(primary key): 能唯⼀标识表中的每⼀条记录的属性组
⾮空(not null): 此字段不允许填写空值
唯⼀(unique): 此字段的值不允许重复
默认值(default): 当不填写此值时会使⽤默认值,如果填写时以填写为准
外键(foreign key): ⼀个表中的⼀个字段引⽤另⼀个表的主键
2.1、主键
主要用于保证数据表内没一条的顺序是固定的,不会由于删除或增加数据,而导致数据乱序
注意:
1. 一般的在一张数据表只需要有一个主键
2. 为了使用方便,一般会设置为自动递增并确是无符号
2.2、不为空
设置字段内数据必须有值,不能为空(NULL)
2.3、唯⼀
1、索引 -> 字段
2、选择索引类型为: unique(唯⼀)
要求当前字段内的所有数据不能重复
2.4、默认值
如果填写字段对应数据,则显示填写内容,如果不填写,则显示默认值您内容
注意:如果默认值内容为字符串,必须加引号(英文格式)
3.1、创建数据库
3.2、使⽤数据库
3.3、修改数据库
3.4、删除数据库和查看所有数据库
3.5、数据库备份
1. 应⽤场景
说明: 在测试⼯作中, 为了防⽌对数据库产⽣错误操作, 或产⽣垃圾数据, 都需要在操作前, 适当对数据库进⾏备份操作.
垃圾数据: 例如在⾃动化测试中, 对注册模块操作⽣成的所有数据, 属于典型的垃圾数据, 应该清理
2.备份⽅法
利⽤⼯具(Navicat) -> 备份步骤
1、数据库 -> 转储 SQL ⽂件 -> 结构+数据
2、⾃⾏选择存放位置
3、备份结束
3. 还原操作
1、数据库 -> 运⾏ SQL ⽂件
2、选择备份⽂件
3、还原结束
3.6、扩展: 使⽤命令备份数据库
注意: 命令是不需要连接到数据库以后执⾏的!(⾮ mysql> 模式)
1. mysql> 为 SQL 语句编写模式, ⾮ Linux 命令⾏模式
mysql -u 数据库用户名 -p 数据库密码
注意:mysql> 仅支持SQL语句
2. 命令备份与还原数据库操作
备份命令:mysqldum -u数据库用户名 -p 目标数据库名 > 备份文件名.sql
还原命令:mysql -u数据库用户名 -p 目标数据库名 < 备份文件名.sql
注意:需要根据提示显示数据库密码,执行数据库备份与还原操作
4.1、创建表
4.2、查看表
4.3、扩展: 判断表存在移除再创建
4.4、扩展: 通过 Navicat ⼯具获取创表语句的⽅法
4.5、查看表结构和删除表
5.1、增加数据
1. 增加⼀⾏数据
2. 增加多⾏数据
5.2、修改数据
语句作⽤对应
5.3、删除数据
5.4、扩展 1: 逻辑删除
逻辑删除: 对于重要的数据,不能轻易执⾏ delete 语句进⾏删除。因为⼀旦删 除,数据⽆法恢复,这 时可以进⾏逻辑删除。
1、给表添加字段,代表数据是否删除,⼀般起名 isdelete,0代表未删除,1代 表删除,默认值为0
2、当要删除某条数据时,只需要设置这条数据的 isdelete 字段为1
3、以后在查询数据时,只查询出 isdelete 为0的数据
1. 第⼀步
2. 第⼆和第三步
5.5、扩展 2: 其他删除数据的⽅法
与图形化⻚页⾯菜单的对应关系
6.1、基本查询
6.2、条件查询
1. ⽐较运算符&逻辑运算符
2. 模糊查询
3. 范围查询
4. 判断空
6.3、其他复杂查询
1. 排序
2. 聚合函数
3. 分组
4. 分⻚页查询
6.4、使⽤ Navicat ⼯具中的命令列
1.
2. 命令⾏基本操作步骤
7.1、内连接
7.2、左连接
7.3、右连接
7.4、存在左右连接的必要性
说明: 能够体现左右连接必要性的场景为: ⾄少为三张表进⾏连接查询
注意: 实际⼯作中, 最多也就三张表连接查询
7.5、连接查询的⼩结
前提:
1. 数据表只有⼀张
2. 数据表中⾄少有两个字段之间有某种联系
⽅式: 通过给表起别名的形式, 将原本只有⼀张的数据表变为两张, 然后通过对 应字段实现连接查询
8.1、查询河南省下所有市的信息
8.2、查询河南省下所有的市和区的信息
⼦查询: 在⼀个 select 语句中,嵌⼊了另外⼀个 select 语句,那么嵌⼊的 select 语句称之为⼦查询语句
作⽤: ⼦查询是辅助主查询的,要么充当[条件],要么充当[数据源]
9.1、⼦查询语句充当条件
9.2、⼦查询语句充当数据源
10.1、ER 模型
E 表示 entry,实体: 描述具有相同特征事物的抽象[数据表]
属性: 每个实体的具有的各种特征称为属性[数据(表内的字段)]
R 表示 relationship,联系: 实体之间存在各种关系,关系的类型包括包括⼀ 对⼀、⼀对多、多对多[表和表之间的联系]
10.2、外键
说明: 通过外部数据表的字段, 来控制当前数据表的数据内容变更, 以避免单⽅⾯移除数据, 导致关联表数据产⽣垃圾数据的⼀种⽅法
注意: 如果⼤量增加外键设置, 会严重影响除数据查询操作以外的其他操作(增/ 删/改)的操作效率, 因此在实际项⽬中很少会被采⽤, 但是在⾯试中容易被问到.
10.3、索引
说明: 可以⼤幅度提⾼查询语句的执⾏效率
注意: 如果⼤量增加索引设置, 会严重影响除数据查询操作以外的其他操作(增/ 删/改)的操作效率, 不⽅便过多添加.
验证索引效果案例实现步骤:
说明: 提供的示例⽂件可以使⽤在数据库中使⽤运⾏ SQL ⽂件⽅式导⼊!