vfp第4章(2)特殊运算符·数据定义和操纵

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章SQL关系数据库查询语言
LOGO
SQL的数据查询 8.特殊运算符
⑴范围查询
【例36】查询入学成绩在500到520分(包含500分和520分)的学生的学号、 姓名和入学成绩信息。 <字段名> [NOT] BETWEEN…AND… 注意:写查询范围时,小数写在AND前面,大数写在AND后面。
SELECT 学号,姓名,入学成绩 FROM 学生; WHERE 入学成绩 BETWEEN 500 AND 520
第4章
SQL关系数据库查询语言
2
SQL的数据查询
【例37】查询入学成绩小于500分或大于520分的学生的学号、姓名和入学 成绩信息。
SELECT学号,姓名,入学成绩 FROM 学生; WHERE 入学成绩 NOT BETWEEN 500 AND 520
第4章
SQL关系数据库查询语言
3
SQL的数据查询
⑵字符串匹配查询
【例38】查询“学生”表中所有姓王的学生信息。 <字段名> [NOT] LIKE <字段串> 在<字符串>中可以使用通配符% 和_ 。 %表示多个任意字符,_表示一 个任意字符。查询汉字时,每个_表示一个汉字。 SELECT * FROM 学生 WHERE 姓名 LIKE "王%"
【例44】查询同时选修了“002”和“005”课程的学生的学号。 SELECT 学号 FROM 选课; WHERE 课程号="002" AND 课程号="005"
错误的!
SELECT 学号 FROM 选课 WHERE 课程号="002" AND 学号 IN; (SELECT 学号 FROM 选课 WHERE 课程号="005") 等价于量词查询: SELECT 学号 FROM 选课 WHERE 课程号="002" AND 学号=; ANY (SELECT 学号 FROM 选课 WHERE 课程号="005")
第4章
SQL关系数据库查询语言
8
SQL的数据查询
⑵带有量词的子查询
【例43】查询“学生”表中入学成绩大于所有男生入学成绩的姓名和入学 成绩信息。 SELECT 姓名,入学成绩 FROM 学生 WHERE 入学成绩>; ALL (SELECT 入学成绩 FROM 学生 WHERE 性别="男")
【注意】在使用>、>=、<、<=、=、!=等关系运算符时,当子查询的结 果有多个时,应在子查询的前面使用量词ANY、SOME、ALL。
SQL关系数据库查询语言
9
SQL的数据查询 ⑶带有谓词的子查询
在子查询前还可以有[NOT] IN和[NOT] EXISTS谓词运算。
• IN和NOT IN表示某个字段值是否在子查询中出现过。 • EXISTS和NOT EXISTS判断子查询是否存在查询结果。
第4章
SQL关系数据库查询语言
10
SQL的数据查询
第4章
SQL关系数据库查询语言
4
SQL的数据查询
【例39】查询“课程”表中所有课程名里含有”大学”两个字的课程名。 SELECT 课程名 FROM 课程 WHERE 课程名 LIKE "%大学%"
第4章
Βιβλιοθήκη BaiduSQL关系数据库查询语言
5
SQL的数据查询
⑶空值查询
【例40】查询哪些学生没有选课,查询结果包含学号、姓名和成绩字段。 <字段名> [NOT] IS NULL ①SELECT 学生.学号,姓名,成绩 FROM 学生 LEFT JOIN 选课; ON 学生.学号=选课.学号 INTO CURSOR TEMP ②SELECT * FROM TEMP WHERE 成绩 IS NULL
第4章 SQL关系数据库查询语言 12
SQL的数据查询
【例46】查询至少选修一门课的学生信息。 SELECT * FROM 学生 WHERE EXISTS; (SELECT * FROM 选课 WHERE 学号=学生.学号) 等价于IN语句查询: SELECT * FROM 学生 WHERE 学号 IN; (SELECT 学号 FROM 选课)
注意:空值查询时要使用IS NULL,不能使用=NULL。
第4章
SQL关系数据库查询语言
6
SQL的数据查询
9.集合的并运算
SELECT语句的查询结果是记录的集合,可以使用UNION并运算把两个 查询结果并在一起。为了完成并运算,两个查询结果要求具有相同的字 段,并且对应字段的数据类型和取值范围应该一致。 【例41】查询选修了“002”或“005”课程的学生的学号和课程号。 SELECT 学号,课程号 FROM 选课 WHERE 课程号="002"; UNION; SELECT 学号,课程号 FROM 选课 WHERE 课程号="005"
第4章
SQL关系数据库查询语言
7
SQL的数据查询 10.嵌套查询
当查询的条件依赖于另一个查询的结果时,就要在查 询条件WHERE短语中嵌套一个子查询。 ⑴带有比较运算的子查询
【例42】查询“学生”表中与“王欣”同一专业的学生的学号、姓 名和专业。 SELECT 学号,姓名,专业 FROM 学生 WHERE 专业=; (SELECT 专业 FROM 学生 WHERE 姓名="王欣")
第4章
SQL关系数据库查询语言
11
SQL的数据查询
【例45】查询没有选修任何一门课的学生信息。 SELECT * FROM 学生 WHERE NOT EXISTS; (SELECT * FROM 选课 WHERE 学号=学生.学号) 等价于NOT IN语句查询: SELECT * FROM 学生 WHERE 学号 NOT IN; (SELECT 学号 FROM 选课) 使用 [NOT] EXISTS时注意: ⑴[NOT] EXISTS的前面没有字段名。 ⑵子查询必须包含主查询用到的表和子查询用到的表的联接条件。 使用 [NOT] IN时注意: ⑴ [NOT] IN的前面必须有字段名。 ⑵子查询中查询的字段与[NOT] IN前面的字段相同。
ANY/SOME:子查询只要有一条记录满足条件,整个条件就成立。 ALL:子查询所有记录都满足条件,整个条件才成立。 大于所有男生的入学成绩,等价大于男生的最高入学成绩。 等价于:
SELECT 姓名,入学成绩 FROM 学生 WHERE 入学成绩>;
第4章
(SELECT MAX(入学成绩) FROM 学生 WHERE 性别="男")
相关文档
最新文档