《sql必知必會》讀書筆記儲存在資料庫表中的資料一般不是應用程式所需要的格式,下面舉幾個例子。
計算欄位是執行時在select語句內建立的。
1.拼接字段
vendors表包含供用商名和位址資訊。假如要生成乙個**商報表,需要格式化的名稱中列出**商的位置。
拼接:將值聯結在一起(將乙個值附加到另乙個值)構成單個值。
解決方法是把兩個列拼接起來。在sql中的select語句中,可使用乙個特殊的操作符來拼接兩個列。+(在access和sql serve)或 || (在db2、oracle、postgresql、sqlite和open office base),另外在mysql和mariadb中,必須使用特殊的函式。
select vend_name + '(' + vend_country + ')'
from vendors
bear emporium (usa )
bears r us (usa )
doll house inc. (usa )
fun and games (england)
furball inc. (usa )
jouets et ours (france )
下面是相同的語法,但使用的是||語法:
select vend_name || '(' || vend_country || ')'
from vendors
bear emporium (usa )
bears r us (usa )
doll house inc. (usa )
fun and games (england)
furball inc. (usa )
jouets et ours (france )
下面是使用mysql或mariadb時需要使用的語句:
select vend_name , '(' , vend_country , ')'
from vendors
為正確返回格式化的資料,必須去掉這些空格。這可以用sql的rtrim()函式來完成,如下所示:
select
rtrim(vend_name) + '(' + rtrim(vend_country) + ')'
from vendors
bear emporium (usa)
bears r us (usa)
doll house inc. (usa)
fun and games (england)
furball inc. (usa)
jouets et ours (france)
說明:trim函式
rtrim()函式去掉字串右邊的空格。
ltrim()函式去掉字串左邊的空格。
trim()函式去掉字串左右兩邊的空格。
使用別名:
從前面的輸出可以看到,select語句可以很好地拼接位址字段。我們利用as關鍵字為該字段賦予別名,就可以引用它了。
select
rtrim(vend_name) + '(' + rtrim(vend_country) + ')'
as vend_title
from vendors
vend_title
bear emporium (usa)
bears r us (usa)
doll house inc. (usa)
fun and games (england)
furball inc. (usa)
jouets et ours (france)
別名有時也稱匯出列。
別名的其他用途:
1. 實際的表列名包含不合法的字段(如空格)時重新命名它
2. 在原來的名字含混或容易誤解時擴充它。
2.執行算術計算
計算欄位的另一常見用途是對檢索出的資料進行算術計算。
select prod_id,
quantity,
item_price,
quantity*item_price as expended_price
from orderitems
where order_num =2008
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
sql算術操作符:+、-、*、/,此外圓括號原來區分優先順序。 SQL必知必會 建立計算字段 七
儲存在表中的資料都不是應用程式所需要的,我們需要直接從資料庫中檢索出轉換,計算或格式化過的資料,而不是檢索出資料,然後再在客戶端應用程式中重新格式化。與前面介紹的列不同,計算欄位並不實際存在於資料庫表中。注意 1 字段 基本上與列的意思相同,經常互換使用,不過資料庫列一般稱為列,而術語字段通常與計算...
SQL必知必會筆記七(建立計算字段)
一 計算字段 儲存在資料庫表中的資料一般不是應用程式所需要的格式 例如 需要顯示公司名,同時還需要顯示公司的位址,但這兩個資訊儲存在不同的表列中。列資料是大小寫混合的,但報表程式需要把所有資料按大寫表示出來。物品訂單表儲存物品的 和數量,不儲存每個物品的總 用 乘以數量即可 但為列印發票,需要物品的...
MySQL必知必會 建立計算字段
1.計算欄位並不實際存在於資料庫中 2.在資料庫伺服器上完成許多轉化和格式化工作比在客戶機中完成要快得多,因為dbms是設計來快速有效地完成這種處理的 3.拼接,將值聯結到一起構成單個值。mysql中的select語句中,可使用concat 函式來拼接兩個列。4.concat 需要乙個或者多個指定的...