《sql必知必會》讀書筆記1.函式與幾乎所有dbms都等同地支援sql語句(如select)不同,每乙個dbms都有特定的函式。事實上,只有少數幾個函式被所有主要的dbms等同支援。
dbms函式的差異:
可以看到,與sql語句不一樣,sql函式不是可移植的。這表示為特定sql實現編寫的**在其他實現中可能不正常。
2.使用函式
大多數sql實現支援以下型別的函式。
3.文字處理函式
常用的文字處理函式:
select vend_name, upper(vend_name) as vend_name_upcase
from vendors
vend_name vend_name_upcase
bear emporium bear emporium
bears r us bears r us
doll and inc. doll house inc.
4.日期和時間處理函式應用程式一般不使用日期和時間的儲存格式,因此日期和時間函式總是用來讀取、統計和處理這些值。由於這個原因,日期和時間函式在sql中具有重要的作用。遺憾的是,它們很不一致,可移植性最差。
sql serve
select order_num
from orders
where datepart(yy,order_date) = 2012
order_num
20005
20006
20007
20008
20009
access
select order_num
from orders
where datepart(yyyy,order_date) = 2012
這個例子中,datepart()函式返回日期的一部分。datepart()函式有兩個引數,它們分別是返回的成分和從中返回成分的日期。
postgresql類似功能的date_part()函式
select order_num
from orders
where date_part('year',order_date) = 2012
oracleoracle沒有上述兩個函式,不過有幾個可用來完成相同檢索的日期處理函式。
select order_num
from orders
where to_number(t0_char(order_date,'yyyy')) = 2012
在這個例子中,to_char()函式用來提取日期的成分,to_number()用來將提取出的成分轉換為數值,以便能與2012進行比較。
完成相同工作的另一方法是使用between操作符:
select order_num
from orders
where order_date between to_date('01-01-2012')
and to_date('12-31-2012')
在此例子中,oracle的to_date()函式用來將兩個字串轉換為日期。
mysql和mariadb
mysql和mariadb使用者可使用名為year()的函式從日期中提取年份:
select order_num
from orders
where
year(order_date) = 2012
sqlite
select order_num
from orders
where strftime('%y',order_date) = 2012
這裡給出的例子提取和使用日期的成分(年)。按月份過濾,可以進行相同的處理,指定and操作符以及年和月份的比較。
大多數dbms具有比較日期、執行基於日期的運算、選擇日期格式等的函式。
5.數值處理函式
數值處理函式僅處理數值資料。
在主要dbms的函式中,數值函式是最一致、最統一的函式。
SQL 必知必會 筆記 6 使用資料處理函式
與sql 語句不一樣,sql 函式不是可移植的。為特定sql 實現編寫的 在其他實現中可能不正常。因為各個dbms廠商對函式的實現有很大的區別。常用函式1.文字處理函式 2.日期和時間處理函式 日期和時間採用相應的資料型別儲存在表中,每種dbms 都有自己的特 殊形式。日期和時間值以特殊的格式儲存,...
SQL 必知必會 筆記 6 使用資料處理函式
與sql 語句不一樣,sql 函式不是可移植的。為特定sql 實現編寫的 在其他實現中可能不正常。因為各個dbms廠商對函式的實現有很大的區別。常用函式1.文字處理函式 2.日期和時間處理函式 日期和時間採用相應的資料型別儲存在表中,每種dbms 都有自己的特 殊形式。日期和時間值以特殊的格式儲存,...
海量資料處理題目必知必會
或者如下闡述 雪域之鷹 演算法思想 分而治之 hash 1.ip位址最多有2 32 4g種取值情況,所以不能完全載入到記憶體中處理 2.可以考慮採用 分而治之 的思想,按照ip位址的hash ip 1024值,把海量ip日誌分別儲存到1024個小檔案中。這樣,每個小檔案最多包含4mb個ip位址 3....