事业单位招聘网 发表于 2017-7-29 18:09:06

事业单位考试计算机基础知识:SQL的数据查询功能(2)

(7)分组查询
    按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组上具有相同的值。
    select 教师号,count(*) as 任课门数 from 授课 group by 教师号
    select 学号 as 选课在两门以上课程的学生号,count(*) as 选课门数 from 选课 group by 学号 having
count(*)>=2
    (8)查询的排序(ORDER BY子句)
    select 学号,课程号,成绩 from 选课 where 课程号='c140' order by 成绩 desc
    select 学号,课程号,成绩 from 选课 where 课程号 in('c120','c130','c150') order by 课程号,成绩
desc
    (9)连接查询
    当查询同时涉及到两个以上的表时的查询。(通过相同属性列的关联建立查询)
    方法:表之间满足一定条件的行进行连接;
    利用关键字JOIN进行连接,放入FROM子句中,有ON与之相对应,表明连接的条件。
    INNER JION:显示符合条件的记录(默认)
    LEFT JION:显示符合条件的记录以及左边表中不符合条件的记录,此时右边的列显示为NULL。
    RIGHT JION:显示符合条件的记录以及右边表中不符合条件的记录,此时左边的列显示为NULL。
    FULL JOIN:显示符合条件的记录以及左右表中不符合条件的记录,此时左右边的列显示为NULL。
    A.等值连接与非等值连接
    格式:[.][.]
    select 教师.教师号,姓名,课程号 from 教师,授课 where 教师.教师号=授课.教师号 and 姓名='陈静' ***
    select 教师.教师号,姓名,课程号 from 教师 inner join 授课 on 教师.教师号=授课.教师号 and 姓名='陈
静'
    select 学生.学号,姓名,课程名,成绩 from 学生,课程,选课 where 学生.学号=选课.学号 and 选课.课程号=课程.课程号
and (课程名='数据库' or 课程名='电子商务')
    B.自身连接
    select x.姓名,x.性别,x.职称 from 教师 as x,教师 as y where x.职称=y.职称 and y.姓名='周
密'
    C.外连接(左为主表,右为从表)
    select 姓名,职称,课程名 from 教师,课程,授课 where 教师.教师号=授课.教师号 and 授课.课程号=课程.课程号
    select 姓名,职称,课程名 from 教师 left join 授课 on 教师.教师号=授课.教师号 left join 课程 on
授课.课程号=课程.课程号
    (10)嵌套查询
    A.返回一个值的子查询
    select 姓名,职称 from 教师 where 职称=(select 职称 from 教师 where 姓名='陈 静')
    B.返回一组值的子查询(ANY、IN、ALL和EXISTS)
    select 姓名 from 教师 where 教师号=any(select 教师号 from 授课 where 课程号='c140')
    select 姓名,入校总分 from 学生 where 入校总分>any(select 入校总分 from 学生 where 性别='男')
and 性别'男'
    select 姓名 from 教师 where 教师号=in(select 教师号 from 授课 where 课程号='c140')
    select 姓名,入校总分 from 学生 where 入校总分>all(select 入校总分 from 学生 where 性别='男')
and 性别='女'
    select 姓名 from 教师 where exists (select * from 授课 where 教师.教师号=授课.教师号 and
课程号='c140')
    (11)查询结果的输出
    INTO TABLE:到数据表
    INTO CURSOR:到临时表
    TO FILE:到文本文件
    TO PRINT:到打印机
    TO SCREEN:到VF主窗口
页: [1]
查看完整版本: 事业单位考试计算机基础知识:SQL的数据查询功能(2)