目录
1. select语句基础
select是从表中选取指定数据的意思,通过select语句选取数据的过程被称为query。
select col_name_1,...,col_name_n
from table_name
where expression;
首先添加一个stu_info表如下图所示:
【例子】从stu_info表中查找出age为18岁的学生name
select name
from stu_info
where age = 18;
- 当select后面接
*
时,表示全部选取全部列 - 在
select
和col_name
之间添加distinct
可以去重
2. 算符运算符和比较运算符
-
四则运算符
+
加-
减*
乘/
除
-
比较运算符
=
等于<>
不等于<
小于>
大于<=
小于等于>=
大于等于
【例子】从stu_info表中查找出age大于18岁的学生name
select name
from stu_info
where age > 18;
3. 逻辑运算符
3.1 not,and和or运算符
not
非,表示否定and
与,表示并且or
或,表示或者
【例子】从stu_info表中查找出age不大于18岁的学生name
select name
from stu_info
where not age > 18;
【例子】从stu_info表中查找出age大于18岁并且小于20的学生name
select name
from stu_info
where age > 18 and age < 20;
【例子】从stu_info表中查找出age小于18岁或者大于20的学生name
select name
from stu_info
where age <= 18 or age >= 20;
在同时使用and和or的时候要注意,and运算符的优先级大于or运算符如果想要优先执行or运算,可以使用小括号( )
包裹起来。
4. 聚合查询
4.1 聚合函数
SQL语句中用于汇总数据的函数叫做聚合函数
count
:计算表中的行数sum
:计算表中数值列中数据的和avg
:计算表中数值列中数据的平均值max
:计算表中任意列中数据的最大值min
:计算表中任意列中数据的最小值
【例子】计算表中全部数据的行数
select count(*) from stu_info;
【例子】计算表中age的和
select sum(age) from stu_info;
【例子】计算表中age的平均数
select avg(age) from stu_info;
【例子】查找表中age 的最大值
select max(age) from stu_info;
【例子】查找表中age的最小值
select min(age) from stu_info;
5. 对表分组
5.1 group by 语句
group by语句是用来帮助数据进行分组的。
select col_name_1,...,col_name_n
from table_name
where expression
group by col_name_1,...,col_name_n;
【例子】对age进行分组
select age
from stu_info
group by age;
这里把age分为了三组,18,19,20
5.2 取出特定分组
要是只要取出某些特定的分组,就要使用having关键字。
select col_name_1,...,col_name_n
from table_name
where expression
group by col_name_1,...,col_name_n
having expression;
【例子】取出age等于18的分组并统计分组内的个数
select age,count(*)
from stu_info
group by age
having age = 18;
6. 排序
SQL的执行结果是随机的,如果需要对数据进行排序,使用order by语句。
select col_name_1,...,col_name_n
from table_name
where expression
group by col_name_1,...,col_name_n
having expression
order by expression(DESC); # DESC表示倒叙排列
【例子】对age进行排序,输出name和age
select name,age from stu_info order by age DESC;
select name,age from stu_info order by age;