1. 程式人生 > >HIVE瞭解及SQL基礎命令

HIVE瞭解及SQL基礎命令

hive(資料倉庫工具)

Hive是一個數據倉庫基礎工具在Hadoop中用來處理結構化資料。它架構在Hadoop之上,總歸為大資料,並使得查詢和分析方便。並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行執行。術語“大資料”是大型資料集,其中包括體積龐大,高速,以及各種由與日俱增的資料的集合。使用傳統的資料管理系統,它是難以加工大型資料。因此,Apache軟體基金會推出了一款名為Hadoop的解決大資料管理和處理難題的框架。

SQL

結構化查詢語言(Structured Query Language)簡稱SQL,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關係資料庫系統;同時也是資料庫指令碼檔案的副檔名。

結構化查詢語言是高階的非過程化程式語言,允許使用者在高層資料結構上工作。它不要求使用者指定對資料的存放方法,也不需要使用者瞭解具體的資料存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為資料輸入與管理的介面。結構化查詢語言語句可以巢狀,這使它具有極大的靈活性和強大的功能。

常見SQL命令

 

SELECT 語句

作用:用於從表中選取資料,結果被儲存在一個結果表中

語法:select 列名稱 from 表名稱

舉例:select LastName from Person  或 select * from Person

 

WHERE 子句

作用:如需有條件地從表中選取資料,可將 WHERE 子句新增到 SELECT 語句

語法:SELECT 列名稱 FROM 表名稱WHERE 列 運算子 值

舉例:SELECT * FROM Persons WHERE FirstName='John'

 

ORDER BY 語句

作用:ORDER BY 語句用於根據指定的列對結果集進行排序,預設按照升序對記錄進行排序;如需按照降序,可使用DESC關鍵字

舉例:ORDER BY SELECT LastName, FirstName FROM Persons ORDER BY FirstName

 

SELECT DISTINCT

作用:關鍵字DISTINCT 用於返回唯一不同的值

語法:SELECT DISTINCT 列名稱 FROM 表名稱

舉例:要從Company列中僅選取唯一不同的值,

 

 

SELECTDISTINCT Company FROM Orders

 

AND 和 OR 運算子

作用: AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。

如果第一個條件和第二個條件都成立,則 AND 運算子顯示一條記錄。

如果第一個條件和第二個條件中只要有一個成立,則 OR 運算子顯示一條記錄

 

 

舉例:使用 AND 來顯示所有姓為 "Carter" 並且名為 "Thomas" 的人

SELECT* FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

 

SUM() 函式

作用:SUM 函式返回數值列的總數(總額)

語法:SELECT SUM(column_name) FROM table_name

舉例:

 

 

我們希望查詢 "OrderPrice" 欄位的總數

SELECTSUM(OrderPrice) AS OrderTotal FROM Orders

 

 

GROUP BY 語句

“GroupBy”從字面意義上理解就是根據“By”指定的規則對資料進行分組,所謂的分組就是將一個“資料集”劃分成若干個“小區域”,然後針對若干個“小區域”進行資料處理

舉例:

 

select類別, sum(數量) as 數量之和fromA

groupby 類別

返回結果如下表,實際上就是分類彙總。

 

 

例項介紹:

1. 從persona_data_info 表中,查詢job_id=279 的每個gender類別的人數總和

select gender,sum(persona_count) from persona_data_info where job_id=279 group by gender;

2. 從persona_data_city ,persona_city_map兩個表中查詢job_id=279且citycode= map.code

SELECTjob_id,citycode,persona_count,province,region,city_level FROM persona_data_city,persona_city_map where job_id=279 AND persona_data_city.citycode =persona_city_map.`code`;