语法:SELECT列名FROM表名【WHERE–>GROUP BY–>HAVING–>ORDER BY–>LIMIT】
SELECT selection_list/要查询的列名称/
FROM table_list/要查询的表名称/
WHERE condition/行条件
GROUP BY grouping_columns/对结果分组/
HAVING condition/分组后的行条件
ORDER BY sorting_columns/对结果排/序
LIMIT offset_start, row_count/结果限定/
- 基本查询
select * from test.
select 字段一,字段二 from test;
select distinct 字段 from test;
//给字段取别名
select 字段一 别名1,字段二 别名二 from test;
select 字段一 as 别名1,字段二 as 别名二 from test;
2.条件查询
比较运算符
= != > < >= <= ;
between A and B;
in(值1,值2,值3);
SELECT * FROM t_user WHERE PASSWORD IN (119,120,123);
is null;;
is not null;
关系运算符
and or not;
判断时,可用算数运算符;
+ - * / %; ifnull(x,0); 如果x是null,用0替换;
3.模糊查询
通配符
where name like '%q%';-- 和where like 一起用
_ : 代表一个字符 代表要查询的的字母前后只能有一个字符
% : 代表任意字符 代表要查询的字符前后可以有很多个字符.
4.排序
order by 字段 asc/desc
order by 字段1 asc, 字段2 desc
order by 字段1,字段2 -- 先按照字段1排序,如果字段1相同,再按字段2排序.
5.聚合函数
count(); 统计不为null的行数
max(); 求字段的最大值
min(); 求字段的最小值
sum(); 求字段和
avg(); 求字段的平均值
# 当前日期 curdate();
# 当前时间 curTime();
# 当前日期和时间 NOW();
6.分组查询
group by 字段; 根据字段来分组;
7.分页查询
limit 纪录起始位置,纪录条数;
8.连接查询
内连接: inner join
select * from A,B
select * from A inner join B on A.b = B.b -- SQL标准语法
外连接: 左右外连接
select * from A left join B on A.b = B.b
select * from A right join B on A.b = B.b
案例:
teacher/class/ teacher_class 三表的连接查询; 查看某某老师负责哪些班级授课