1。MERGE
2。逻辑结构
逻辑结构 : datebase( sid ) –> schema(就是用户名,例如 scort) -> object ( 例如 table 等等),注意数据字典等是凌驾于schema之上的结构,是用来辅助管理的。
3。约束可以添加,可以删除,可以disable, 但是不可以修改
4。sequence
Sequence numbers are stored and generated independently of tables , Therefore , the same sequence can be used for multiple tables . 但是它也是在 schema 下边的结构,所以,必须使用 GRANT SELECT ON HTNSADM.TC_SCRIPT_ID TO PUBLIC 才能。。。
CREATE SEQUENCE ID
START WITH 1
MAXVALUE 2147483647 MINVALUE 1 NOCYCLE NOCACHE NOORDER ;GRANT SELECT ON ID TO PUBLIC ;
另外可以
drop sequence ID ;
alter sequence id 例如
alter sequence id minvalue 2 ;
5。索引同约束一样,不能修改。只能删除再重新创建
CREATE INDEX index_name ON departments(UPPER( department_name) )
DROP INDEX index_name
6。synonym
synonym好处 : Ease referring to a table owned by another user . Shorten lengthy object names
注意,此别名一般是在拥有者的 schema中创建的。例如htnsadm是拥有者,创建了一个
CREATE SYNONYM HANARO.FRT_BOM FOR FRT_BOM, 这条语句是在 htnsadm这个 schema中的。貌似这个synonym创建反了,而在HANARO这个用户即schema中,根据上面的语法含义,在HANARO这个 schema 中可以直接使用 FRT_BOM内容。正常的应该是在本用户的 schema 下创建,例如 create synonym frt_bom for htnsadm.frt_bom , 这样,才对。
7。相关子查询
1)SELECT column1 , column2
FROM table1 outer --> 有时外部表和内部表是一个表, 所以使用别名好一点 , 必须的用
WHERE column1 operator
( SELECT column1 , column2
FROM table2
WHERE expr1 = outer.expr2 ) ;
这样,每次外部传递参数不一样时,就会返回不一样的结果。即每传一次参数,内部查询就要进行一次。
2)EXISTS
修改上边代码
SELECT column1 , column2
FROM table1 outer --> 有时外部表和内部表是一个表, 所以使用别名好一点 , 必须的用
WHERE EXISTS
( SELECT column1 , column2
FROM table2
WHERE expr1 = outer.expr2 ) ;
逻辑判断有无,速度快。
修改操作 ( 利用相关子查询 ) 在别的表也存在
UPDATE table1 别名1
SET column = ( SELECT expression
FROM table2 别名2
WHERE 别名1.column = 别名2.column ) ;
删除操作 ( 利用相关子查询 ) 在别的表也存在
DELETE FROM table1 别名1
WHERE column operator ( SELECT expression
FROM table2 别名2
WHERE 别名1.column = 别名2.column ) ;