资源描述:
《数据库的查询条件查询ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章数据库的查询4.2条件查询-where子句1一个完整的SQL语句的结构:所有被使用的子句必须按语法说明中显示的顺序严格地排序。SELECT字段或分组函数FROM表名[WHERE筛选条件][GROUPBY分组列][HAVING分组筛选条件][ORDERBY列][LIMIT];SELECT语句24.2.2WHERE子句WHERE子句必须紧跟FROM子句之后,在WHERE子句中,使用一个条件从FROM子句的中间结果中选取行。其基本格式为:WHEREwhere_definition其中,where_definition为查询条
2、件。语法格式为:where_definition:
3、{AND
4、OR}
5、(where_definition)
6、NOTwhere_definition其中,predicate为判定运算,结果为TRUE、FALSE或UNKNOWN。:expression{=
7、<
8、<=
9、>
10、>=
11、<=>
12、<>
13、!=}expression/*比较运算*/
14、match_expression[NOT]LIKEmatch_expression[ESCAPE'esc
15、ape_character']/*LIKE运算符*/
16、match_expression[NOT][REGEXP
17、RLIKE]match_expression/*REGEXP运算符*/
18、expression[NOT]BETWEENexpressionANDexpression/*指定范围*/
19、expressionIS[NOT]NULL/*是否空值判断*/
20、expression[NOT]IN(subquery
21、expression[,…n])/*IN子句*/
22、expression{=
23、<
24、<=
25、>
26、>=
27、<=>
28、<>
29、!=}{A
30、LL
31、SOME
32、ANY}(subquery)/*比较子查询*/
33、EXIST(subquery)/*EXIST子查询*/34.2.2WHERE子句WHERE子句会根据条件对FROM子句的中间结果中的行一行一行地进行判断,当条件为TRUE的时候,一行就被包含到WHERE子句的中间结果中。判定运算包括:比较运算模式匹配字符串匹配-like文本匹配-regexp或者relike范围比较空值比较子查询44.2WHERE子句1.比较运算比较运算符用于比较两个表达式值,MySQL支持的比较运算符有:=(等于)、<(小于)、<=(小于等于)
34、、>(大于)、>=(大于等于)、<=>(相等或都等于空)、<>(不等于)、!=(不等于)。比较运算的语法格式为:expression{=
35、<
36、<=
37、>
38、>=
39、<=>
40、<>
41、!=}expression其中expression是除TEXT和BLOB外类型的表达式。当两个表达式值均不为空值(NULL)时,除了“<=>”运算符,其他比较运算返回逻辑值TRUE(真)或FALSE(假);而当两个表达式值中有一个为空值或都为空值时,将返回UNKNOWN;MySQL有一个特殊的等于运算符“<=>”,当两个表达式彼此相等或都等于空值时,它的值
42、为TRUE,其中有一个空值或都是非空值但不相等,这个条件就是FALSE。没有UNKNOWN的情况。多个判定运算的结果通过逻辑运算符(AND、OR、XOR和NOT)组成更为复杂的查询条件54.2.4WHERE子句【例4.11】查询xscj数据库xs表中学号为081102的学生姓名学号和学分情况。select姓名,学号,总学分fromxswhere学号='081102';执行结果如图所示。64.2.4WHERE子句【练习1】查询xs表中总学分大于50分的学生的情况。74.2.4WHERE子句【练习2】查询xs表中备注为空的同学的
43、情况。84.2.4WHERE子句【练习3】查询xs表中年龄大于26岁的学生姓名和年龄。94.2.4WHERE子句【练习4】查询xs表中年龄大于26岁的学生人数。104.2WHERE子句复杂条件匹配ANDOR可以将多个判定运算的结果通过逻辑运算符(AND、OR、XOR和NOT)组成更为复杂的查询条件。114.2.4WHERE子句【例4.12】查询xs表中专业为计算机,性别为女(0)的同学的姓名、学号和学分。select姓名,学号,性别,总学分fromxswhere专业名='计算机'and性别=0;124.2.4WHERE子句【
44、练习5】查询xs表中年龄大于26岁的男生信息(性别为1)。134.2.4WHERE子句【练习6】查询在1990或1989年出生的学生人数。144.2WHERE子句3.范围比较用于范围比较的关键字有两个:BETWEEN……AND和IN。当要查询的条件是某个值的范围时,可以使用BETWEEN关