Oracle學習筆記(十七)

2021-08-30 12:49:46 字數 1864 閱讀 8760

103). date,timestamp,interval

這三個是oracle

處理時間方面的型別。從字面上面,就可以很清楚的明白這其中的區別。date

是正常的時間。timestamp

是時間戳。而interval

則是表示一段時間。覺得分割的好細緻

還有一點需要明白的是,在資料庫中,儲存的時間無論你用哪一種格式進入,其底層的儲存方式都會基本相同。在書中的p525

左右,會有一些如何存放的介紹。我覺得很有意思。

104)date

型別。主要是函式

todate(strdate,dateformate)  eg, todate(』22-jun-2005』,』dd-mon-yyyy』)

tochar(date,flang)  eg, tochar(』22-jun-2005』,』yyyy』)

。這裡會是2005

。取年份。

trunc(date

,flag)   eg trunc(』22-jun-2005』,』y』)

。這裡會是2005

。取年份。

這裡要說明一下,在日期比較,特別是拿日期的一部分進行比較時,trunc

要比tochar

效率高。eg

。trunc(』22-jun-2005』,』y』) = to_date(』01-jan-2005』,』dd-mon-yyyy』)

105)date

日期的加減

書中提供了這樣的建議

1.用numtodsinterval

內建函式來增加小時,分鐘和秒

2.加乙個簡單的書來表示天

3.用add_month

內建函式來增加月和年

時間差months_between(date1,date2)  

月份之差

numtodsinterval(date1-date2,』day』) days 

天數差numtoyminterval(months_between(date1,date2),』month』) days

這裡不是很明白,具體可以看書p532

106)timestamp

宣告時timestamp(n) n

表示精度,越高,精度越高如果為0

,基本和上算個date

。不過timestamp

有兩個子型別。分別為with time zone

和with local time zone

。這兩個子類,我看的不是很清楚。

107)interval

型別。interval year(n) to month n

表示年份的長度

interval day(n) to second(m)

這是其兩種定義的方式。

numtodsinterval(date1-date2,』day』)

字串轉換到其的函式

108)lob

型別放入大物件的型別。支援4

中。clob

,字元lob

nclob

,類似於varchar

和nvarchar

的關係blob ,

二進位制lob

bflie

二進位制檔案lob

其實現起來還是相當的複雜。但是應用還是相對簡單的。不過具體實現看的不是很懂。感覺有點偏向於dba

的工作不過有一點,就是enable storage in row

與disable storage in row

的區別要注意。前者效率高。

從p553

開始,講述了各個子句的用法。

109)rowid/urowid

rowid

,簡單的說就行在資料庫中的唯一標識和物理相關資料有關。

oracle學習筆記 十七 外來鍵約束

建立兩張表,新增外來鍵約束 customers 使用者表,一的一方 orders 訂單表,多的一方 sql create table customers 2 id number 3 primary key,3 name varchar2 4 not null unique 4 表已建立。sql in...

Oracle學習筆記第十七天

語法 create or replace function function name param1,param2 函式名 引數 return is as 返回值型別 local declarations 變數宣告 begin executable statements return result ...

oracle學習記錄之十七

使用isql plus 檢視埠配置 d oracle product 10.1.0 db 1 install 下的portlist.ini ultra search http 埠號 5620 enterprise manager agent port isql plus http 埠號 5560 檢...