了解湖南/长沙自考资讯,从湖南自考网开始!湖南自考报名湖南自考本科
您当前的位置:首页 > 校园动态

数据库原理及应用(24)

数据库原理及应用(24)

 

  三、SQL的数据查询kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  1.SELECT查询语句句型kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  在关系代数中最常用的式子是下列表达式:kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  ΠA1,…,An(σF(R1×…×Rm))kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  这里,R1、…、Rm为关系,F是公式,A1、…、An为属性。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  与该表达式对应,SQL设计了SELECT—FROM—WHERE句型:kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  A1,…,AnkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  R1,…,RmkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  FkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  注意:1)在学习时,应把SELECT语句和关系代数表达式联系起来考虑问题。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  2)在WHERE子句的条件表达式F中可使用下列运算符:kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  比较运算符:〈、 〈=、 〉、 〉=、 =、 〈〉或!=kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  逻辑运算符:AND、OR、NOTkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  集合成员资格运算符:IN、NOT  INkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  谓词:EXISTS、ALL、SOMEkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  聚合函数:AVG、MIN、MAX、SUM、COUNTkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  F中运算对象还可以是另一个SELECT语句,即SELECT语句可以嵌套。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  2.SELECT语句的使用技术kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT使用时有三种写法:连接查询、嵌套查询和带存在量词的嵌套查询。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例:针对前面使用的教学数据库,检索学习课程号为C2课程的学生学号与姓名。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  第一种写法(连接查询):kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  S.S#,SNAMEkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  S,SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  S.S#=SC.S#  AND  C#=’C2’kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  第二种写法(嵌套查询):kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  S#,SNAMEkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  S#  IN(SELECT  S#kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  C#=‘C2’)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  第三种写法(使用存在量词的嵌套查询):kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  S#,SNAMEkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  EXISTS(SELECT  *kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  SC.S#=S.S#  AND  C#=’C2’)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例:对于教学数据库中四个基本表T、C、S、SC,用SELECT语句表示下面查询。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  1)  检索学习课程号为C2课程的学生学号与成绩。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  S#,SCOREkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE C#=‘C2’kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  2)检索学习课程号为C2课程的学生学号和姓名。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  见上例kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  3)检索至少选修LIU老师所授课程中一门课程的学生学号与姓名。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  S.S#,SNAMEkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM S,SC,C,TkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE S.S#=SC.S#  AND SC.C#=C.C#  kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  AND  C.T#=T.T#  AND  TNAME=’LIU’kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  4)检索选修课程号为C2或C4课程的学生学号。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  S#kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  C#=’C2’  OR  C#=’C4’kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  5)检索至少选修课程号为C2和C4课程的学生学号。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  X.S#kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SC  AS  X,SC  AS  YkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  X.S#=Y.S#  AND  X.C#=’C2’  AND  Y.C#=’C4’kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  6)检索不学C2课程的学生姓名与年龄。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  SNAME,AGEkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  S#  NOT  IN(SELECT  S#kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

            FROM  SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

            WHERE  C#=’C2’)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  7)检索学习全部课程的学生姓名。(在表S中找学生,在C中不存在一门课程,这个学生没有学。)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  SNAMEkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  NOT  EXISTSkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

        (SELECT  *kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

        FROM  CkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

        WHERE  NOT  EXISTSkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

              (SELECT  *kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

              FROM  SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

              WHERE  SC.S#=S.S#  AND  SC.C#=C.C#))kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  8)检索所学课程包含学号为S3学生所学课程的学生学号。(在SC表中找一个学生,不存在S3学的一门课,该学生没有学。)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  DISTINCT  S#kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SC  AS  XkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  NOT  EXISTSkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

      (SELECT  *kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

      FROM  SC  AS  YkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

      WHERE  Y.S#=’S3’kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

      AND  NOT  EXISTSkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

        (SELECT  *kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

        FROM  SC  AS  ZkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

        WHERE  Z.S#=X.S#  AND  Z.C#=Y.C#))kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  注:DISTINCT表示去掉重复值。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  3.聚合函数kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  COUNT(*):计算元组个数kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  COUNT(<列名>)  对一列中的值计算个数kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SUM(<列名>)    求某一列值的总和(此列值为数值型)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  AVG(<列名>)    求某一列值的平均值(此列值为数值型)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  MAX(<列名>)      求某一列值的最大值kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  MIN(<列名>)      求某一列值的最小值kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  说明:列名前均可加DISTINCT,表示去掉重复值。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例1:求男生的总人数和平均年龄。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  COUNT(*),AVG(AGE)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  WHERE  SEX=‘男’kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例2:统计选修了课程的学生人数。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  COUNT(DISTINCT  S#)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  4.SELECT语句完整的句法kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  <目标表的列名或列表达式序列>kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  <基本表名和(或)视图序列>kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  [WHERE  <行条件表达式>]kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  [GROUP  BY  <列名序列>kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

    [HAVING  <组条件表达式>]]kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  [ORDER  BY  <列名[ASC | DESC]>,…]kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  说明:[]表示其中的内容根据需要可以省略。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

      |表示二选一。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

       各子句的作用:SELECT子句用于指定输出的内容;FROM子句用于指定要检索的数据的来源表;WHERE子句称为“行条件子句”,用于指定对元组的选取条件;GROUP  BY子句称为“分组子句”,作用是指定对元组进行分类后再检索;HAVING子句称为“组条件子句”,用于指定对分类后的元组的选取条件;ORDER  BY子句称为“排序子句”,作用是对检索到的元组进行排序。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  整个语句的执行过程为:kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  1)读取FROM子句中基本表、视图的数据,执行笛卡儿积操作。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  2)选取满足WHERE子句中给出的条件表达式的元组。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  3)按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  4)按SELECT子句中给出的列名或列表达式求值输出。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  5)ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例1:统计每门课程的学生选修人数。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  COUNT(S#)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  GROUP BY  C#kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例2:统计每门课程的学生选修人数,要求只查询出选修人数超过50人的结果。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  COUNT(S#)kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  GROUP BY  C#kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  HAVING  COUNT(S#)>50kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例3:检索每名学生的学号和年龄,查询结果按年龄降序排列,年龄相同按学号升序排列。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  S#,AGE>kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  FROM  SkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  ORDER  BY  AGE  DESC,S#  ASCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  5.SELECT子句的具体规定kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  SELECT  [ALL | DISTINCT] 〈列名或列表达式序列>|*kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  说明:1)DISTINCT选项保证重复的行将从结构中去除;而ALL选项是默认的,将保证重复的行留在结果中,一般可不必写出。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

      2)*是对于在FROM子句中命名表的所有列的简写。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

      3)列表达式中允许出现+、-、*、/等运算符以及列名和常数、聚合函数等。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例1:检索男同学选修的课程的课程号。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

    SELECT  DISTINCT  C#kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

    FROM  S,SCkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

    WHERE  S.S#=SC.S#  AND  SEX=’男’kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例2:检索所有的学生信息。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

    SELECT *kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

    FROM  SkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

  例3:检索每个学生的学号和出生年份。kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

    SELECT  S#,2008-AGEkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

    FROM  SkpJ湖南自考网_湖南自考本科_湖南自考报名_首页

kpJ湖南自考网_湖南自考本科_湖南自考报名_首页

 

数据库原理及应用(24)

    湖南自考网——致力于打造湖南自考网第一网,以努力服务于广大湖南自考学子、提供最全的湖南自考资讯为己任,发布湖南自考最新的新闻资讯,提供湖南自考专科湖南自考本科湖南自考报名湖南自考成绩查询等综合信息

 

湖南自考
相关文章
    无相关信息
湖南网站主页
湖南自考政策
自考30年大事
湖南自考专业
湖南自考问答
名家访谈
湖南自考故事
湖南自考院校
湖南自考大纲
自考复习方法
自考笔记串讲
自考应试技巧
湖南自考真题
湖南自考就业
湖南论文指导
湖南自考实践
湖南自考学位
自考成绩查询
自考考籍查询
自考学历查询


咨询QQ:137847917
13548661633(微信同号)