- 【知识回顾】
工具:vnc(共享屏幕)
{连接的ip地址:192.168.0.185}
- {一个合格的软件测试工程师需要具备数据库的基本技能有?}
->熟悉当前主流的数据库:mysql、oracle,熟练使用sql语句对数据进行增删改查
-
- 数据库的作用:存储数据、管理数据(增、删、改、查)
- 数据库的特点:数据要做到完整性、一致性、及时性
- 数据库在测试工作中的基本应用:
- 验证我们的测试结果(预期结果、实际结果:在数据库所查的数据)
- 为测试准备测试数据(自动化测试:参数化)
- {mysql数据库的基本操作流程?} 重点
{先有数据库,再有表,最后才是数据}
步骤 | 含义 |
安装 | 安装mysql数据库产品(省略),且在安装已注册一个用户:root,密码:123456 |
登录 | 与数据库服务器建立连接(使用root身份来登录) |
建库 | 创建一个新的数据库(未开启) 格式1:create database 数据库名; 格式2:create database 数据库名 charset=utf8; |
打开库 | 打开所创建的数据库(开启),使用数据库、选择数据库、进入数据 格式:use 数据库名; |
建表 | 在数据库中创建一张新的空表(数据库中的数据借助表格来存储的) 格式:create table 表名 (列名1 数据类型(长度),列名2 数据类型(长度),...); 组成:表名+表结构 空表的结构:列(字段) +必须分配一个合适的数据类型+也可以设置适当长度 create table class(编号 int(2),姓名 varchar(3)); |
插入数据 | 往表中来插入(添加)数据 格式:insert into 表名 values(真实数据); |
修改数据 | 修改表中的数据 格式:update 表名 set 列名=’新数据’; |
查询数据 | 从表中的查询数据 格式:select * from 表名; |
删除数据 | 从表中删除数据 格式:delete from 表名; |
3、{使用navicat工具如何与mysql数据库进行交互?}
Navicat: 提供一个友好图形化界面,提供代码语法高亮(单词有提示、单词有颜色)
交互1:借助图形化界面进行交互(借助鼠标、键盘来完成数据库的操作)
交互2:通过编写sql语句(脚本)进行交互(难点、重点)
{练习}
格式:create database 数据库名 charset=utf8;
1)创建一个新的数据库,名称为tengxun ,编码为utf8
打开tengxun数据库
创建一张空表,表名为class
结构为(cid int(2) , cname varchar(5))
2)分别创建三个数据库:test1 test2 test3
然后在每个数据库中分别创建一张相同表
表名为:student
表结构:(sid int(3) , sname varchar(10))
思路:先创建好三个数据库,分别打开某一个数据库,再创建表
常见报错的信息:
- exists:存在
原因:所创建的对象已经存在(数据库、表)
2)No database selected
原因:创建表之前,没有打开、选择数据库
- 语法错误
原因:单词写错、符号中英文混合了
定位语法报错:在错误信息中,找一个单词:near
中英文的识别快捷方式:
中文输入法,占位比较大
英文输入法,占位紧凑
4、{数据库常用的三大数据类型?}
-
- 数字类型
- 整数 int
- 小数(浮点数) float
- 数字类型
特点:有长度,可以设置长度,单位位数
比如: age int(3) -->最大值999
salary float(5,2) -->最大值:999.99
-
- 字符类型 char varchar
区别:数据固定使用char
数据不固定使用varchar
比如: sex char(1)
address varchar(50)
name varchar(10)
特点:有长度,可以设置长度,单位:个数
-
- 日期时间类型 date time datetime
特点:没有长度,其数据有固定格式
日期格式: 年-月-日
时间格式: 时:分:秒
日期时间格式:年-月-日 时:分:秒
二、【每日单词】
单词 | 中文含义 | 中文发音 |
database | 数据库 | 德塔贝斯 |
create | 创建、新建 | 科雷特 |
charset | 字符集 | 恰赛特 |
utf8 | 万国码 GBK(简体中文) | Utf8 |
show | 显示、查看 | 瘦 |
use | 使用、打开、进入 | 游丝 |
drop | 删除 (在工作中我们是没有权限去执行删除) | 叫破 |
table | 表 | 忒波 |
int | 整数 | 因特 |
float | 小数、浮点数 | 佛洛特 |
date | 日期,没有长度,有的是格式(年-月-日) | 德特 |
char | 固定长度字符 | 恰 |
varchar | 可变长度字符 | 瓦恰 |
desc | 查看表的结构 describle 语法格式: desc 表名; | desc |
alter | 修改 操作1:修改表的相关属性 表的属性: 表有名字 表中有列 列有数据类型及长度 | 奥特尔 |
rename | 改表名 alter table 表名 rename to 新表名; | 雷馁目 |
change | 改列名 alter table 表名 change 旧列名 新列名 数据类型 ; | 劝局 |
modify | 改数据类型及长度 alter table 表名 modify 列名 新数据类型(长度); | 毛迪怀 |
add | 往表中添加列 alter table 表名 add 新列名 数据类型(长度); | 艾德 |
insert | 插入 | 英射特 |
into | 往 ,且后面一定接表名 | 英吐 |
values | 数据、价值、数值,后面接真实的数据 | 歪流斯 |
重点单词:desc insert into values
重点语法:插入数据
格式:insert into 表名 values(真实数据);
三、【新知识点】
1、{对表的操作又有哪些?}
增、删、改、查
【增】在数据库中创建一个张新的表
前提:先进库(开启数据库)
单词:create table
过程:
- 需要给表取一个合适的名称
- 还需给表设计空表的结构(列名 数据类型(长度))
语法格式:
Create table 表名
(列名1 数据类型(长度) , 列名2 数据类型(长度) , 列名3 数据类型(长度),...)
说明:
- 表名和列名是我们自定义的(见名知意),且在实际项目名字使用字母
数据库名:test
表名:user--》用户信息表
goods---》商品信息表
列名: uid --》用户编号
name --》用户姓名
- 数据类型是选择合适的类型来声明某个列中的数据必须是该类型的数据
长度是用来限制该类型的数据的范围,且需要用小括号括起来
- 长度有默认值的
- int有默认值
- float也有默认值
- char也有默认值
- varchar没有默认值,所以一定设置长度
- date没有长度,不需要设置长度
4、列名与数据类型一定要隔开(空格),数据类型与长度不要
5、列与列之间用逗号隔开
6、每一条完整的语句记得加上一个结束符(英文的分号)
【查】
含义1:查看某个数据库中有哪些表?
语法格式:show tables; show databases;
含义2:查看表的结构 重点
语法格式:desc 表名;
【改】了解
含义:修改表的相关属性(表名、列名、数据类型及长度)
表现1:修改表名
表现2:修改表中的列名
表现3:修改表中列的数据类型及长度
表现4:往表中添加新的列
表现5:删除表中多余的列
过程:分为2步
第一步:首先需要指定修改的是哪一张表
固定格式: alter table 表名
第二步:然后借助关键字来明确修改的是那一个属性
关键字: 属性 作用
rename --》 表名 改表名
格式:alter table 旧表名 rename 新表名;
示例:把mayun表改名为yunma
change --》 列名 改列名
格式:alter table 表名 change 旧列名 新列名 数据类型(长度);
示例1:
把yunma表中mid列改名mno
代码:
alter table yunma change mid mno int(3);
示例2:
把yunma表中mno列的数据类型改为int(5)
代码:
alter table yunma change mno mno int(5)
modify --》 数据类型 改数据类型
格式:alter table 表名 modify 列名 新数据类型(长度);
示例:
把yunma表中mno列的数据类型改为char(2)
代码:
alter table yunma modify mno char(2);
add --》 列名 往表中添加新列
格式:alter table 表名 add 新列名 数据类型(长度) ,add 新列名 数据类型(长度);
示例:往yunma表中添加一个新列,列名:sal 数据类型:float(7,2)
drop --》 列名 删除表中的列名
格式:alter table 表名 drop 列名1,drop 列名2;
【删】
含义:删除表
格式:drop table 表名;
删除:
drop table 表名;
delete from 表名;
turncate from 表名;
desc 表名;
【逻辑思维题】
1、10年前你才15岁,请问10年之后你多少岁?
--》35
2、3头牛3天吃了3苗地的草,请问9头牛9天可以吃多少苗地的草?
--》27 81
3头牛1天吃1亩
3头牛9天吃9亩
3、有一个池塘有无穷无尽的水,只有2个水壶,分别是5升和6升且没有刻度,现在我们只想要3升水,那么请问你是如何做到的?(任意一个水壶刚好装入3升水)
假设5升水壶编号:A 6升水壶编号:B
A B
0 0 初始化
5 0
0 5
5 5
4 6
4 0
0 4
5 4
3 6
2、{对表中数据进行增、删、改、查操作} ★★★
【增】
含义:往表中插入数据
单词: insert into values
特点: 每次执行insert语句,都是一行一行的往表中添加数据
语法:
insert into 表名 values
(‘列1的数据’,’列2 的数据’,’列3的数据’);
说明1:指定表名,插入数据首先需要声明是往哪一张表中插入数据
说明2:真实数据的要求1:一一对应
表现1:数量上要一致:有几个列,插入几个数据
表现2:顺序上也要一致,不可以颠倒顺序
真实数据的要求2:
每个数据需要用一对英文的引号括起来,其中数字类型不要
每个数据之间需要用逗号隔开
示例:
往mahuateng表中插入以下数据
(1 , ’男’,5555)
格式: insert into 表名 values
(‘列1的数据’,’列2 的数据’,’列3的数据’);
练习:
在tengxun数据库中创建一张表:dianshi
表结构:(did int,dname varchar(5), hiredate date)
往dianshi表插入以下2行数据:
(1,‘james’,‘1987-1-3’)
(2,‘wade’,‘1984-3-5’)