首頁 > 易卦

資料分析人必掌握的資料庫語言——SQL第四期!

作者:由 戎易大資料 發表于 易卦日期:2022-12-12

sql中欄位是什麼

本篇文章圍繞SQL,重點為大家介紹

建立計算欄位、使用函式處理資料和彙總資料。

資料分析人必掌握的資料庫語言——SQL第四期!

01 建立計算欄位

什麼是計算欄位?如何建立計算欄位?以及如何從應用程式中使用別名引用它們?下面就為大家解答下剛剛的幾個問題。

計算欄位

儲存在資料庫表中的資料一般不是應用程式所需要的格式,舉兩個例子:

需要顯示公司名,同時還需要顯示公司的地址,但這兩個資訊儲存在不同的表列中。

列資料是大小寫混合的,但報表程式需要把所有資料按大寫表示出來。

上述例子中,儲存在表中的資料都不是應用程式所需要的。我們需要直接從資料庫中

檢索出轉換、計算或格式化過的資料

,然後再在客戶端應用程式中重新格式化。

拼接欄位

假如要生成一個供應商報表,需要在格式化的名稱中列出供應商的位置。此報表需要一個值,而表中資料儲存在兩個列

vend_name

vend_country

中,我們該如何建立這個組合值呢?

在SQL中的SELECT語句中,可使用一個特殊的運算子來拼接兩個列。

根據你所使用的DBMS,此運算子可用加號

(+)

或兩個豎槓

(||)

表示。

SQL Server

使用

+

號,

DB2、Oracle、PostgreSQL和SQLite

使用

||

,在

MySQL

MariaDB

中,必須使用特殊的

函式

+號(多數DBMS使用這種語法):

SELECT vend_name + ’ (’+ vend_country + ’)’

FROM Vendors

ORDER BY vend_name

||語法:

SELECT vend_name || ’ (’ || vend_country ||’)’

FROM Vendors

ORDER BY vend_name

使用MySQL或MariaDB時需要使用的語句:

SELECT Concat(vend_name, ’ (’ , vend_country, ’)’)

FROM Vendors

ORDER BY vend_name

執行算術計算

計算欄位的另一常見用途是對檢索出的資料進行算術計算。

舉個例子,Orders表包含收到的所有訂單,OrderItems表包含每個訂單中的各項物品。下面的SQL語句檢索訂單號20008中的所有物品。

SELECT prod_id, quantity, item price

FROM OrderItems

WHERE order_num=20008

02 使用函式處理資料

與大多數其他計算機語言一樣,SQL也可以用函式來處理資料。

本文僅展示一些具有代表性的函式,大家並不需要一次全部記住,只需要知道有這樣的函式就可以了,實際應用時可以隨時查閱。

常見文字處理函式

資料分析人必掌握的資料庫語言——SQL第四期!

日期和時間處理函式

日期和時間值以特殊的格式儲存,以便能快速和有效地排序或過濾,並且節省物理儲存空間,日期和時間函式在SQL中具有重要的作用,但每種DBMS都有自己的特殊形式。

Date 函式

資料分析人必掌握的資料庫語言——SQL第四期!

SQL Server Date 函式

資料分析人必掌握的資料庫語言——SQL第四期!

MySQL Date 函式

資料分析人必掌握的資料庫語言——SQL第四期!

數值處理函式

這些函式一般主要用於代數、三角或幾何運算,因此不像字串或日期、時間處理函式使用那麼頻繁。在主要DBMS的函式中,數值函式是最一致、最統一的函式。

資料分析人必掌握的資料庫語言——SQL第四期!

03 彙總資料

我們經常需要彙總資料,為此SQL提供了專門的函式,使用這些函式,SQL查詢可用於檢索資料,以便分析和報表生成。

這一類函式可以單獨使用,如

SELECT COUNT (*) FROM student

,也可以放在分組裡使用,如

SELECTclass, COUNT (*) FROM student group by class

,下篇會為大家詳細講解分組資料。

聚集函式

資料分析人必掌握的資料庫語言——SQL第四期!

聚集不同值

對所有行執行計算,ALL為預設行為,引數不需要指定,如果不指定DISTINCT,則假定為ALL。

舉例:使用AVG()函式返回特定供應商提供的產品的平均價格。

SELECT AVG(DISTINCT prod_price) AS avg_price

FROM Products

WHERE vend_id = ’DLLO1’

組合聚集函式

所有聚集函式例子都只涉及單個函式,SELECT語句可根據需要包含多個聚集函式。

SELECT COUNT(*) AS num_items,

MIN(prod_price) AS price_min,

MAX(prod_price) AS price_max,

AVG(prod_price) AS price_avg

FROM Products

分析:這裡用單條SELECT語句執行了4個聚集計算。

以上就是本次分享的全部內容,下期重點為大家講解分組資料,我們下期再見!

整理不易,點贊、轉發幫忙點一下!