1、select "&1" from '&2' where id=&3; 字段名如果是绑定变量时,不可以用“”号括住,会报错。
应该为 select &1 from '&2' where id=&3;
2、order by 指select list中的顺序,并不是表中实际的列位置
3、比较符号">","="后面只能单行,但可以多列;
若多行可在结果集合前加any或 all,some
4、alter table t1 add constraint pk_t1 primary key (id);
alter table t2 add constraint fk_t2 foreign key (id) references t1(id);
5、left join是以左侧表中记录为全集,加号出现在右侧表的链接列中
6、nextval取的值只有在一个session内才可以用currval伪列引用
7、非空的比较操作为is not null
8、唯一约束、主键约束自动生成unique index
9、describe是ISQLPLUS,用过浏览器执行,oracle产权命令
10、to_char 格式时,'fm9999.99'fm表示去掉前面多余的空格或0.9在整数位是有数字就显示,无数字不显示,小数位无数字显示0
11、nvl2(exp1,exp2,exp3) 如果为null则exp3,否则exp2;nullif(a,b),若a=b,则null,否则a;
12、[%666_]要查出此记录,则需要使用转义字符like '\%___\_' escape '\',其他转义字符也成;
13、set c1=default若有默认值则为默认值,若无,则null;
14、不等值连接:
select * from t1,t2 where t1.c1 between t2.c1 and t2.c2
或 select * from t1 join t2 on t1.c1 between t2.c1 and t2.c2
15、视图支持4种约束(not null,unique,primary,fk),可以加with check option+ with read only;
16、聚合函数不能在where子句中,只能在select list 或者having中
17、子查询分为2类,多行+一行,不管多行还是一行,都可以多个字段。
18、to_char(sysdate,'fmDdspth "of" Month fmhh:mi:ss')
19、同义词的使用场景(1、表名复杂 2、使用其他SCHEMA的对象)
20、升序中NULL是最大值,放在最后
21、表中某个列的NOT NULL约束只能通过MODIFY此列来修改 ,不能check约束实现,是2个不同的概念
22、LPAD等字符串函数,输入参数一定要是字符串,不会隐式转换
23、sequence建立是属于某个SCHEMA下的对象;
24、同一个session中&&x的替换变量只需要输入一次
25、[0-9]数字与字符间自动隐式转化
26、外连接的用途(1、要2个表match and unmatch数据2、连接列有NULL
27、where仅过滤记录,having仅过滤group
28、单行函数、多行函数均不可作用多列,只是返回值一个为1行一个,一个为多行一个。入参为列、表达式、常量、标量均可。
29、子查询的作用是给外查询传出一个值或一组值(可以为多列),但update中当没值传出时并不报错