where字句常用的查询条件
查询条件 | 谓词 |
---|---|
比较 | = , > , < , >= , <= , (<> , !=不等于) |
确定范围 | BETWEEN AND(相当于闭集合[BETWEEN,AND]) , NOT BETWEEN AND(不属于闭集合[BETWEEN,AND]的范围) |
确定集合 | IN , NOT IN |
字符匹配 | LIKE NOT LIKE 通配符 % ,_ |
多重运算(逻辑运算) | 与AND(&&), 或OR(|| ) , 非NOT(!) ,异或XOR |
空值 | IS NULL , IS NOT NULL ,ISNULL() |
使用案例
-- 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;
SELECT * FROM student WHERE ISNULL(address);
-- 多重运算(逻辑运算) AND, OR , NOT
-- 查询姓名为两个字且第一个字为'狂'且年龄大于4的学生的所有信息
SELECT * FROM student WHERE `name`LIKE '狂_' AND age>4;
-- 查询姓名为两个字且第一个字为'狂'和第一个字为'虞'的学生的所有信息
SELECT * FROM student WHERE `name`LIKE '狂_' OR `name` LIKE '虞_';