二-选择表中的若干元组1消除取值重复的行在SELECT子句.ppt

二-选择表中的若干元组1消除取值重复的行在SELECT子句.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二-选择表中的若干元组1消除取值重复的行在SELECT子句

二、选择表中的若干元组 1. 消除取值重复的行 在SELECT子句中使用DISTINCT短语 假设SC表中有下列数据 : Sno Cno Grade ---------- ------- ------- 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95003 3 80;[例7] 查询选修了课程的学生学号。;注意: DISTINCT短语的作用范围是所有目标列 例:查询选修课程的各种成绩 错误的写法 SELECT DISTINCT Cno,DISTINCT Grade FROM SC; 正确的写法 SELECT DISTINCT Cno,Grade FROM SC; ;查询满足条件的元组 (1)比较大小 在WHERE子句的比较条件中使用: 比较运算符=,,,=,=,!= 或 ,!,!, 逻辑运算符NOT + 比较运算符;[例8] 查询所有年龄在20岁以下的学生姓名及其年龄。 SELECT Sname,Sage FROM Student WHERE Sage 20; 或 SELECT Sname,Sage FROM Student WHERE NOT Sage = 20;;查询满足条件的元组 (2)确定范围 使用谓词 BETWEEN … AND … NOT BETWEEN … AND … ; [例9] 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。 SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23; [例10] 查询年龄不在20~23岁之间的学生姓名、系别和年龄。 SELECT Sname,Sdept,Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23;;查询满足条件的元组 (3)确定集合 使用谓词:IN 值表, NOT IN 值表 值表:用逗号分隔的一组取值;[例11] 查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。 SELECT Sname,Ssex FROM Student WHERE Sdept IN ( IS,MA,CS ); [例13]查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。 SELECT Sname,Ssex FROM Student WHERE Sdept NOT IN ( IS,MA,CS );;查询满足条件的元组 (4)字符串匹配 [NOT] LIKE ‘匹配串’ [ESCAPE ‘ 换码字符’] 匹配串:指定匹配模板 匹配模板:固定字符串或含通配符的字符串 当匹配模板为固定字符串时, 可以用 = 运算符取代 LIKE 谓词, 用 != 或 运算符取代 NOT LIKE 谓词 通配符 % (百分号) 代表任意长度(长度可以为0)的字符串 例:a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab 等都满足该匹配串 _ (下横线) 代表任意单个字符 例:a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串 当用户要查询的字符串本身就含有 % 或 _ 时,要使用ESCAPE 换码字符 短语对通配符进行转义。;例题: 1)匹配模板为固定字符串 [例12] 查询学号为95001的学生的详细情况。 SELECT * FROM Student WHERE Sno LIKE 95001‘; 等价于: SELECT * FROM Student WHERE Sno = 95001’; 2) 匹配模板为含通配符的字符串 [例13] 查询所有姓刘学生的姓名、学号和性别。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE 刘%;;2) 匹配模板为含通配符的字符串(续) [例14] 查询姓欧阳且全名为三个汉字的学生的姓名

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档