摘要:
SELECT * FROM emp A WHERE A.sal < (SELECT AVG(sal) FROM emp B WHERE A.deptno = B.deptno); SELECT A.* FROM emp A, (SELECT deptno, AVG(sal) sal FROM emp GROUP BY deptno) B WHERE A.deptno = B.deptno AND A.sal < B.sal; 大数据下第二种方式效率更高,方法一每条记录都要进行一次select查询与A.SAL做比较. 阅读全文
摘要:
12[ START WITH condition ] CONNECT BY [ NOCYCLE ] conditionThe start with .. connect by clause can be used to select data that has a hierarchical relationship (usually some sort of parent->child (boss->employee or thing->parts).说明: 1. START WITH:告诉系统以哪个节点作为根结点开始查找并构造结果集,该节点即为返回记录中的最高节点。 2. 阅读全文
摘要:
通常情况下,3种查询方式的执行时间:EXISTS <= IN <= JOINNOT EXISTS <= NOT IN <= LEFT JOIN只有当表中字段允许NULL时,NOT IN的方式最慢:NOT EXISTS <= LEFT JOIN <= NOT IN综上:IN的好处是逻辑直观简单(通常是独立子查询);缺点是只能判断单字段,并且当NOT IN时效率较低,而且NULL会导致不想要的结果。EXISTS的好处是效率高,可以判断单字段和组合字段,并不受NULL的影响;缺点是逻辑稍微复杂(通常是相关子查询)。JOIN用在这种场合,往往是吃力不讨好。JOIN的 阅读全文
摘要:
on delete cascade 当你更新或删除主键表时,那么外键表也会跟随一起更新或删除,需要在建表时设置级联属性CREATE TABLE Countries(CountryId INT PRIMARY KEY) INSERT INTO Countries (CountryId) VALUES (1) INSERT INTO Countries (CountryId) VALUES (2) INSERT INTO Countries (CountryId) VALUES (3) CREATE TABLE Cities( CityId INT PRIMARY KEY ,CountryId I 阅读全文