ORACLE SQL常用五大注意点
来源:互联网 发布:淘宝信誉度等级表 编辑:程序博客网 时间:2024/05/20 15:37
1.-COUNT(expr) 返回用expr 标识的列所含非空行的数量。所以有时候为了节约性能不用count(*),但是用COUNT(expr) expr不用*时最好用主键,以防丢失记录。有的人经常在项目中发现总数和列表的记录对不上可能就是这个原因。
2. GROUP BY注意点
– GROUP BY子句后的列可以不在SELECT语句中出现。
– SELECT子句中出现的非分组函数列必须在GROUP BY子句
中出现
3.Oracle查询语句的执行顺序
– FROM WHERE GROUP BY SELECT ORDER BY
总结SELECT语句执行过程:
– 通过FROM子句中找到需要查询的表;
– 通过WHERE子句进行非分组函数筛选判断;
– 通过GROUP BY子句完成分组操作;
– 通过HAVING子句完成组函数筛选判断;
– 通过SELECT子句选择显示的列或表达式及组函数;
– 通过ORDER BY子句进行排序操作
4.Oracle解析SQL的顺序
ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句
中写在最后的表(基础表driving table)将被最先处理. 在FROM子句中包含多个表的
情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运
用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并
对记录进行排序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第
二个表中检索出的记录与第一个表中合适记录进行合并.
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须
写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在
WHERE子句的末尾
项目中经常有人以为ORACLE从上至下执行,因此写出的SQL容易对性能造成一定影响。
5.外部连接运算符
只能放在连接条件表达式的一侧,即:缺少相关连接信息的表一侧。
它能返回该表中那些在另一个表中没有得到匹配的记录。
所有部门信息,不管部门是否有员工。
SELECT e.last_name, e.job_id, e.department_id,
d.department_name
FROM employees e, departments d
WHERE e.department_id(+) = d.department_id;
所有员工信息,不管员工是否有部门。
SELECT e.last_name, e.job_id,
e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id= d.department_id(+);
- ORACLE SQL常用五大注意点
- 五大数据库常用SQL比较(五)
- 五大数据库常用SQL比较(一)
- 五大数据库常用SQL比较(二)
- 五大数据库常用SQL比较(三)
- 五大数据库常用SQL比较(四)
- 五大数据库常用SQL比较(六)
- 常用的SQL语句和SQL2005注意点
- Oracle index】SQL语句利用函数索引注意点
- kill常用注意点
- ORACLE基础SQL,常用语句大集合
- Oracle中的注意点
- Oracle新手注意点
- oracle 注意点汇总
- SQL注意点
- SQL注意点
- sql 语句注意点
- sql中的注意点
- C语言学习之内存管理函数malloc()和free()
- Java中main()的理解
- socketpair的问题
- 程序的内存分配(转)
- WinRT:将RESX的Designer.cs改造给RESW资源文件使用
- ORACLE SQL常用五大注意点
- socket通讯,可以相应多个客户端源码
- C++继承的一些知识
- LIS 算法解析
- 我的博客旅行之Android环境搭建
- 判断三角形
- C#简单的面试题目(四)
- 大整数加法
- PHP5.4上传进度支持(Upload progress in sessions)