zoukankan      html  css  js  c++  java
  • SQL数据库子查询练习题及解析

    例子:

    create database lianxi

    go

    use lianxi

    go
    --创建部门表
    create table bumen
    (
       bmcode int primary key,  --部门编号(主键)
       bmname varchar(20),  --部门名字
       bmceo varchar(20),  --部门主管
       bmtel varchar(20),  --部门电话
    )
    go
    --创建人员表
    create table renyuan
    (
       code int primary key identity(1001,1),  --员工编号(自增长主键)
       name varchar (20),  --员工名字
       sex varchar (10),  --员工性别
       age int,  --员工年龄
       ygbm int,  --员工部门(部门表外键)
    )
    go

    --设置好外键关系,之后插入数据

    --先插入部门的数据
      insert into bumen values(1,'财务部','张三','1111111')
      insert into bumen values(2,'人事部','李四','2222222')
      insert into bumen values(3,'技术部','王五','3333333')
      insert into bumen values(4,'销售部','赵六','4444444')

    --插入人员表的信息

      insert into renyuan values('张三','男',22,1)
      insert into renyuan values('李四','女',32,2)
      insert into renyuan values('王五','男',42,3)
      insert into renyuan values('赵六','女',52,4)

      insert into renyuan values('一','男',28,1)
      insert into renyuan values('二','女',38,2)
      insert into renyuan values('三','男',48,3)
      insert into renyuan values('四','女',58,4)

      insert into renyuan values('五','男',25,1)
      insert into renyuan values('六','女',35,2)
      insert into renyuan values('七','男',45,3)
      insert into renyuan values('八','女',55,4)

    子查询练习:

    --1、查询年纪最大的人的部门名称
    select bmname from bumen where bmcode=
    (select ygbm from renyuan where code=
    (select code from renyuan where age=
    (select MAX(age) from renyuan)))

    --2、按照年龄排序后的前三个人的所有信息
    select top 3 *from renyuan order by age

    --3、按照年龄排序后的6/7/8名人员的所有信息
    select top 3 *from renyuan where code not in
    (select top 5 code from renyuan order by age)
    order by age

    --4、分页查询,要求 一页给显示5条数据
    select top 5*from renyuan
    select top 5*from renyuan where code not in (select top 5 code from renyuan )
    select top 5*from renyuan where code not in (select top 10 code from renyuan )

    --5、总共有几页
    select CEILING(COUNT(*)/5.0)from renyuan

    --6、查询销售部里的年龄大于35岁的人的所有信息

    select * from renyuan where code in
    (select code from renyuan where age>35 and ygbm=
    (select bmcode from bumen where bmname='销售部')
    )

    --7、查看所有人员信息,将部门编号替代为部门名称
    select code , name, sex , age , (select bmname from bumen where bumen.bmcode= renyuan.ygbm)as 部门 from renyuan

    --8、将每个人的主管添加上
    select code , name, sex , age , (select bmname from bumen where bumen.bmcode= renyuan.ygbm)as 部门,
    (select bmceo from bumen where bumen.bmcode= renyuan.ygbm) from renyuan

  • 相关阅读:
    Rafy 框架
    巧用拦截器:高效的扩展点设计
    Rafy 框架
    Rafy 框架
    Rafy 框架
    Rafy 框架-发布网页版用户手册
    Rafy 领域实体框架
    基金投资方法札记
    股票、基金投资方案总结
    BaaS API 设计规范
  • 原文地址:https://www.cnblogs.com/hcx999/p/5837244.html
Copyright © 2011-2022 走看看