内容正文:
条件查询
条件查询主要使用关键字WHERE指定查询的条件
WHERE子句常用的查询条件如下:
“<>”表示不等于,其作用等价于“!=”;“!>”表示不大于,等价于“<=”;“!<”表示不小于,等价于“>=”;BETWEEN AND指定了某字段的取值范围;“IN”指定了某字段的取值的集合;IS NULL用来判断某字段的取值是否为空;AND和OR用来连接多个查询条件。
条件查询
1.带关系运算符和逻辑运算符的查询
MYSQL中,可以通过关系运算符和逻辑运算符来编写“条件表达式”。
MySQL支持的比较运算符有> ,< ,= ! ,=(<>),>= ,<=;逻辑运算符有AND(&&), OR (||) ,XOR ,NOT(!)
例:查询成绩在70分到80分之间(包含70分和80分)学生的学号和成绩。
SELECT sno,grade FROM sc WHERE grade>=70 and grade<=80;
2
条件查询
2.带IN关键字的查询
IN关键字可以判断某个字段的值是否在指定的集合中,如果字段的值在集合中,则满足查询条件,该记录将被查询出来;如果不在集合中,则不满足查询条件。
语法格式 [NOT] IN (元素1,元素2, 元素3, . . . )
其中,NOT是可选参数,加上NOT表示不在集合内满足条件:字符型元素要加上单引号。
条件查询
例:
查询成绩在集合(65,75,85,95)中的学生的学号和成绩
SELECT sno,grade FROM sc WHERE grade In (65,75,85,95);
条件查询
3.带BETWEEN AND关键字的查询
BETWEEN AND关键字可以判断读某个字段的值是否在指定的范围内,如果在,则满足条件,否则不满足。
语法规则:[ NOT ] BETWEEN取值1 AND取值2
其中,“NOT”是可选参数,加上NOT表示不在指定范内满足条件;“取值 1”表示范围的起始值;“取值2”表示范围的终止值。
条件查询
例:
查询成绩在70分到80分之间(包含70分和80分)学生的学号和成绩。
SELECT sno,grade FROM sc WHERE grade BETWEEN 75 AND 80;
条件查询
4.带IS NULL关键字的空值查询
IS NULL关键字可以用来判断字段的值是否为空值(NULL).如果字段值为空值,则满足查询条件,否则不满足。
语法规则:IS [ not ] NULL
IS NULL 是一个整体,不能将IS换成“=”。
IS NOT NULL 中的IS NOT也不可以换成!= 或者<> 。
条件查询
例:
查询还没有分专业的学生的学号和姓名。
查询条件:没分专业说明专业号为空,即 zno IS NULL;
SELECT sno,sname,zno FROM student WHERE zno IS NULL;
条件查询
5.带LIKE关键字的查询
LIKE关键字可以匹配字符串是否相等。如果字段的值与指定的字符串相匹配,则满足条件,否则不满足。
语法规则: [NOT] LIKE “字符串”;
通配符“%”与“_”的区别:
(1)“%”可以代表任意长度的字符串,长度可以为0。例如,b%k表示以字母b开头,以字母k结尾的任意长度的字符串。该字符串可以代表bk、buk、book、break、bedrock等字符串。
(2)“_”只能表示单个字符。例如,b_k表示以字母b开头,以字母k结尾的3个字符。中间的“_”可以代表任意一个字符。字符串可以代表bok、bak和buk等字符串。
9
条件查询
例:
使用LIKE关键字来匹配一个完整的字符串 '蓝梅'。
SELECT * FROM student WHERE sname LIKE '蓝梅';
此处的LIKE与等号(=)是等价的。可以直接换成“=”,查询结果是一样的。
SELECT * FROM student WHERE sname =‘蓝梅';
条件查询
例:
使用LIKE关键字来匹配带有通配符‘%’的字符串‘李%’。
SELECT语句的代码如下:
SELECT * FROM student WHERE sname LIKE '李%';
条件查询
例:使用LIKE关键字来匹配带有通配符'_'的字符串。
SELECT * FROM student WHERE sname LIKE '李_ _';
需要匹配的字符串需要加引号。可以是单引号,也可以是双引号。
条件查询
NOT LIKE表示字符串不匹配的情况下满足条件。
例:
使用NOT LIKE关键字来查询不是姓李的所有人的记录。
SELECT * FROM student WHERE sname NOT LIKE '李%';
知识点小结
本节知识小