Select语句(1)
基本select语句
SELECT [DISTINCT] *|{column1, column2. column3..}FROM table;
select 指定查询哪些列的数据。
column指定列名。
*号代表查询所有列。
from指定查询哪张表。
DISTINCT可选,指显示结果时,是否剔除重复数据
Select语句(2)
在select语句中可使用表达式对查询的列进行运算
SELECT * |{column1|expression, column2|expression,..}
FROM table;
在select语句中可使用as语句
SELECT column as 别名 from 表名;
Select语句(3)
使用where子句,进行过滤查询。练习:
查询姓名为XXX的学生成绩
查询英语成绩大于90分的同学
查询总分大于200分的所有同学
Select语句(4)
在where子句中经常使用的运算符
比较运算符
> = =
大于、小于、大于(小于)等于、不等于
between …and…
显示在某一区间的值
in(set)
显示在in列表中的值,例:in(100,200)
like ‘张pattern’
模糊查询%_
is null
判断是否为空
select * from user where id is null
ifnull(原值,替代值)
如果原值为null,则使用代替值
select ifnull(score,0) from exam;
逻辑运算符
and
多个条件同时成立
or
多个条件任一成立
not
不成立,例:where not(salary>100);
Like语句中,% 代表零个或多个任意字符,_ 代表一个字符,例first_name like ‘_a%’;
Select语句(5)
使用order by 子句排序查询结果。
SELECT column1, column2. column3..
FROM table;
order by column asc|desc
Order by 指定排序的列,排序的列既可是表中的列名,也可以是select 语句后指定的列名。
Asc 升序(默认)、Desc 降序
ORDER BY 子句应位于SELECT语句的结尾。
聚集函数-count
count(列名)返回某一列,行的总数
Select count(*)|count(列名) from tablenam [WHERE where_definition]
聚集函数-SUM
Sum函数返回满足where条件的行的和
Select sum(列名){,sum(列名)…} from tablename[WHERE where_definition]
聚集函数-AVG
AVG函数返回满足where条件的一列的平均值
Select avg(列名){,avg(列名)…} from tablename [WHERE where_definition]
聚集函数-MAX/MIN
Max/min函数返回满足where条件的一列的最大/最小值
Select max(列名)from tablename [WHERE where_definition]
Select语句(6)分组操作
使用group by 子句对列进行分组
SELECT column1, column2. column3..
FROM table
group by column having ...
使用having 子句 对分组结果进行过滤
where和having区别:where在分组前进行条件过滤,having在分组后进行条件过滤。使用where的地方都可以用having替换。但是having可以使用分组函数,而where后不可以使用。