上一篇写到 WHERE 语句的功能是依据指定条件过滤数据,在上一篇我们都是只设定了一个条件,那么能否实现同时多个条件过滤呢?
这就需要两个特殊的运算符:AND 和 OR
AND & OR
AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
运算符 | 描述 |
---|---|
AND | 过滤出第一个条件和第二个条件都成立的记录。 |
OR | 过滤出第一个条件和第二个条件中任意一个成立的记录。 |
举例:
选取students表中年龄大于22岁,且为男生的学生id和姓名:
SELECT id,name
FROM students
WHERE age > 22 AND gender = '男';
选取students表中姓赵或姓李的学生id和姓名:
SELECT id,name
FROM students
WHERE name LIKE '赵__' or name LIKE '李__';
AND和OR还可以结合起来使用,例如:
查询文科三班和理科三班的女生的姓名,年龄,性别:
SELECT name,age,gender
FROM students
WHERE gender = '女' AND
(clazz = '文科三班' OR clazz = '理科三班');
注意这里 clazz = '文科三班' OR clazz = '理科三班' 外面套了个小括号,表示先进行括号内的条件过滤,再在第一次的结果中进行括号外面的条件过滤。
UPDATE 语句
UPDATE 语句用于更新表中的数据。
语法:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
table_name表示要修改的表名称。
column1, column2…表示要修改的字段名称,可以为多个字段。
value1, value2, …表示要修改的字段值,可以为多个值。
condition:修改条件,用于指定哪些数据要修改。
以students表举例说明:
1.将施笑槐同学的年龄修改为24岁:
UPDATE students
SET age = 24
WHERE name = '施笑槐';
UPDATE students
SET age = 24,clazz = '文科一班'
WHERE name = '施笑槐';
UPDATE语句可以同时修改多个字段值
注意:使用UPDATE语句时必须添加WHERE条件限制,否则会修改表中所有数据行的对应字段!!!另外在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。
DELETE 语句
DELETE 语句用于删除表中的一行数据。
语法:
DELETE
FROM students
WHERE name = '施笑槐';
注意DELETE语句是删除限制条件所匹配到的一整行数据,而不是删除单个字段值,所以DELETE后面不能直接加某个字段名,否则会报错。另外与UPDATE一样,如果不添加WHERE语句,则直接作用于全表,即将整张表的数据删除,只保留表结构!!
重要的事情说三遍
UPDATE语句和DELETE语句在不添加WHERE语句时作用于整张表,请慎用!!
UPDATE语句和DELETE语句在不添加WHERE语句时作用于整张表,请慎用!!
UPDATE语句和DELETE语句在不添加WHERE语句时作用于整张表,请慎用!!
本专栏将持续更新,对数据库SQL感兴趣的同学可以关注一下,谢谢!