JavaWed-7

查询和联系(重点)---单表

1.基本查询

代码:

# 查询某个字段的名称
select name,entrydate
from tb_emp;
# 查询所有
select *
from tb_emp;
#查询并且取别名,as可省
select name as '姓名',entrydate as '入职日期'
from tb_emp;
#查询员工职位,且去重
select distinct job
from tb_emp;

2.条件查询

代码:

# 查询 姓名 为 常遇春 的员工
select  *
from tb_emp
where name = '常遇春';
# 查询id小于等于5 的员工信息
select *
from tb_emp
where id <=5;
#查询 没有分配职位的员工
select *
from tb_emp
where job is null ;
# 查询有职位的员工
select *
from tb_emp
where job is not null ;
#查询 密码不等于123456 的员工
select *
from tb_emp
where password !='123456';
# 查询入职日期在‘2000-01-01’(包含)到‘2010-01-01’(包含) 之间的员工信息
select *
from tb_emp
# 还可以用 where entrydate >= '2000-01-01' and entrydate <= '2010-01-01';
where entrydate between '2000-01-01' and '2010-01-01';
# 查询入职日期在‘2000-01-01’(包含)到‘2010-01-01’(包含) 之间的且性别为女的员工信息
select *
from tb_emp
where entrydate between '2000-01-01' and '2010-01-01' and gender = 2;
# 查询 职位是2(讲师),3(学工主任),4(教研主管)的信息
select *
from tb_emp
#  也可以用这种方法   where job =3 or job = 2 or job =4;
where job in (2,3,4);

# 查询姓名为两个字的员工,匹配要用到Like
select *
from tb_emp
where name like '__';
# 查询姓张的员工
select *
from tb_emp
where name like '张%'

3.分组查询之聚合函数

代码

# 统计员工数量
# a:字段的方式
select count(name) as '员工人数'
from tb_emp;
# b:常量的形式 count(0) 的形式,数字为多少不要紧
select count(1) as '员工人数'
from tb_emp;
# c:*的方式,推荐使用这种方式
select count(*) as '员工人数'
from tb_emp;
# 查询最早入职的员工
select min(entrydate)
from tb_emp;
# 查询最迟入职的员工
select max(entrydate)
from tb_emp;
#统计id的平均值
select avg(id)
from tb_emp;
#统计id的和
select sum(id)
from tb_emp;

4.分组查询

代码:

#根据性别进行分组,统计男性和女性的数量 --count(*)
# 查询什么count(*)之前就只能写什么,不能乱写,否则报错
select gender,count(*)
from tb_emp
group by gender;

# 先查询入职时间在‘2015-01-01’(包含)以前的员工,并对结果根据职位进行分组,获取员工数量大于等于2的职位。
select job,count(*)
from tb_emp
where entrydate <= '2015-01-01'
group by job
having count(*)>2

5.排序查询(默认升序)

代码:

# 根据入职时间,进行升序排序
select *
from tb_emp
order by  entrydate;
# 根据入职时间,进行降序排序
select *
from tb_emp
order by  entrydate desc;
# 根据 入职时间进行排序,如果相同,根据 工作岗位 进行排序
select *
from tb_emp
# 当第一个字段相同的时候,第二个才会生效
order by  entrydate ,job;

6.分页查询

# 从 起始索引为0 开始查询员工数据,每页展示5条记录,其实应该是展示: 某个索引开始 一下展示几个数据(索引从0 开始)
# 起始索引 = (页码 -1 )*每页展示几页
select *
from tb_emp
limit 0,5;
# 查询 第一页 员工数据,每页展示5条数据
select *
from tb_emp
limit 0,5;
# 查询 第二页 员工数据,每页展示5条数据
select *
from tb_emp
limit 5,5;
# 查询 第三页 员工数据,每页展示5条数据
select *
from tb_emp
limit 10,5;

7.案例

代码:

# 案例1 ︰按需求完成员工管理的条件分页查询–根据输入条件,查询第一页数据,每页展示10条记录
# 输入条件:
#   姓名:张
#   性别:男
#   入职时间:2000-01-01   2015-12-31
select *
from tb_emp
where gender = 1  and name like '张%'  and entrydate between '2000-01-01' and '2015-12-31'
order by entrydate desc
limit  0,10;
# 案例2 ︰根据需求,完成员工性别信息的统计 --count(*)
# if(条件表达式,true取值,false取值),可以通过这个方式去改列表属性值
select  if(gender=1,'男性员工','女性员工') as '性别',count(*)
from tb_emp
group by gender;
#案例3 :根据需求,完成员工职位信息的统计
# case 表达式(when 值1 then 结果1 when 值2 结果2 ...else ...end
select
    (case job when 1 then'班主任' when 2 then'讲师' when 3 then'学工主管' when 4 then'教研主管' else '未分配职位' end)as '职位',
    count(*)
from tb_emp
group by job;

查询和联系(重点)---多表

1.添加外键,两种方法(也可以直接对表进行操作)  物理外键用的很少

注意点:名称可以不一样,但是类型必须相同

案例:多对多

案例:多对多

这种方法可以展示外键关联图像信息

这种方式可以设置金钱类型

2.逻辑外键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值