今天主要内容
-
数据库相关介绍
-
数据库(软件)常见类型
-
Navicat 工具基本使用
-
常见的数据类型和约束(重点)
-
SQL 语句的编写(表和数据)
一. 数据库是什么?
-
为什么学习数据库
-
软件中产生的所有数据, 最终都要存储于数据库当中
-
测试人员如果想要进行数据查询/数据校验, 就必须掌握对数据库的基本操作
![image-20200526093846799](Linux 和数据库day03随堂笔记.assets/image-20200526093846799.png)
-
数据库是什么?
-
定义: 用于存储数据的软件
-
特点: 表是数据存储的核心体现
二. 数据库常见分类
-
关系型数据库(重点)
-
RDMS:(Relational Database Management System)关系型数据库系统
-
特征: 以数据表的形式存储数据, 便于数据查询
-
常见的数据库代表
Oracle:在大型项目中使用,例如:银行、电信等项目
MySQL:Web 项目中使用最广泛的关系型数据库
Microsoft SQL Server:在微软的项目中使用
SQLite:轻量级数据库,主要应用在移动平台
-
关系型数据库的核心要素
数据行(一条记录)
数据列(字段)
数据表(数据行的集合)
数据库(数据表的集合,一个数据库中能够有 n 多个数据表)
-
非关系型数据库
-
不以数据表的形式存储数据的数据库类型
三. SQL 介绍
SQL:Structured Query Language(结构化查询语言),通过SQL语言可以对数据库进行操作
特点: 所有主流的关系型数据库, 都支持使用SQL语句进行数据查询 !
注意: 虽然 SQL 语言分支很多, 但对于测试人员而言, 我们重点掌握查询操作即可!
DQL:数据查询语言,用于对数据进行查询,例如:select
扩展: 在 MySQL 中,默认对 SQL 语法不区分大小写
四. MySQL 介绍
来源: 目前属于 Oracle 旗下产品, 目前只有社区版免费
特点: 开源, 支持多平台(Linux/Windows/macOS), 支持多语言(Java/C/Python...)
注意: 熟悉 SQL 和熟悉 MySQL 不是一回事儿(熟悉 SQL : 熟悉 SQL 语言; 熟悉 MySQL: 用过 MySQL 数据库)
五. 数据库的远程连接(重点)
注意: 实际工作中, 数据库是安装在服务器当中的, 如果要直连数据库进行数据校验, 就必须远程连接
连接步骤
-
获取两个信息: 服务器的 IP 地址; 数据库的账号和密码(找相关人员询问)
-
在自己电脑上使用数据库连接工具(例如: Navicat), 建立连接, 远程连接数据库
-
连接过程中需要确认自己电脑和服务器是否能够正常通信(ping 命令)
注意事项:
-
课上使用的 MySQL 的账号密码虽然是 root 和 123456, 但是和 CentOS 系统的 root 用户没有关系
课程注意:
-
如果第一次连接成功, 再次使用时, 提示 IP 地址问题, 则需要重新获取虚拟机系统的 IP 地址
-
使用过程中, 要确保虚拟机系统不会待机或进入休眠状态, 修改方法如下:
点击电源 -> 点击设置
![image-20200526105358743](Linux 和数据库day03随堂笔记.assets/image-20200526105358743.png)
修改 power -> 空白屏幕(从不)
![image-20200526105428493](Linux 和数据库day03随堂笔记.assets/image-20200526105428493.png)
六. Navicat 基本使用
数据库连接操作
常规操作
![image-20200526111038405](Linux 和数据库day03随堂笔记.assets/image-20200526111038405.png)
注意: 连接只需要建立一次, 后续使用中, 可以通过'编辑连接', 调整连接选项设置即可!
数据库操作
注意: 默认的数据库不要随意操作
![image-20200526111450646](Linux 和数据库day03随堂笔记.assets/image-20200526111450646.png)
连接上鼠标右键 -> 新建数据库
![image-20200526120451801](Linux 和数据库day03随堂笔记.assets/image-20200526120451801.png)
如图设置字符集和排序规则
![image-20200526120610892](Linux 和数据库day03随堂笔记.assets/image-20200526120610892.png)
数据库操作注意事项
![image-20200526120629798](Linux 和数据库day03随堂笔记.assets/image-20200526120629798.png)
编辑数据库
![image-20200526120645945](Linux 和数据库day03随堂笔记.assets/image-20200526120645945.png)
数据库修改注意事项
![image-20200526120810751](Linux 和数据库day03随堂笔记.assets/image-20200526120810751.png)
数据表操作
表 -> 鼠标右键 -> 新建表
![image-20200526120946092](Linux 和数据库day03随堂笔记.assets/image-20200526120946092.png)
添加一个字段 -> 填写表名 -> 保存
![image-20200526121021962](Linux 和数据库day03随堂笔记.assets/image-20200526121021962.png)
再次添加或修改字段
![image-20200526121043661](Linux 和数据库day03随堂笔记.assets/image-20200526121043661.png)
添加或修改字段注意事项
![image-20200526121118602](Linux 和数据库day03随堂笔记.assets/image-20200526121118602.png)
数据操作
打开表
![image-20200526121134187](Linux 和数据库day03随堂笔记.assets/image-20200526121134187.png)
数据修改注意事项
![image-20200526121149757](Linux 和数据库day03随堂笔记.assets/image-20200526121149757.png)
数据常规操作
![image-20200526121203089](Linux 和数据库day03随堂笔记.assets/image-20200526121203089.png)
删除数据注意事项
![image-20200526121214016](Linux 和数据库day03随堂笔记.assets/image-20200526121214016.png)
清空表 : 清理数据保留字段
![image-20200526121234628](Linux 和数据库day03随堂笔记.assets/image-20200526121234628.png)
数据修改后, 常用刷新
![image-20200526121257437](Linux 和数据库day03随堂笔记.assets/image-20200526121257437.png)
七. 数据库的备份与还原(Navicat)
测试过程中会产生垃圾数据, 测试结束时一般都需要还原原有数据, 因此需要在测试执行前先备份, 测试结束后执行还原
注意: 如果是测试工作中的备份与还原, 以下步骤对同一个数据库进行操作即可!
备份操作
要备份的数据库上鼠标右键 -> 转储SQL文件
![image-20200526120300832](Linux 和数据库day03随堂笔记.assets/image-20200526120300832.png)
选择保存位置
![image-20200526120311496](Linux 和数据库day03随堂笔记.assets/image-20200526120311496.png)
提示成功关闭即可, 备份完成
![image-20200526120329665](Linux 和数据库day03随堂笔记.assets/image-20200526120329665.png)
生成的文件注意事项
![image-20200526122826024](Linux 和数据库day03随堂笔记.assets/image-20200526122826024.png)
还原操作
-
新建一个与备份数据库设置相同的数据库
![image-20200526115826227](Linux 和数据库day03随堂笔记.assets/image-20200526115826227.png)
-
运行上一步保存的SQL文件即可
![image-20200526115841855](Linux 和数据库day03随堂笔记.assets/image-20200526115841855.png)
找到之前报错的SQL文件
![image-20200526115908144](Linux 和数据库day03随堂笔记.assets/image-20200526115908144.png)
确认路径后, 点击开始
![image-20200526115929808](Linux 和数据库day03随堂笔记.assets/image-20200526115929808.png)
如图提示成功, 关闭即可
![image-20200526115947768](Linux 和数据库day03随堂笔记.assets/image-20200526115947768.png)
进入新建数据库中, 刷新数据, 确认还原成功即可
![image-20200526120028854](Linux 和数据库day03随堂笔记.assets/image-20200526120028854.png)
八. 数据类型与约束(重点)
作用: 为了更加准确存储数据, 保证数据的有效性, 需要结合数据类型和约束来限制数据的存储
数据类型
整数:int,有符号范围(-2147483648 ~2147483647),无符号范围(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'
整数类型设置
![image-20200526145709622](Linux 和数据库day03随堂笔记.assets/image-20200526145709622.png)
约束
主键(primary key):物理上存储的顺序
非空(not null):此字段不允许填写空值
惟一(unique):此字段的值不允许重复
默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准
外键(foreign key):维护两个表之间的关联关系(现阶段先不讲解, 后边再进行扩展)
主键设置
![image-20200526145728520](Linux 和数据库day03随堂笔记.assets/image-20200526145728520.png)
主键的特点
![image-20200526145744741](Linux 和数据库day03随堂笔记.assets/image-20200526145744741.png)
不为空设置
![image-20200526145801237](Linux 和数据库day03随堂笔记.assets/image-20200526145801237.png)
唯一设置 步骤1: 索引
![image-20200526145831236](Linux 和数据库day03随堂笔记.assets/image-20200526145831236.png)
唯一设置 步骤2: 字段 -> 选择目标字段
![image-20200526145909448](Linux 和数据库day03随堂笔记.assets/image-20200526145909448.png)
唯一设置 步骤3: 索引类型 -> UNIQUE
![image-20200526145926683](Linux 和数据库day03随堂笔记.assets/image-20200526145926683.png)
唯一设置 步骤4: 验证
![image-20200526150001501](Linux 和数据库day03随堂笔记.assets/image-20200526150001501.png)
默认值设置注意事项
![image-20200526150024688](Linux 和数据库day03随堂笔记.assets/image-20200526150024688.png)
九. SQL 语言
注意: SQL 语言重点是查询语句, 因此对表和数据的操作语句仅做了解, 主要是为了熟悉SQL语句的编写习惯
查询窗口的使用
新建查询窗口
![image-20200526170753175](Linux 和数据库day03随堂笔记.assets/image-20200526170753175.png)
查询窗口显示
![image-20200526170807971](Linux 和数据库day03随堂笔记.assets/image-20200526170807971.png)
SQL 语句运行方法1: 直接运行
![image-20200526170831101](Linux 和数据库day03随堂笔记.assets/image-20200526170831101.png)
SQL 语句运行方法2: 选中再运行
![image-20200526170851439](Linux 和数据库day03随堂笔记.assets/image-20200526170851439.png)
SQL 语句基本含义
![image-20200526170908532](Linux 和数据库day03随堂笔记.assets/image-20200526170908532.png)
保存查询语句
![image-20200526170920645](Linux 和数据库day03随堂笔记.assets/image-20200526170920645.png)
显示查询语句文件保存位置
![image-20200526170940483](Linux 和数据库day03随堂笔记.assets/image-20200526170940483.png)
注释的使用: 单行注释和多行注释
![image-20200526171005663](Linux 和数据库day03随堂笔记.assets/image-20200526171005663.png)
数据表
-- 创表语句
-- 需求0: 创建商品表, 包含商品名称和价格
-- create table 表名(
-- 字段1 类型,
-- 字段2 类型
-- );
-- 优化
drop table if exists goods;
-- drop table : 删表 if exists : 如果存在
-- 如果表存在, 执行删除操作
create table goods(
goodsName varchar(20),
price decimal(4, 2)
);
表已存在提示
![image-20200526171122659](Linux 和数据库day03随堂笔记.assets/image-20200526171122659.png)
需求1: 创建商品表
-- 需求1: 创建商品表, 字段包括 id(主键), 商品名称, 价格, 数量, 公司,备注, 并添加商品
drop table if exists goods;
create table goods(
-- unsigned : 无符号
-- primary key : 主键(不为空)
-- auto_increment : 自动递增
-- 直接替换字段名使用皆可
id int unsigned primary key auto_increment,
goodsName varchar(20),
price decimal(6,2),
num int,
company varchar(20),
remark varchar(30)
);
数据
增加数据(插入数据)
需求1 添加商品
-- 需求1 添加商品
-- 查询一次(方便观察表中字段)
select * from goods;
-- 添加1条数据
-- 主键列是自动增长,插入时需要占位,通常使用0或者 default 或者 null 来占位,插入成功后以实际数据为准
-- 语法 insert into 表名 values(...)
insert into goods values
(0, '战神笔记本', 6000.00, 100, '某东', '战神在手, 天下我有!');
-- 注意: 插入的数据个数与字段数必须匹配, 数据类型也需要对应
-- 插入多条数据
insert into goods values
(0, '小新笔记本', 5000.00, 100, '某东', '小新小新, 蜡笔小新!'),
(0, '外星人笔记本', 9999.00, 100, '某宝', '外星人上位, 战神渣渣!');
-- 注意: 插入多条数据, 每条数据使用逗点分隔即可
-- 扩展: 插入指定字段数据(了解)
-- insert into 表名(字段名) values(字段对应值)
insert into goods(goodsName) values('惠普游侠5');
修改数据
需求2: 修改商品数据1条
-- 需求2: 修改商品数据1条, 删除1条数据
-- 修改
-- 先查询所有数据, 便于观察数据内容
select * from goods;
-- 补充惠普电脑的数据
update goods set price=4500.00,num=50,company='并夕夕' where id=4;
-- 注意: 修改数据时, 为保证修改准确性, 务必要给出限定条件(where)
update goods set price=4500.00,num=50,company='并夕夕';
修改数据不指定条件时的效果
![image-20200526170213144](Linux 和数据库day03随堂笔记.assets/image-20200526170213144.png)