1、语法
SELECE 查询列表 FROM 表名 WHERE 筛选条件
筛选条件分类
1、条件运算符
大于:>,小于:<,等于:=,不等于:!= 或 <>,大于等于:>=,小于等于:<=
2、逻辑表达式
与:&&或 and
或: | | 或 or
非: ! 或 not
3、模糊查询
like 指定子句的查询模式,一般配合通配符使用
between num1 and num2 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期
in 操作符允许在 WHERE 子句中规定多个值
is null和is not null, 规定查询结果带有或不带有null值
2、案例
案例1、查询所有年龄大于30岁的学生
SELECT * FROM student WHERE stu_age > 30 #其他条件运算符用法类似
案例2、查询id小于100或大于102的学生信息
SELECT * FROM student WHERE id<100 OR id>102
案例3、查询年龄大于0小于等于30并且学生账户(stu_account)为空的学生信息
# 条件运算符实现
SELECT * FROM student WHERE stu_age > 0 AND stu_age <= 30 AND stu_account IS NULL
# between and 实现
# ps:between and 两边条件的判断方式都是大于等于相当于 stu_age>=0 AND stu_age<=30
SELECT * FROM student WHERE stu_age BETWEEN 0 AND 30 AND stu_account IS NOT NULL
案例4、查询stu_no字段中包含“23”的学生信息
SELECT * FROM student WHERE stu_no LIKE '%23%'
案例5、查询stu_age等于18、55、30的学生信息
SELECT * FROM student WHERE stu_age IN (18, 30, 55)
案例6、经典面试题
# 语句1
SELECT * FROM student where stu_account like '%%' and stu_name like '%%'
# 和
# 语句2
SELECT * FROM student
# 查询结果是否一致
答案: 不一致
stu_account字段中的值有可能为NULL,若为NULL查询条件的返回值就是false
所以语句1的查询结果中没有字段值为NULL的字段信息
而字段2可以查到所有字段信息
PS:若将语句1的AND改为OR,则查询结果和语句2一样,因为查询条件中stu_name的值不可能为NULL,条件永远成立
PS: 安全等于号:<=>
<=> 和 = 区别
= 不能判断NULL值
<=> 可以判断值是否为NULL,同时有=的作用