select 字段1,字段2... from 表名;
select *from 表名;
select 字段1 [as 别名1],字段2 [as 别名2] ... from 表名;
as 可以省略 3. 去除重复记录
select distinct 字段列表 from 表名;
select 字段列表 from 表名 where 条件列表;
| 比较运算符 | 功能 |
|---|---|
| > | 大于 |
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
| = | 等于 |
| != 或 <> | 不等于 |
| BETWEEN ... AND ... | 在某个范围之内(含最小、最大值) |
| IN(...) | 在 in 之后的列表中的值,多选一 |
| LIKE | 模糊匹配(_匹配单个字符,%匹配任意个字符) |
| IS NULL | 是 NULL |
| 逻辑运算符 | 功能 |
|---|---|
| AND 或 && | 并且(多个条件同时成立) |
| OR 或 || | 或者(多个条件任意一个成立) |
| NOT 或 ! | 非,不是 |
For example
select * from emp where name like '__';
#查询名字为两个字的员工信息
select * from emp where idcard like '%x';
#查询身份证带x的员工信息
| 函数 | 功能 |
|---|---|
| count | 统计数量 |
| max | 最大值 |
| min | 最小值 |
| avg | 平均值 |
| sum | 求和 |
select 聚合函数(字段列表) from 表名;
null值不参与聚合函数计算
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
For example
select address,count(*) as address_count from emp where age > 45 group by address having address_count >= 3;
#查询年纪大于45岁,根据地址分组,查询员工数量大于等于3的地址
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
For example
select * from emp order by age asc;
select * from emp order by age;
#以上排序结果相同,asc为默认排序
select * from emp order by age asc,entrydate desc;
#先根据年龄升序排序,再进行入职时间降序排序
select 字段列表 from 表名 limit 起始索引,查询记录数;
注意
For example
select * from emp limit 0,10;
select * from emp limit 10;
#结果相同
select * from emp limit 10,10;
#查询第2页员工信息,每页记录10条
select * from emp where gender = '女' && age in (20,21,22,23);
select * from emp where gender = '男' && age between 20 and 40 && name like '___';
select genderm,count(*) from emp where age < 60 group by gender;
select name , age from emp where age <= 35 order by age asc,entrydate desc;
select * from emp where gender = '男' && age between 20 and 40 order by age asc,entrydate desc limit 0,5;
本文章使用limfx的vscode插件快速发布