003-select

1. 1. 基本语法

select 列1,列2,... from 表名 where 条件;

说明:

2. 常见的比较运算符

  1. 等于号 =
  2. 不等于号 != 或者 <>
  3. 大于 >
  4. 小于 <
  5. 大于等于 >=
  6. 小于等于 <=
  7. between ... and ... 检查某个字段是否在指定范围内(包括边界)
  8. IN select * from 表名 where id in (10,20,30,50);
  9. NOT IN
  10. like
    • 通常与通配符一块使用:(%,_)
    • % 匹配0或多个字符
    • _ 匹配一个字符
    • 示例:select * from 表名 where 列名 like '%张%'
    • 查找某列中包含 的所有行
  11. is null
  12. is not null

3. 常用的复合条件

  1. and连接多个条件,所有条件都为true时,结果才为true
  2. or
  3. not如果not后面为true,not会使其变为false
  4. ()组合条件,确保优先级
  5. xor异或运算,相同返回false,不同返回true

4. 函数

4.1. 聚合函数

  1. count() 用来统计记录数量的 , 忽略null
    • select COUNT(id) FROM user;
  2. sum() 对某一列的值进行求和
    • SELECT sum(score) FROM user2;
  3. avg() 求某一列的平均数
    • SELECT avg(score) FROM user2;
  4. max() 求最大值
    • SELECT max(score) FROM user2;
  5. min() 求最小值
    • SELECT min(score) FROM user2;
select 列名1,聚合函数(列名) from 表名 
where 条件 
group by 列名1,列名2 
having 条件;
select 列名1,列名2,聚合函数(列名) from 表名
where 条件
order by 列名1[asc/desc],列名2[asc/desc];
select 列名1,列名2 from 表名
where 条件
limit n1,n2; -- n1表示查询结果的索引值,从0开始,n2表示每页显示多少条查询结果
-- 实际开发中n1 =(当前页数-1)* n2
SELECT DISTINCT username FROM user2;

4.2. 时间函数

4.3. 字符串的函数

4.4. 数学函数

5. 多表联查

5.1. 内连接

select 列1,列2,...
from 表A
inner join 表B
on 表A.关联列 = 表B.关联列 

5.2. 外连接

5.2.1. 左连接

select 列1,列2,...
from 表A
left join 表B
on 表A.关联列 = 表B.关联列 

5.2.2. 右连接

select 列1,列2,...
from 表A
right join 表B
on 表A.关联列 = 表B.关联列 

6. 子查询