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

数据库原理及应用(24)

数据库原理及应用(24)

 

  三、SQL的数据查询kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  1.SELECT查询语句句型kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  在关系代数中最常用的式子是下列表达式:kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  ΠA1,…,An(σF(R1×…×Rm))kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

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

  SELECT  A1,…,AnkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  R1,…,RmkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  FkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

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

  比较运算符:〈、 〈=、 〉、 〉=、 =、 〈〉或!=kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  逻辑运算符:AND、OR、NOTkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  集合成员资格运算符:IN、NOT  INkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  谓词:EXISTS、ALL、SOMEkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  聚合函数:AVG、MIN、MAX、SUM、COUNTkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  2.SELECT语句的使用技术kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

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

  第一种写法(连接查询):kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  S.S#,SNAMEkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  S,SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  S.S#=SC.S#  AND  C#=’C2’kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  第二种写法(嵌套查询):kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  S#,SNAMEkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  S#  IN(SELECT  S#kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  C#=‘C2’)kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  SELECT  S#,SNAMEkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  EXISTS(SELECT  *kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  SC.S#=S.S#  AND  C#=’C2’)kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  1)  检索学习课程号为C2课程的学生学号与成绩。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  S#,SCOREkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE C#=‘C2’kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  2)检索学习课程号为C2课程的学生学号和姓名。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  见上例kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  SELECT  S.S#,SNAMEkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM S,SC,C,TkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE S.S#=SC.S#  AND SC.C#=C.C#  kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  AND  C.T#=T.T#  AND  TNAME=’LIU’kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  4)检索选修课程号为C2或C4课程的学生学号。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  S#kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  C#=’C2’  OR  C#=’C4’kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  SELECT  X.S#kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SC  AS  X,SC  AS  YkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  X.S#=Y.S#  AND  X.C#=’C2’  AND  Y.C#=’C4’kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  6)检索不学C2课程的学生姓名与年龄。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  SNAME,AGEkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  S#  NOT  IN(SELECT  S#kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

            FROM  SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

            WHERE  C#=’C2’)kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  SELECT  SNAMEkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  NOT  EXISTSkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

        (SELECT  *kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

        FROM  CkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

        WHERE  NOT  EXISTSkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

              (SELECT  *kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

              FROM  SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

              WHERE  SC.S#=S.S#  AND  SC.C#=C.C#))kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  SELECT  DISTINCT  S#kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SC  AS  XkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  NOT  EXISTSkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

      (SELECT  *kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

      FROM  SC  AS  YkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

      WHERE  Y.S#=’S3’kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

      AND  NOT  EXISTSkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

        (SELECT  *kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

        FROM  SC  AS  ZkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

        WHERE  Z.S#=X.S#  AND  Z.C#=Y.C#))kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  注:DISTINCT表示去掉重复值。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  3.聚合函数kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  COUNT(*):计算元组个数kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  COUNT(<列名>)  对一列中的值计算个数kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SUM(<列名>)    求某一列值的总和(此列值为数值型)kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  AVG(<列名>)    求某一列值的平均值(此列值为数值型)kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  MAX(<列名>)      求某一列值的最大值kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  MIN(<列名>)      求某一列值的最小值kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  说明:列名前均可加DISTINCT,表示去掉重复值。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  例1:求男生的总人数和平均年龄。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  COUNT(*),AVG(AGE)kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  WHERE  SEX=‘男’kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  例2:统计选修了课程的学生人数。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  COUNT(DISTINCT  S#)kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  4.SELECT语句完整的句法kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  <目标表的列名或列表达式序列>kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  <基本表名和(或)视图序列>kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  [WHERE  <行条件表达式>]kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  [GROUP  BY  <列名序列>kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

    [HAVING  <组条件表达式>]]kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  [ORDER  BY  <列名[ASC | DESC]>,…]kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

      |表示二选一。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  整个语句的执行过程为:kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

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

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

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

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

  例1:统计每门课程的学生选修人数。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  COUNT(S#)kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  GROUP BY  C#kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  SELECT  COUNT(S#)kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  GROUP BY  C#kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  HAVING  COUNT(S#)>50kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

  SELECT  S#,AGE>kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  FROM  SkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  ORDER  BY  AGE  DESC,S#  ASCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  5.SELECT子句的具体规定kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  SELECT  [ALL | DISTINCT] 〈列名或列表达式序列>|*kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

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

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

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

  例1:检索男同学选修的课程的课程号。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

    SELECT  DISTINCT  C#kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

    FROM  S,SCkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

    WHERE  S.S#=SC.S#  AND  SEX=’男’kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  例2:检索所有的学生信息。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

    SELECT *kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

    FROM  SkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

  例3:检索每个学生的学号和出生年份。kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

    SELECT  S#,2008-AGEkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

    FROM  SkpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

kpJ湖南凯时app网_湖南凯时app本科_湖南凯时app报名_凯时app

 

数据库原理及应用(24)

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

 

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


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

w66利来国际 w66利来国际 w66利来国际 w66利来国际 w66利来国际