不写具体列名要确保字段都对应正确
-- 假设你有一个名为 "employees" 的表,有多个列
INSERT INTO employees
VALUES (101, 'Alice', 'Manager', 50000);
-- 假设你有一个名为 "students" 的表,有 id、name 和 age 列
INSERT INTO students (name, age)
VALUES ('John', 20);
INSERT INTO students (name, age)
VALUES
('John', 20),
('Alice', 22),
('Bob', 21),
('Emma', 23);
使用通配符*
select * from 表名;
select 列名1,列名2,... from 表名;
select id,name,10 from user;
-- 打印id列,name列,还有"10"列这列每行数据都是10
select id,name,english+10 from exam;
-- 打印id列,name列,(english+10)列这列每个数据都是原始的english数据+10
select id,name,chinese+math+english from exam;
-- 同理
为查询结果中的列指定别名,结果集中以别名作为该列的名称
select id,name,chinese+math+english as '总分' from exam;
对某列数据进行去重, 针对的是每行所有的列数据
select id,math from exam;
-- 当math有重复的时候,都会打印
select distinct id,math from exam;
-- 当id和math完全重复时只显示一个
select name,math from exam order by math ASC;
-- 按math升序排序
select name,chinese from exam order by chinese DESC;
-- 按chinese降序排序
select name,chinese+math+english as total from exam order by total DESC;
-- order by 后面也可以写表达式
select name,chinese,math,english from exam order by chinese DESC,math ASC,english ASC;
-- 先按chinese降序排序,当分数相同时再按math升序排序,要是又一样按english升序排序
运算符 | 说明 |
---|---|
>, >= <,<= | 字面意思 |
= | 等于 |
null不安全, null=null结果是null | |
<=> | 等于 |
null安全, null=null结果是true | |
!=, <> | 不等于 |
between A and B | 如果x属于[A,B], 返回true |
in (A,B,C,D,…) | 如果x属于A,B,C,D,…其中一个就返回true |
is null | 字面意思 |
is not null | 字面意思 |
like | 模糊匹配 |
% 表示0~任意多个字符 | |
_表示任意一个字符 | |
and | 字面意思 |
or | 字面意思 |
not | 字面意思 |
-- 按id分页, 每页3个记录, 分别显示1,2,3页
-- 第1页
select * from exam order by id limit 3 offset 0;
-- 第2页
select * from exam order by id limit 3 offset 3;
-- 第3页
select * from exam order by id limit 3 offset 6;
-- limit限制每页数量, offset表示从第几行开始显示
-- 从0开始往后查3条
select * from exam order by id limit 0,3;
要配合where限定条件找到需要修改的数据
update 表名 set 列名=数据 (限定条件);
update exam set math=99 where name='张三';
update exam set math=99,chinese=88 where name='李四';
-- 将总成绩倒数前三的人数学成绩加10分
update exam set math=math+10 order by(chinese+math+english) ASC limit 3;
要配合where限定条件找到需要修改的数据
delete from 表名 (where) (order by) (limit)