条件查询: (where)(很重要)
一些常用的比较运算符:
运算符 | 说明 |
>, >=, <, <= | 大于,大于等于,小于,小于等于 |
= | 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL |
<=> | 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1) |
!=, <> | 不等于 |
BETWEEN a0 AND a1 |
范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1) |
IN (option, ...) | 如果是 option 中的任意一个,返回 TRUE(1) |
IS NULL | 是 NULL |
IS NOT NULL | 不是 NULL |
LIKE | 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字 符 |
常用的逻辑运算符:
运算符 | 说明 |
AND | 多个条件必须都为 TRUE(1),结果才是 TRUE(1) |
OR | 任意一个条件为 TRUE(1), 结果为 TRUE(1) |
NOT | 条件为 TRUE(1),结果为 FALSE(0) |
注:
1. WHERE条件可以使用表达式,但不能使用别名。
2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
条件查询:
比如查询英语不及格的同学及英语成绩 ( < 60 )
select name,english from student where english<60;
又或者语文成绩比英语好的:
select name,chinese,english from student where chinese>english;
又或者总分在200以下的:
select name,chinese+math+english from student where chinese+math+english>200;
或者查询语文和英语都在80以上的:
select name,chinese,english from student where chinese>80 and english>80;
或者查询语文或英语在80以上的:
select name,chinese,english from student where chinese>80 or english>80;
范围查询:
或者找语文成绩在80到90之间的:
select name,chinese from student where chinese between 80 and 90;
and也可以实现:
select name,chinese from student where chinese>=80 and chinese <=90;
然后我们可以查询语文成绩是88,82的学生:
select name,chinese from student where chinese in (88,82);
用or也可以实现:
select name,chinese from student where chinese=88 or chinese=82;
模糊查询:
模糊查询用like,当加%的时候表示%位置可以是任意个字符,用_代表只能是一个字符,并且要严格遵守位置要求:
select name from student where name like '张%';
如果只是想查询一个张?这样的名字:
select name from student where name like '张_';
NULL 的查询:
查询数学成绩为null的同学:
select name from student where math is null;
同理,不为空的数学成绩的学生:
select name from student where math is not null;
分页查询:LIMIT:
语法定义:
select ....from table_name [where....] [order by....] limit n offset s;
意思是从 s行开始,筛选 n 条结果。
如果去掉s,就是从0开始,筛选n条结果。
如以id为序查看前三个:
select id,name,chinese,math,english from student order by id limit 3 offset 0;
修改(Update):
语法形式:
update 表 set 字段1=value1, 字段2=value2... where 条件
例如把王五的数学成绩改为66:
update student set math=66 where name='王五';
又或者:将总成绩倒数前三的 3 位同学的数学成绩加上 5 分
update student set math=math+10 order by chinese+math+english limit 3;
删除(Delete):
注意:我们这里删除的是表的数据,实际的表依然存在,如果需要删除表,需要使用drop
语法形式:
delete from 表 where 条件
如:删除张三的信息:
delete from student where name='张三';
删除整个表的数据:
delete from student;
只是删除了数据,表还在!!!
好的,以上就是MySQL数据库(表的CRUD基础操作(最常用))的全部内容了,希望对大家能有所帮助,留下你的点赞和收藏吧!!!