– 完整的查询语法组成
select [选项 all|distinct]
字段表达式
from 子句
where 子句
group by 子句
having 子句
order by 子句
limit 子句;
sql完整的查询分为8个部分, 每个部分要么不写,要么必须写在正确的顺序上.
-
select [选项 all|distinct]
-
字段表达式: 表示从数据源中查询哪些字段
写法:
a. 单独列举字段名
select name,sex from student;b. * : 通配符,匹配所有的字段名 select * from student; c. 聚合函数: count(),sum(),avg(),max(),min(),group_concat() # 查询学生人数 select count(*) from student; d. 为字段取别名: 字段名 as 别名 select count(*) as count from student; select count(*) count from student; # as 可以省略
-
from 子句
from 后面接的是数据源, 表示查询数据的来源.数据源: 通常由 一张表,或多张表(指连表查询), 或子查询 组成. 连表查询: 查询学生的姓名及其班级名和教室 select student.name,class.class_name,class.class_room from student join class on student.class_id=class.class_id;
-
where 子句
语法: where 条件表达式
作用: 使用用于对数据源进行过滤和筛选.
过滤和筛选原理: 根据 “条件表达式” 的结果, 如果结果为True,数据被保留;如果结果为False结果被
过滤调用;例如:
select * from student where sex=“女”;
select * from student where 1; # 查询所有数据条件表达式的写法:
1. 比较运算
> >= < <=
特殊: = != <> (也是不等于)查询性别不为男的学生: select * from student where sex != "男"; select * from student where sex <> "男"; 2. 集合判断 in 和 not in 语法: 字段 in (值1,值2,值3....) 语法: 字段 not in (值1,值2,值3....)