首页 > 代码库 > 20170801上课笔记
20170801上课笔记
union
union all
排序相当耗费资源,尽量避免此情况 union同样触发排序
union排序order by 写在最后,排序的是第一条语句此地方应注意
不是必须的步骤尽量避免
intersect 用法与union一样,查询数据为多条语句union all重复的内容
minus用法与union一样,两表重复数据去除,Minus返回的总是左边表中的数据,它返回的是差集。注意:minus有剃重作用//返回第一个表中有,第二个表中没有数据
insert into 表名() values()
insert into 表名 select XXX
update 表 set 修改内容 where
delete from table where
created table xx as select XXX
//复制表到新表,只是复制了内容和结构,约束等并未一同复制
create table xx as select xx where 1=0//不会满足的条件
//只是复制了表结构,未复制数据
alter table my_emp add(department_name varchar2(30));//新加列
truncate table 表名 删除表里所有数据//delete和truncate功能看似一样,实际有差异
1delete是dml语句,需要事务回滚提交才会执行,truncate是ddl语句不需commit
2因此,delete会产生大量undo数据,相当于执行操作的备份数据,即rollback可恢复数据的原因
3delete操作不释放空间,truncate可直接释放控件
4delete可用where truncate直接删除
commit 提交
rollback回滚
ddl语句会将之前未提交的dml语句一同提交
例
update XX set XX=XX
create table XX;
create为ddl语句,执行时会将update的dml语句一起提交
A 原子性
C 一致性
I 隔离性
D 持久性
number(5,2) //5代表总位数,2代表小数点后位数
timestamp //服务器时间 精度高于秒
timestamp with local time zone类型和timestamp with time zone区别
最大区别就是,前者在用户提交时间给数据库的时,该类型会转换成数据库的时区来保存数据,即数据库保存的时间是数据库本地时区,当别的用户访问数据库时Oracle会自动将该时间转换成当前客户端的时间。
修改会话的time_zone值//更改时区值
alter session set time_zone=‘+10:00‘;//时区由东8改为东10//中国为东8
约束
not null //非空
check//为真
行与行之间
primary key(pk)//标示
unique //唯一性约束
表与表之间
foreign key(references)
约束定义方法
deptno int constraint dept_deptno_pk primary key
字段名 类型 关键字 约束名 约束类型
20170801上课笔记