27ti

1.要求:将武当派 张三 修改为 张三丰
update ren set p_name =’张三丰’ where p_name=’张三’

-- 1.查询所有人员?
-- select * from ren;

-- 2.只查询人员的姓名和年龄?
        -- select p_name,p_age from ren;

-- 3.查询年龄为20岁的人有哪些?
     -- select * from ren where p_age ='20';

-- 4.查询60岁以下的人员有哪些?
    --  select * from ren where p_age < '60'
        -- select * from ren where p_age != '60'
        -- 常见的逻辑运算符 <,>,= <=,>=,<>,!=

-- 5.查询50岁以上并且工资大于8000的人员有哪些?
        -- select * from ren where p_age >50 || p_sal <8000
        -- 注意: and 用于连接两个条件 表示并且意思
        -- 注意2: or 用于连接两个条件 表示或者意思

-- 6.查询姓[张]的人员有哪些?
        -- select * from ren where p_name LIKE '张%'
      -- select * from ren where p_name LIKE '%张%'

-- 7.查询哪些人员属于 武当/华山/嵩山?
        -- select * from ren where p_menpai ='武当' or p_menpai ='华山' or p_menpai='嵩山';
        -- select * from ren where p_menpai not in('武当','华山','嵩山');

-- 8.查询工资在 5000-8900的人员有哪些?
    -- select * from ren where p_sal >=5000 and p_sal<= 8900;
    -- select * from ren where p_sal between 5000 and 8900;

-- 9.查询所有人员,要求按工资倒序排列?
        -- select * from ren where p_sal>3000 ORDER BY p_sal asc

-- 10.查询年龄为21岁人员的领导人是谁?
        select p_leader from ren where p_age ='21'

      select * from ren where p_id ='p003'

      select * from ren where p_id =(select p_leader from ren where p_age ='21')

—————-聚合函数——————-

-- 11.查询当前人员中谁的工资最高?
select max(p_sal) as p_sal from ren ;
select p_name from ren where p_sal =(select max(p_sal) as p_sal from ren)
注意: max() 表示最大值
        as 表示 起别名

-- 12.查询当前人员中谁的工资最低?
select p_name from ren where p_sal = (select min(p_sal) from ren)
注意:min()表示最小值

-- 13.查询所有人员的平均工资是多少?
select AVG(p_sal) from ren  
注意:avg():表示平均值

-- 14.查询所有人员的工资总和是多少?
select sum(p_sal) from ren
 注意 sum() 求和

-- 15.查询目前有多少个人员?
select count(p_id) from ren
注意 count(主键) 表示查询表中数据的总条数

-- 16.查询各门派的平均工资是多少?
select avg(p_sal),p_menpai,p_name from ren GROUP BY p_menpai order by avg(p_sal) desc

注意 group by   表示分组

-- 17.查询武当派最高工资是谁?
select p_name from ren where p_sal = (select max(p_sal) from ren where p_menpai ='武当') and p_menpai ='武当'

-- 18.查询当前武林中有哪些门派?
select p_menpai from ren GROUP BY p_menpai;

select DISTINCT p_menpai,p_name from ren
注意:DISTINCT 表示去重复查询,要求查询的所有字段必须一样,才认为是重复数据

-- 19.查询当前武林中有哪些门派和门派的平均工资是多少?
select p_menpai,avg(p_sal) from ren GROUP BY p_menpai

-- 20.查询当前人员表的中的第3条数据到第7条数据?
select * from ren LIMIT 2,5
注意 limit 表示分页
参数1:表示从第几条开始查询,下标从0开始
参数2:表示每次查询多少条数据

-- 21.查询没有门派的人员有哪些?
select * from ren where p_menpai is null;   表示查询字段为 null 的数据
select * from ren where p_menpai ='';      表示查询字段为 ''(空) 的数据

update ren set p_menpai = null where p_id='p008'
注意:修改字段为null 时 要写 =


-- 22.查询武当派下有哪些小弟?

select * from ren where p_leader =(select p_id from ren where p_menpai='武当' and p_leader='0')
select * from ren where p_menpai ='武当' and p_leader !='0'

-- 23.查询各门派的工资总和按倒序/正序排列
select sum(p_sal) sal,p_menpai from ren GROUP BY p_menpai ORDER BY sal

-- 24.查询人员并显示门派所在位置(多表联合查询)
select * from ren,wei where ren.p_menpai = wei.a_name   
注意:如果多表联合查询不加条件则会出现(笛卡尔乘积)
注意:在使用多表联合查询时,一定要加条件
结果:符合两个表条件的结果   

-- 25.查询人员表,如果人员门派存在位置则显示位置信息,不存在则不显示位置
select * from ren LEFT JOIN wei on ren.p_menpai = wei.a_name    

左连接查询
    注意:on  表示条件 专门配置 left  join 来使用
    特点:左表数据全要,右表的数据与左表数据相匹配则显示,不匹配则以NULL填充

-- 26.查询位置表,如果人员的门派有位置信息则显示人员,没有则不显示.

select * from ren RIGHT  JOIN wei on ren.p_menpai = wei.a_name      

-- 27.查询登记了地理位置的门派人员信息

select * from ren INNER JOIN wei on ren.p_menpai = wei.a_name
  • 我好像在哪见过你 — 薛之谦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值