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 檢...