《sql必知必会》这本书草草看完,感觉还不错,内容比较基础和全面,以下是自己的学习笔记:
- distinct 关键字必须放在查询字段的最前面,作用于其后的所有查询字段(也就是查询出其后字段组成集合不同的就ok);
- 单引号 sql中用单引号区分数字和字符,双引号不行;
- order by 其后除了跟列名进行排序外,还可以跟序号(1,2,3这种,表明要排序列名,1代表第一列),不过这种方法不是很好,用的少;
- or 和 and 当where后跟多个查询条件由or和and 连接时,and的优先级较or高,所以要适当使用括号控制执行顺序;
- %通配符 把通配符置于开始处(左模糊)搜索起来是最慢的,除了%匹配0个1个或多哥,还有下划线 _ 可以用于匹配1个字符;
- max() 一般用于返回最大的数值或日期,在用于文本数据时,返回按该列排序后的最后一行;
- group by, group by 子句必须出现在where子句之后,order by 子句之前;
- having 和 where 的差别,where在数据分组前进行过滤,having在数据分组后进行过滤。where排除的行不包括在分组中;
- 表别名,Oracle中表别名没有as,直接跟表别名即可;
- select子句顺序:
子句 | 说明 | 是否必须使用 |
---|---|---|
select | 要返回的列或表达式 | 是 |
from | 从中检索数据的表 | 仅在从表选择数据时使用 |
where | 行级过滤 | 否 |
group by | 分组说明 | 仅在按组计算聚集时使用 |
having | 组级过滤 | 否 |
order by | 输出排序顺序 | 否 |