1. 程式人生 > >20170801上課筆記

20170801上課筆記

log 復數 emp tle times 定義 lba date get

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