一、为什么要学数据库?
测试工程师的目的是找出软件的不足,并告诉开发工程师,出现问题的环境,操作步骤和输入输出的数据。而优秀的测试工程师,当测出问题后,还可以告诉开发团队,问题的原因和解决方案。
这就是要求测试工程师除了会测试,还需要知道开发相关的知识,其中非常重要的就是数据库,因为绝大多数的软件都跟数据紧密相关,比如微博、论坛、新闻、商城等,这些软件都在不停的操作数据,而它们的数据大部分都是存储在数据库中,开发人员的一大部分工作就是在搬迁数据:把数据库中的数据显示到软件中;把用户输入的数据保存到数据库中。
测试工程师在测试软件的过程中,不仅需要在界面上操作,还需要检查数据库中的数据是否显示正确。从而在软件出现问题时,能够定位问题单原因。
比如测试登录功能,在输入了注册信息后,提示注册成功,但是使用刚才注册的信息登录不成功。这时需要检查数据库中是否保存了正确的注册信息,如果数据库中没有保存数据,那么使用刚才注册的账号肯定登录不了,这样就能定位问题:注册时,没有把数据存储起来。
1.概念
数据库的作用,把数据以表的形式存储起来,方便查询
2.RDBMS
关系型数据库系统
核心是以二维表存储数据
行:一条记录,一个事物的信息
列:字段,一个事物的某一属性
一个表中的所有行为是一类事物的集合
一个数据库由很多表组成
二、MYSQL简介
1.点击查看MYSQL网站 https://dev.mysql.com/
2.MYSQL是一个关系型数据库管理系统,由瑞典MYSQL AB公司开发,后来被sun公司收购,Sun公司后来又被Oracle公安收购,目前属于Oracle旗下产品。
3.SQL
结构化查询语言,用于关系型数据库
不区分大小写,select,SELECT
重点是查询
4.MYSQL
由瑞典公司开发,被卖给sun公司,sun公司被卖给Oracle
开源、免费、支持多种平台
5.Navicat操作
连接数据库 用户名 密码 端口号 ip
创建数据库
创建表 添加字段
设计表
增加、修改、删除数据
查找字符范围 help 字符类型
在键后面点一下就会添加钥匙(主键)
6.数据类型
1.整数:int,有符号范围(-2147483648 ~2147483648),无符号范围(0~4294967295)
2.小数:decimal,如decimal(5,2)表示共存5位数,小数占两位,整数占3位
3.字符串:varchar,范围(0~65533),如varchar(3)表示最多存3个字符,一个中文或一个英文或一个字母都占一个字符
主键:int类型、无符号、自动递增,唯一的标识一条记录
7.Navicat 将字段设置默认值:
8.数据库的备份和删除
备份步骤:右键单击数据库-->选择存储文件-->结构和数据-->保存位置-->保存
找回(提前备份):删除文件-->再重新点击数据库运行文件-->选择备份文件位置-->刷新
三、.SQL语言
- 数据表操作:创建,删除
- 数据库操作:增加,删除,修改,简单查询
- 数据操作:查询
1.创建表
create table 表名(
字段名 类型 约束,
字段名 类型 约束
......
)
例1创建表
例2:
例3:
2.删除表
3.数据操作-增删改查
1) 简单查询
select * from 表名
2) 添加数据
添加一行数据:所有字段设置值,值得顺序与表中字段的顺序对应
说明:主键列是自动增长,插入时需要占位,通常使用0或者default或者null来占位,插入成功后一实际数据为准
insert into 表名 values......
增加数据例子
结果:
3) 修改数据
格式:update 表名 set 列1=值1,列2=值2....where 条件
例1:
姓名这一列都改为妲己
update stud set name = '妲己'
例2:
修改指定的值(加where 主键)
update stud set name='张飞' where id =9
修改多个
update stud set name ='张飞', age=66 where id =9
用逗号隔开就好
4) 删除数据
delete from 表名 条件
例1:
delete from stud where id =8
知识回顾
5) 逻辑删除
1)设计表,给表添加一个字段 isdelete,1代表删除,0表示没有删除
2)把所有的数据isdelete都改为0
3)要删除某一条数据时,更新他的isdelete为1
4)当要查询数据时,只要查询isdelete为0的数据
例:
update stud set isdelete=1 where id =9
6)增加列
alter table stud add hello int
改列名(改表名一样适用):select name as 姓名, age as 年龄 from stud
去重:distinct 例子:select distinct age from stud
两列去重: select distinct age,class from stud
例:
4.条件
5.逻辑运算符 and or not
6.模糊查询
7.范围查询
小值在前面
8.空判断
空字符串和null是不一样的
空字符串:card= ’ ’ 空:card=null
9.排序
10.聚合函数
11.分组
按照两个字段分组
查询4-7条数据:
Select * from stud limit (4-1),(7-4+1)
12.连接查询
13.等值连接