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上課筆記