MySQL必知必會 第十一章 使用資料處理函式

2021-10-03 15:36:30 字數 2799 閱讀 7897

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

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

(2)用於在數值資料上進行算數操作的數值函式

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

(4)返回dbms正使用的特殊資訊(如返回使用者登入資訊,檢查版本細節)的系統函式

函式說明

left()

返回串左邊的字元

length()

返回穿的串的長度

locate()

找出串的乙個子串

lower()

將串轉換成小寫

ltrim()

去掉串左邊的空格

right()

返回串右邊的字元

rtrim()

去掉右邊的空格

soundex()

返回串的soundex值

substring()

返回子串的字元

upper()

將串轉換成大寫

rtrim() 去除列值右邊的空格

upper()將文字轉換為大寫

select vend_name,upper(vend_name) 

from vendors

order by vend_name

結果返回兩列,一列是正常,一列字母都轉換成大寫

3.soundex()

soundex:將任何文字串轉換為描述其語音表示的字母數字的模式

例:在customers表中,cust_contact資料有個地方記錄錯誤,記錄為y.lee,但實際是y lie,此時直接匹配y lie是不能匹配到的,但是使用soundex()函式,它會匹配所有發音類似y lie的內容。

select cust_name,cust_contact

from customers

where soundex(cust_contact)=soundex('y lie')

函式

說明adddate()

增加乙個日期(天、周等)

addtime()

增加乙個時間(時、分等)

curdate()

返回當前日期

curtime()

返回當前時間

date()

返回日期時間的日期部分

datediff()

計算兩個日期之差

date_add()

高度靈活的日期運算函式

date_format()

返回乙個格式化的日期或時間串

day()

返回乙個日期的天數部分

dayofweek()

對於乙個日期,返回對應的星期幾

hour()

返回乙個時間的小時部份

mintute()

返回乙個時間的分鐘部份

month()

返回乙個日期的月份部份

now()

返回當前日期和時間

second()

返回乙個時間的秒部份

time()

返回乙個日期時間的時間部份

year()

返回乙個日期的年份部份

mysql使用的日期格式:不管是插入、更新、用where過濾,日期格式為yyyy-xx-dd

查詢order_date='2005-09-01』的cust_id,order_num

select cust_id,order_num

from orders

where order_date='2005-09-01'

上述語句只適用於當表中時間資料為2005-09-01 00:00:00時,當時間不是0時,上述語句不能匹配出結果了

此時應該使用時間函式

select cust_id,order_num

from orders

where date(order_date)='2005-09-01'

select cust_id,order_num

from orders

where time(order_date)='00:00:00'

查詢2023年九月的所有訂單

select cust_id,order_num

from orders

where date(order_date) between '2005-09-01' and '2005-09-30'

select cust_id,order_num

from orders

where year(order_date)=2005 and month(order_date)=9

函式

說明abs()

返回乙個數的絕對值

cos()

返回乙個角度的余弦

exp()

返回乙個數的指數值

mod()

返回除操作的餘數

pi()

返回圓周率

rand()

返回乙個隨機數

sin()

返回乙個角度的正弦

sqrt()

返回乙個數的平方根

tan()

返回乙個角度的切

select abs(-3),sqrt(4)

SQL 必知必會第十一課 使用子查詢

select order num from orderitems where prod id rgan01 select cust id from orders where order num in 20007 20008 結合兩句查詢 select cust id from orders wher...

MySQL必知必會 十一 使用子查詢

開始線 查詢 任何sql語句都是查詢。但此術語一般指select語句 列出訂購物品tnt2的所有客戶 1.檢索包含物品tnt2的所有訂單的編號 2.檢索具有前一步列出的訂單編號的所有客戶的id 3.檢索前一步返回的所有客戶id的客戶資訊 現在得到訂購tnt2的所有客戶的id,下一步是檢索這些客戶id...

mysql必知必會 mysql必知必會(四)

十四 理解子查詢 1 通過子查詢過濾 這本書在所有的章節都關連到了資料庫表,訂單資料是儲存在兩個表中,orders表儲存著 訂單號碼 顧客id和訂單日期。個人的訂單列表關連著orderitems表,訂單表沒有儲存顧客資訊,它只是儲存著顧客id,這實際的顧客資訊是儲存在customers表中。現在假設...