分享好友 最新资讯首页 最新资讯分类 切换频道
软件测试 —— 数据库(MySQL、SQL语句、Navicat)
2024-11-07 23:16

目录

软件测试 —— 数据库(MySQL、SQL语句、Navicat)

一、数据库基础知识

1、数据库介绍

2、数据库的分类

3、SQL 语⾔介绍

4、MySQL 数据库介绍 

5、数据库连接⼯具 Navicat 

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.4、扩展: 通过 Navicat ⼯具获取创表语句的⽅法​编辑  

4.5、查看表结构和删除表

5、数据操作

5.1、增加数据

5.2、修改数据

5.3、删除数据

5.4、扩展 1: 逻辑删除

5.5、扩展 2: 其他删除数据的⽅法

6、查询语句 

6.1、基本查询

6.2、条件查询

6.3、其他复杂查询

6.4、使⽤ Navicat ⼯具中的命令列

​编辑

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 多个数据表

关系型数据库核⼼要素示例

 SQLStructured 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 ⽂件⽅式导⼊! 

最新文章
AI智能写作助手:一站式解决内容创作、文章润色与高效写作的全面工具
在信息爆炸的时代内容创作已经成为企业、媒体和个人展现自我、传递价值的不可或缺手。面对海量的信息与日益增强的内容品质需求高
你的站点抗压么?推荐一款超方便的开源压测工具
这里是 HelloGitHub 推出的《讲解开源项目》系列,本期介绍一款标星 17.7k 纯 Go 语言实现的 HTTP(S) 压测工具——vegetaVegeta
【系统架构设计】计算机网络
OSI/RM 结构模型 1977年,国际标准化组织为适应网络标准化发展的需求,制定了开放系统互联参考模型(Open System Interconnectio
全世界规模最大战争排名,第一名居然是清朝时期!
自打人类走上进化这条路,就想着法儿想要证明【一伙人就该被另一伙人支配】。古罗马角斗士时代一方有多大势力,就看他有多少人的
python tk随机内容生成器
MyRandom ran=new MyRandom();System.out.println(ran.nextString(1));System.out.println(ran.nextString(50, OnlyNum));System
ai自动写文章在线 在线写文章自动生成器
身为文案工作者,我深感写作之重要且充满挑战。如今,随着人工智能(AI)写作平台的出现,我的写作历程出现了巨大变革。在此,很
AI写系统性综述ChatGPT还远远不够未来百年能否实现
在科学研究的浩瀚海洋中,科研人员时常面临一个棘手的问题:如何有效整合和理解海量的科学文献。尽管网络的普及极大地丰富了文献
全球AI半导体技术排名:韩国强势第三,未来发展值得关注
近年来,人工智能(AI)技术的迅猛发展促进了相关硬件的创新,尤其是AI半导体的需求日益上升。根据最新的研究报告和韩国媒体的报
MVSO影视程序源码 影视自动采集_魔改超强SEO_自定义苹果cms资源站接口
?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]/
多地楼市政策不断优化 房地产市场企稳态势渐明
原标题:多地楼市政策不断优化 房地产市场企稳态势渐明来源:人民网近日,海南省住房公积金管理局发布《关于调整优化住房公积金