一、ROWID又称为伪列。是数据库为TABLE增加的一个隐藏的列,列名为ROWID。
二、NOT IN 是不会返回NULL值的。也就是说,当遇到NULL值时,NOT IN返回的是false。
SELECT * FROM TABLEA A WHERE A.NAME NOT IN('KOOK','Z7FLY');
结果返回NAME不是KOOK和Z7FLY的非NULL值。
三、ESCAPE指定转义字符
SELECT * FROM CUSTOMERS WHERE CUSTOMERS.NAME LIKE '%a\_product%' ESCAPE '\';
这里使用ESCAPE选项说明与LIKE操作符一起使用的通配符(本例中是下划线_)前面的反斜杠字符是一个转义字符。说明这 里的_只是一个单纯的字符,而不是表示匹配一个字符的通配符。
四、USING关键字
SQL/92标准中可以使用该关键字来简化查询。但是有以下限制:
--SQL/86
SELECT PRODUCT_TYPE_ID FROM PRODUCTS P,PRODUCT_TYPE PT
WHERE P.PRODUCT_TYPE_ID = PT.PRODUCT_TYPE_ID;
--SQL/92
SELECT PRODUCT_TYPE_ID FROM PRODUCTS P INNER JOIN PRODUCT_TYPE PT
USING (PRODUCT_TYPE_ID);
1、查询必须是等连接;
满足:WHERE P.PRODUCT_TYPE_ID = PT.PRODUCT_TYPE_ID;
2、连接中的列必须同名;
满足:P. PRODUCT_TYPE_ID = PT. PRODUCT_TYPE_ID;
3、SELECT子句中对该列不能使用表名或别名;
满足:SELECT PRODUCT_TYPE_ID (P. PRODUCT_TYPE_ID或者P.PRODUCT_TYPE_ID PTID都是错的)
4、USING子句中对该列不能使用表名或别名,只能单独使用列名。
满足:USING (PRODUCT_TYPE_ID); (P. PRODUCT_TYPE_ID或者PT.PRODUCT_TYPE_ID都是错的)
二、NOT IN 是不会返回NULL值的。也就是说,当遇到NULL值时,NOT IN返回的是false。
SELECT * FROM TABLEA A WHERE A.NAME NOT IN('KOOK','Z7FLY');
结果返回NAME不是KOOK和Z7FLY的非NULL值。
三、ESCAPE指定转义字符
SELECT * FROM CUSTOMERS WHERE CUSTOMERS.NAME LIKE '%a\_product%' ESCAPE '\';
这里使用ESCAPE选项说明与LIKE操作符一起使用的通配符(本例中是下划线_)前面的反斜杠字符是一个转义字符。说明这 里的_只是一个单纯的字符,而不是表示匹配一个字符的通配符。
四、USING关键字
SQL/92标准中可以使用该关键字来简化查询。但是有以下限制:
--SQL/86
SELECT PRODUCT_TYPE_ID FROM PRODUCTS P,PRODUCT_TYPE PT
WHERE P.PRODUCT_TYPE_ID = PT.PRODUCT_TYPE_ID;
--SQL/92
SELECT PRODUCT_TYPE_ID FROM PRODUCTS P INNER JOIN PRODUCT_TYPE PT
USING (PRODUCT_TYPE_ID);
1、查询必须是等连接;
满足:WHERE P.PRODUCT_TYPE_ID = PT.PRODUCT_TYPE_ID;
2、连接中的列必须同名;
满足:P. PRODUCT_TYPE_ID = PT. PRODUCT_TYPE_ID;
3、SELECT子句中对该列不能使用表名或别名;
满足:SELECT PRODUCT_TYPE_ID (P. PRODUCT_TYPE_ID或者P.PRODUCT_TYPE_ID PTID都是错的)
4、USING子句中对该列不能使用表名或别名,只能单独使用列名。
满足:USING (PRODUCT_TYPE_ID); (P. PRODUCT_TYPE_ID或者PT.PRODUCT_TYPE_ID都是错的)