oracle使用筆記

2021-08-21 04:36:30 字數 3827 閱讀 3567

1、scott解鎖

alter user scott identified by tiger;

alter user scott account unlock;

2、導表

@d:/oracle/table.sql;

3、檢視表結構

desc table; 

4、連線資料

'hello' || 'world'

5、去重

distinct column

6、日期轉換

to_char(date,'yyyy-mm-dd')

7、轉義字元

like '%\_%' escape '\'

8、查詢日期94年的

like '%94'

9、字元函式lower,upper,initcap

initcap('hello world') --hello world

10、concat連線

concat('hello','world')  --helloworld

11、substr擷取

substr('helloworld',2,4) --ello

12、length長度

length('helloworld') --10

13、instr某字元首次出現的位置

instr('helloworld','w') --6 若沒有返回0

14、rpad,lpad 字元補位

rpad(12000,10,'*')   --12000*****

lpad(12000,10,'*')   --*****12000

15、trim 去首位字元

trim('h' from 'hellohello') --ellohello

16、replace替換

replace('hellohello','h','x') --xelloxello 

17、數字函式round

round(155.555) -- 156

round(155.555,2) --155.56

round(155.555,-2) --200

18、mod取餘

mod(1100,300) --200

19、months_between兩個時間相差多少個月

months_between(date1,date2)

20、add_months 給日期加月

add_months(sysdate,12)

21、next_day 下乙個星期幾

next_day(sysdate,1)  --下乙個星期日

22、last_day 月的最後一天

last_day(sysdate)-1  本月倒數第二天

23、round 捨入時間

round(sysdate,'hh') 

24、to_char

to_char(1234567.89,'l999,999,999,99) --¥1,234,567.89

to_char(1234567.89,'000,000,000,00) --001,234,567.89

25、to_number

to_number('¥1,234,567.89','l999,999,999,99')  --1234567.89

to_number('001,234,567.89','000,000,000,00) -- 1234567.89

26、nvl 將空值轉化

nvl(column,0)

nvl(to_char(number),'abc')  --如果number是空,顯示abc

27、nvl2 類似三目

nvl2(column,'a','b') --如果column不為空顯示a,為空顯示b

28、nullif

nullif('e1','e2') --如果e1等於e2 返回null 否則返回e1

29、coalesce

coalesce(a,b,c) --如果a為空返回b如果b為空返回c

30、case when then else end

case column when 1 then 1 else 2 end 如果列值等於1顯示1,否則顯示2

31、decode

decode(column,1,1,2,2,3) 如果列值等於1顯示1,如果等於2顯示2否則顯示3

32、truncate,delete

truncate table name    --清空表

delete from table    --清空表,可以rollback

33、add

alter table name add(email varchar2(10))    --新增字段

34、modify

alter table name modify(email varchar2(20) default '[email protected]')

35、rename

alter table name rename column email to new_email    --改欄位名

rename stu1 to stu2     --改表/物件名    

36、constraint

id number(8) constraint tn_id_uk unique    --列約束

constraint tn_id_uk check(id > 0)    -表約束

37、級聯刪除和制空

on delete set null    級聯制空

on delete cascade    級聯刪除

38、許可權

grant create view to scott    --建立檢視許可權

39、檢視

create or replace view 

with read only    --唯讀

40、序列

create sequence empseq

increment by 10 --每次增長10

start with 10   --從10開始增長

maxvalue 100    --提供最大值

cycle           --需要迴圈

nocache         --不需要快取登入

41、索引

create index emp_id_idx on emp(id)    --為id列建立索引

42、同義詞

create synonym e for emp    --同義詞

43、建立使用者

create user admin identified by 123    

44、許可權

grant create session to admin    --授予登入許可權 

grant create table to admin    --建表許可權

45、表空間

alter user aojn quota 5m(unlimited) on users

46、角色

create role manager    --建立角色manager

grant create table,create view to manager    --將建立表,建立檢視許可權賦予角色

grant manager to admin    --將角色賦予使用者

47、分配物件許可權

grant select,update on scott.emp to admin    --分給admin scott使用者emp表得檢視更新許可權  

revoke select on scott.emp from admin  --收回許可權

with grant option    --admin還可以將許可權分給別人

Oracle 使用筆記

原理 for each row r a in table a outer table for each rowr bintable b inner table ifr ajoin withr bthen return r a r b 適用範圍 a.outer table很小 or b.inner t...

oracle使用筆記

一.判斷某個欄位是另外的值的時候,返回另外的值 decode函式 decode value,if1,then1,if2,then2,if2,then2,else 表示如果value等於if1時,decode函式的結果返回then1,如果不等於任何乙個if值,則返回else。參考文章 二.oracle...

Oracle使用筆記

1.nvl 函式 lnv val,rep val if val 字段值 null 返回 rep val 例 user表 id name age 1 atimo 18 2 null 20 select nvl name,sys name from user where id 2 結果 sys name...