「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战」
WHERE 子句
WHERE 子句用于规定选择的标准。
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。
语法:
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
where字句常用的查询条件
| 查询条件 | 谓词 |
|---|---|
| 比较 | = , > , < , >= , <= , (<> , !=不等于) |
| 确定范围 | BETWEEN AND(相当于闭集合[BETWEEN,AND]) , NOT BETWEEN AND(不属于闭集合[BETWEEN,AND]的范围) |
| 确定集合 | IN , NOT IN |
| 字符匹配 | LIKE NOT LIKE 通配符 % ,_ |
| 多重运算(逻 辑运算) | AND, OR , NOT |
| 空值 | IS NULL , IS NOT NULL |
使用实例及说明
-- where字句常用的查询条件及用法
-- 比较 = , > , < , >= , <= , (<> , !=不等于)
-- 用法 修改id为1的学生的姓名为狂铁
UPDATE `student` SET `name`='狂铁' WHERE id=1;
-- 修改年龄不等于3的学生的姓名
UPDATE `student` SET `name`='虞姬' WHERE age <>3;
-- 查询studeng表中性别为女的学生ID
SELECT id
FROM student
WHERE sex='女';
-- 查询年龄小于等于4的学生的id和姓名
SELECT id ,`name`
FROM student
WHERE age >=4;
-- 确定范围 BETWEEN AND(相当于闭集合[BETWEEN,AND]) ,NOT BETWEEN AND(不属于闭集合[BETWEEN,AND]的范围)
-- 查询年龄在4到六岁的学生的id和姓名
SELECT id,`name` FROM student WHERE age BETWEEN 4 AND 6;
-- 查询年龄不在3到7岁的学生的所有信息
SELECT * FROM student WHERE age NOT BETWEEN 3 AND 7;
-- 确定集合,和
SELECT age FROM student WHERE IN(4,5,6)
SELECT age FROM student WHERE age=3 OR age=4 OR age=5
-- 字符匹配 LIKE NOT LIKE 通配符 %(代表任意长度的字符串) ,_(代表任意单个字符)
-- 查询姓名为两个字且第一个字为'狂'的学生的所有信息
SELECT * FROM student WHERE `name` LIKE '狂_';
-- 查询姓名第一个字为'狂'的学生的所有信息
SELECT * FROM student WHERE `name` LIKE '狂%'
-- 查询姓名第二个字为'狂'的学生的所有信息
SELECT * FROM student WHERE `name` LIKE '_狂%'
-- 查询姓名第一个字不为'狂'的学生的所有信息
SELECT * FROM student WHERE `name` NOT LIKE '狂%'
-- 如果用户查询的字符串本身就含有通配符,这时就要用ESCAPE'\'(换码字符)对通配符转义
-- 格式 WHERE `name` LIKE `字符串` ESCAPE'\';
-- 空值 IS NULL , IS NOT NULL
-- 查询地址为空的所有学生的信息
SELECT * FROM student WHERE `address` IS NULL;
-- 多重运算(逻辑运算) AND, OR , NOT
-- 查询姓名为两个字且第一个字为'狂'且年龄大于4的学生的所有信息
SELECT * FROM student WHERE `name`LIKE '狂_' AND age>4;
-- 查询姓名为两个字且第一个字为'狂'和第一个字为'虞'的学生的所有信息
SELECT * FROM student WHERE `name`LIKE '狂_' OR `name` LIKE '虞_';