where字句常用的查询条件

626 阅读2分钟

「这是我参与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 '虞_';