一.查询多个字段
1.select字段1,字段2,字段3……from表名;
select*from表名;
2.设置别名
select 字段1 [as别名1],字段2 [as别名2]……from表名;
3,.去除重复记录
select distinct字段列表 from表名;
例如:
查询指定字段name workno sge返回
select name workno sge from emp;
查询所有字段返回
select id,name gender,age idcard,workaddress,…… fromemp;
查询所有员工的工作地址,起别名
select workaddress as ‘工作地址’ from emp;
select workaddress ‘工作地址’ from emp;
查询公司员工的上班地址(不要重复)
select distinct workaddress‘工作地址’ from emp;
二,条件查询
1.select字段列表 from 条件 where 条件列表;
between……and 在某个范围之内(含最小,最大值)
in(……)在in之后的列表中的值,多选一
like 占位符 模糊匹配(_匹配单个字符,%匹配任意个字符)
is null 是null
逻辑运算符
and或&& (并且(多个条件同时成立))
or或II (或者(多个条件任意一个成立))
not或! (非,不是)
查询年龄等于88的员工
select*from emp where age=88;
三.聚合函数(将一列数据作为一个整体,进行纵向计算)
select聚合函数(字段列标) from表名;
统计该企业年龄员工的平均年龄
select avg(age)from emp;
四,分组查询
select 字段列表 from表名[where 条件] group by分组字段名 [having分组后过滤条件];
group by having分组查询语句
where与having区别
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤
判断条件不同:where不能对聚合函数进行判断;而having可以
注意执行顺序:where>聚合函数>havig
五.排序查询
select 字段列标 from表名 order by 字段1 排序方式1,字段2 排序方式2;
orser by 排序查询
asc升序(默认值)
desc降序
根据年龄对公司的员工进行排序(默认升序)
select*from emp order by age asc;
根据入职时间,对员工进行降序排序
select*from emp order by entrydate desc;
六,分页查询
select字段列表 from 表明 limit 起始索引,查询记录数;
(起始索引从0开始,如果查询的是第一页数据,起始索引可以省略,直接简写为limit10)
1,查询第一页员工数据,每页展示10条记录
select*from emp limit 0,10;
2,查询第二页员工数据,每页展示10条记录((页码-1)*页展示记录数)
select*from emp limit10,10;
案例
1,查询年龄为20,21,22,23岁的女性员工信息
select*from emp where gender= ‘女’and age in(20,21,22)
七,多表关系
一对多(一个部门对应多个员工,一个员工对应一个部门)
在多的一方建立主键
多对多(一个学生可以选修多个课程,一门课程也可以供多个学生选)
三张表中间可以有两主键
一对一
八,多表查询
内连接
外连接
九,连接查询
1,内连接查询语法
隐式内连接 select 字段列表 from 表1,表2 where 条件……;
显式内连接 select 字段列表 from 表1[inner ] join 表2 on ;连接条件……;
连接表语句(inner joinn on)