SQL讀書筆記(三)

2021-07-10 06:10:24 字數 2521 閱讀 1037

這一篇記下一些計算字段,非常有用,主要是用在我們需要改變查詢結果格式,一下用到的是mysql的語法,筆記大部分還是來自書本原話。。

1、拼接字段

拼接(concatenate)將值聯結到一起(將乙個值附加到另乙個值)構成單個值

mysql 拼接字元函式 concat

mysql 的concat函式可以實現資料庫中字段的自由拼接 並且儲存成臨時字段如何值中存在null也輸出

select id,username,concat( id, 『-』 , username) as truename from pri_admins;

這樣我們輸出的時候格式就會變成 truename輸出

as是別名使用,在下面有解釋

concat_ws函式

concat(separator,str1,str2,…) 代表 concat with separator ,是concat()的特殊形式。第乙個引數是其它引數的分隔符。分隔符的位置放在要連線的兩個字串之間。分隔符可以是乙個字串,也可以是其它引數。

如果引數中存在null,則會被忽略:

select concat_ws(『:』,』1』,』2』,null,null,null,』3』) from test ;

trim函式

trim([ [remstr] from] str)

trim([remstr from] str)

返回字串str,刪除所有 remstr 字首或字尾。如果沒有符 both, leading, 或trailing給出,假定則是both(預設的)。remstr為可任選的,如果未指定,空格被刪除。

預設刪除空格

mysql> select trim(leading 『x』 from 『***bar***』);

bar***

2、使用別名as,這個非常重要,因為我們可能需要我們自己定義輸出的格式,就可以用這個

從前面的輸出可以看到,select語句可以很好地拼接位址字段。但是,這個新計算列的名字是什麼呢?實際上它沒有名字,它只是乙個值。如 果僅在sql查詢工具中檢視一下結果,這樣沒有什麼不好。但是,乙個未命名的列不能用於客戶端應用中,因為客戶端沒有辦法引用它。 為了解決這個問題,sql支援列別名。別名(alias)是乙個欄位或值的替換名。別名用as關鍵字賦予。請看下面的select語句

select concat(vend_name, 』 (『, vend_country, 『)』) as vend_title from vendors order by vend_name;

bear emporium (usa)

bears r us (usa)

doll house inc. (usa)

select語句本身與以前使用的相同,只不過這裡的計算字段之後跟了文字as vend_title。它指示sql建立乙個包含指定計算結果的名 為vend_title的計算字段。從輸出可以看到,結果與以前的相同,但現在列名為vend_title,任何客戶端應用都可以按名稱引用這個列,就像它 是乙個實際的表列一樣。

3、執行算術計算

計算欄位的另一常見用途是對檢索出的資料進行算術計算。舉個例子,orders表包含收到的所有訂單,orderitems表包含每個訂單中的各項物 品。下面的sql語句檢索訂單號20008中的所有物品:

select prod_id, quantity, item_price from orderitems where order_num = 20008;

prod_id quantity item_price

———- ———– ——————–

rgan01 5 4.9900

br03 5 11.9900

bnbg01 10 3.4900

bnbg02 10 3.4900

bnbg03 10 3.4900

item_price列包含訂單中每項物品的單價。如下彙總物品的**(單價乘以訂購數量):

select prod_id,

quantity,

item_price,

quantity*item_price as expanded_price from orderitems where order_num = 20008;

prod_id quantity item_price expanded_price

———- ———– ———— —————-

rgan01 5 4.9900 24.9500

br03 5 11.9900 59.9500

bnbg01 10 3.4900 34.9000

bnbg02 10 3.4900 34.9000

bnbg03 10 3.4900 34.9000

輸出中顯示的expanded_price列是乙個計算字段,此計算為quantity*item_price。客戶端應用現在可以使用這個新計算列,就像使用其他列一 樣。

sql支援表7-1中列出的基本算術操作符。此外,圓括號可用來區分優先順序。

操 作 符

+ 加

- 減

* 乘

/ 除

SQL必知必會讀書筆記(三)

sql 除了可以對列名和計算字段使用別名,還允許給表名起別名。這樣做有兩個主要理由 縮短 sql 語句 允許在一條 select 語句中多次使用相同的表。用自聯結而不用子查詢 自聯結通常作為外部語句,用來替代從相同表中檢索資料的使用子查詢語句。雖然最終的結果是相同的,但許多 dbms 處理聯結遠比處...

讀書筆記 SQL簡介

sql 是用於訪問和處理資料庫的標準的計算機語言。編者注 ansi,美國國家標準化組織 sql 是一門 ansi 的標準計算機語言,用來訪問和運算元據庫系統。sql 語句用於取回和更新資料庫中的資料。sql 可與資料庫程式協同工作,比如 ms access db2 informix ms sql s...

JAVA讀書筆記(三)

string類沒有提供修改乙個已存在的字串中的某乙個字元的方法,例如 string greeting hello 如果想把greeting變成 help 不能直接把greeting的最後一位變成 p 和 而是保留需要的字串,將替換的字串通過 連線在一起。greeting greeting.subst...