———查询1
- select语句的简单查询
select<字段>,<字段>
from<表>;
select选取的结果不会被保存,结果会被储存在一个结果表中,称为结果集。
select时也可以做简单算术运算,例如使用<字段*0.9>,会返回字段值*0.9
-
- 为select添加选取条件:
select<字段>
from<表>where<条件>;
⚠️注意:
——星号(*)代表全部列的意思,例如select*from,但不建议用select*from,首先,select*会返回一级索引,效率低,其次,用select字段可以减少网络传输。
——DISTINCT可以在结果集中删除重复的数据
select distinct<字段> from;
在使用distinct时,null也被视为一类数据;
distinct关键字只能用在第一个列名之前;
——select表显示的字段顺序由语句中字段的排序决定,AS为字段设定别名
SELECT product_id AS id,
product_name AS name,
purchase_price AS "进货单价"
FROM product;
——sql语句中的注释分为1行注释"-- "和多行注释两种"/*……*/“;
————运算符
- 优先级排序:算术运算符、逻辑运算符、比较运算符、赋值运算符
not是一种广泛的否定,但不能单独使用,对比where not price=100和where price>100 and price<100;
当使用比较运算符时,不会显示null值,is null 和= null是不一样的,null不支持大小/相等判断
null也不等于null,与null比较时如果用比较运算符,会返回null
AND运算符先执行于OR运算符;
————查询2
- 聚合查询
select 聚合函数 from 表;
常用聚合函数:count, sum, avg, max, min
sum, avg函数只适用于数值类型
sum用于非计数字段返回0,而非null
当sum查询出的最终结果为0时,会返回null,如果结果集中含有Null时,会返回0
avg会忽略null值
聚合函数配合distinct去重:count(distinct 字段)
null会进入计数中,对count函数来说是有意义的
- 分组
group by
书写位置: 1.SELECT → 2. FROM → 3. WHERE → 4. GROUP BY
123为筛选数据,4为对筛选出的数据进行处理
DBMS中先执行group by再执行select,所以可以在select中使用在group by中已经使用的别名。
执行顺序:FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
group by的字段需要在select的字段中
having
在group by后使用,用于对分组进行过滤,可以用数字、聚合函数、groupby中指定的列名
- 排序
order by <序列1>,<序列2>
因为执行顺序,所以order by中可以使用别名
升序ASC(默认),降序DESC