sql學習之使用資料處理函式

2021-04-13 23:52:41 字數 2262 閱讀 4343

sql函式存在問題:

每個dbms都有自己特定的函式,事實上,只有少數幾個函式被所有主要的dbms等同的支援,與sql語句不一樣,sql函式不是可移植的

那麼,是否應該使用函式,決定權在於我們自己,如果決定使用函式,應該保證做好**注釋,以便以後能確切地知道所編寫的sql**的含義

那麼現在我們簡單學習下怎麼使用sql函式吧

大多數sql實現支援以下型別的函式:

1用於處理文字串(如刪除或填充值,轉換值為大寫或小寫)的文字函式.

2用於在數值資料上進行算術操作(如返回絕對值,進行代數運算)的數值函式

3用於處理日期和時間值並從這些值中提取特定成分(例如,返回兩個日期之差,檢查日期有效性等)的日期和時間函式

4返回dbms正在使用的特殊資訊(如返回使用者登入資訊)的系統函式.

文字處理函式

例select vend_name ,upper(vend_name) as vend_name_upcase from vendors order by vend_name;

可看出搜尋出來的結果是兩列,第二列為第一列轉換為大寫

注:常用文字處理函式

常用文字處理函式 函式

說明left()(或使用子字串函式)

返回串左邊的字元

length()(也使用datalength()或len())

返回串的長度

lower()(access使用lcase())

將串轉換為小寫

ltrim()

去掉串左邊空格

right()(或使用子字串函式)

返回串右邊字元

rtrim()

去掉串右邊空格

soundex()

返回串的soundex值

upper()(access使用ucase())

將串轉換為大寫

其中soundex是乙個將任何文字轉換為語音表示的字母數字模式演算法,他考慮了類似的發音字元或音節,使得能對串進行發音比較而不是字母比較

比如customers表中有個顧客kid place,聯絡名為michelle green,但是如果這事輸入錯誤,實際聯絡名為michael green,顯然安正確的聯絡名搜尋不會返回資料

那麼我們嘗試下使用soundex(),他匹配所有發音類似michael green 的聯絡名

sleect cust_name,cust_contact from customers where soundex(cust_contact) = soundex('michael green');

日期和時間處理函式

日期和時間採用相應的資料型別儲存在表中,每種dbms都有自己的變體,不幸的是,他們很不一致,移植性很差,比如在sql server和sybase中檢索2023年的所有訂單,為select order_num from orders where datepart(yy,order_date)

=2004;

在access中則應該select order_num from orders where datepart('yyyy',order_date)=2004;

在postgresql中則應該 select order_num from orders where date_part('year',order_date)=2004;

mysql具有各種日期處理 函式,但是沒有datepart.mysql使用者可使用year()的函式從日期中提取年份

select order_num from orders where year(order_date) = 2004;

oracle也沒有datepart函式,不過有幾個可用來完成相同檢索的日期處理函式

如select order_num from orders where to_number(to_char(order_date,'yy'))=2004;

或者select order_num from orders where order_date between to_date('01-jan-2004') and to_date('31-dec-2004');

數值處理函式

常用資料處理函式

abs()

返回乙個數的絕對值

cos()

返回1個角度的余弦

exp()

返回1個數的指數值

pi()

返回圓周率

sin()

返回1個角度的正弦

sqrt()

返回1個數的平方根

tan()

返回1個角度的正切

在主要的dbms中數值函式是最一直最統一的函式

使用資料處理函式

用於處理文字串 如刪除或 填充值,轉換值為大寫或小寫 的文字函式 用於在數值資料上進行算術操作 如返回絕對值,進行代數運算 的數值函式 用於處理日期和時間值並從這些值中提取特定成分 例如,返回兩個日期之差,檢查日期有效性等 的日期和時間函式 返回dbms正使用的特殊資訊 如返回使用者登入資訊,檢查版...

8 使用資料處理函式

與其他大多數計算機語言一樣,sql支援利用函式來處理資料。函式 一般是在資料上執行的,它給資料的轉換和處理提供了方便。8.1 文字處理函式 常見的文字處理函式 表中的soundex需要做進一步的解釋。soundex是乙個將任何文 本串轉換為描述其語音表示的字母數字模式的演算法。soundex考慮了類...

Linux學習之資料處理

grep egrep 過濾 grep 過濾 a10 b10 c10 grep a10 bin bash etc passwd 將包括 bin bash的資訊以及它以下10的資訊都顯示出來 grep b10 bin bash etc passwd 將包括 bin bash的資訊以及它以上10的資訊都顯...