测试基础篇-数据库3

142 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情

直接进入正题,数据库的查询语法包括单表查询,多表查询,分组查询,子查询,分组多表查询等,说到查询,首先就得了解查询的标准语法:select 字段1,字段2... from 表名
除此之外我们还可以对查询结果进行相应的处理,比如 给字段设置别名:select 字段1 (as) 别名,字段2... from 表名 ,这样查询到的结果中原字段名就会变成你设置的别名,还可以对字段进行去除重复值操作:select distinct 字段1,字段2... from 表名  ,给字段排序:select 字段1,字段2... from 表名 order by 字段 asc(升序)/desc(降序),显示查询结果的前n行:select 字段1,字段2... from 表名 limit n     
这里需要注意的就是!!!Limit 永远语句放在最后
显示从m+1开始的n行:select 字段1,字段2... from 表名 limit m,n

条件查询:

Select 字段1,字段2... from 表名 where 字段名=值

大于,小于,大于等于>=,小于等于<=,不等于 != <>

select * from 表名 where 字段名 like "a%";  ----查询字段以a开头的所有信息

select * from 表名 where 字段名 like "a_";  //下划线表示匹配一个字符

%a%  ---表示包含a

select * from 表名 where 字段1 and 字段2;  ---和

select * from 表名 where 字段1 or 字段2;  ---或

select * from 表名 where not(字段名=值);  ---取反

select * from 表名 where 字段名 not like "a%" ; ---取反

区间:

where 字段名 (not) between 值1 and 值2

集合

where 字段名 (not) in (值1,值2)

eg: select * from emp where(deptno,job) in ((30,"salesman"),(20,"clerk")); 分组查询:

普通函数:if(),ifnull(),动词(对象),current_date,length(),random(),datediff(日期1,日期2)日期减法,year(日期)取日期年份

聚合函数:count(),max(),min(),avg(),sum()       !!!只能写在select里面!!!

count():求个数

max():求最大值

min():求最小值

avg():求平均值,只能针对于数字

sum():求和,只能针对于数字且不计算空值

一次筛选和二次筛选:

where是做一次筛选,是对源表数据进行过滤

having是做二次筛选,是对分组后的结果进行过滤

分组查询语句:select 字段,聚合函数 from 表名 group by 字段;

 

多表查询:

等值连接:select 表名.字段名 from 表1 (别名),表2 (别名) where 表1.字段1=表2.字段2 and 条件

内连接: select 表名.字段名 from 表1 (别名) (inner) join 表2  on 表1.字段1=表2.字段2 join 表3 on ... where 条件

自身表连接:把自身表看作两个表即可

左右连接:left join(主表在左) 和 right join(主表在右)      

       区别:1.关键字不一样

                2.left join 主表在左,right join 主表在右  

 

多表分组查询

子查询:多个数据时要用in

eg、select * from emp where (deptno,hireadte) in (select deptno,min(hireadte)

from emp group by deptn  

insert into 表名 子查询语句(不要values)

复制一张表,本质是创建一张表 ,表结构和表内容与原表完全相同

create table 表名 as select * from 原表

复制一张表,只和原表结构相同,但没有数据

create table 表名 as select * from 原表 where 1=2

查询语句1 union  查询语句2  ---将两个查询结果上下叠加起来(重复的查询结果会去掉,不去掉用union all)

视图: view,把多个实体表的数据拼接起来作为一个虚表保存

create view 视图名 as 查询语句