Teradata資料庫功能操作簡單介紹(轉載)

wwl55l發表於2014-03-09

原文連結:

一:SQL OVERVIEW
1:什麼是SQL
結構化查詢語句SQL是連線關聯式資料庫管理系統的工業化標準
結構化查詢語句從對RDBMS的一個查詢來返回結果
SQL不是一種語言

2:SQL語句型別 DDL
CREATE 定義一個新表,新索引,新檢視
DROP 銷燬一個表,索引或者檢視
ALTER 改變表結構或者保護定義

3:SQL語句型別 DML
SELECT 執行關係查詢功能(SELECT PROJECT JOIN UNION INTERSECT MINUS)
INSERT 將一新行插入到一個表中
UPDATE 修改一個存在的行的值
DELETE 將行從表中刪除

4:SQL語句型別 DCL
GRANT 給予使用者許可權
REVOKE 去除使用者許可權
GIVE 轉移資料庫擁有權

5:命名資料庫物件
名字可以由下列物件組成:a-z A-Z 0-9 _ $ #
名字必須由下列物件開始:a-z A-Z _ #
名字長度被限定在30個字元內
NOTE:Teradata is not case-sensitive

二:Teradata SQL Extensions
1:三個ANSI標準
ANSI SQL-89(SQL1)
ANSI SQL-92(SQL2)
ANSI SQL-99(SQL3)
三個ANSI SQL-92 COMPLIANCE:Entry level
Intermediate level
Full level
Teradata本身對SQL具有了獨特的擴充套件
Teradata ANSI認證是entry LEVEL SQL2 WHTH INTERMEDIATE FEATURES IMPLEMENTED

2:Teradata的SQL擴充套件
ADD_MONTHS BEGIN/END TRANSACTION
COLLECT/DROP STATISTICS COMMENT ON
CONCATENATION EXPLAIN
FALLBACK FORMAT
HELP INDEX
LOCKING MACRO FACILITY.CREATE
.REPLACE
.DROP
.EXECUTE
NAMED NULLIFZERO/ZEROIFNULL
SHOW SUBSTRING
TITLE TRIM
WITH WITH....BY

3:Help
HELP DATABASE databasename;
HELP USER username;
HELP TABLE tablename;
HELP VIEW viewname;
HELP MACRO macroname;
HELP COLUMN table_or_view_name.*; OR table_or_view_name ..,colname;
HELP INDEX tablename;
HELP STATISTICS tablename;

4:SHOW
SHOW TABLE tablename;
SHOW VIEW viewname;
SHOW MACRO macroname;

5:EXLPLAIN
EXPLAIN SELECT * FROM department;
即EXPLAIN+任何除了EXPLAIN的SQL語句

6:日期函式
SELECT DATE;
SELECT EXTRACT(YEAR FROM DATE);
SELECT EXTRACT(MONTH FROM DATE+30);
SELECT EXTRACT(DAY FROM DATE+2);
SELECT TIME;
SELECT EXTRACT(HOUR FROM TIME);
SELECT EXTRACT(MINUTE FROM TIME);
SELECT EXTRACT(SECOND FROM TIME);
SELECT ADD_MONTHS(DATE,2);
SELECT ADD_MONTHS(DATE,12*8);
SELECT ADD_MONTHS('2002-03-19',12);

7:CAST
SELECT CAST(salary_amount AS INTEGER) FROM employee;
SELECT CAST(salary_amount AS DEC(6,0)) FROM employee;
SELECT CAST(salary_amount AS CHAR(5)) FROM employee;

SELECT salary_amount(INTEGER)
SELECT salary_amount(DEC(6,0))
SELECT salary_amount(CHAR(5))

SELECT CAST(salary_amount AS CHAR(5) UPPERCASE) FROM employee;

三:檢視和宏
1:使用檢視的優點:
額外的安全層級
對於讀和修改許可權的控制有幫助
易於終端使用者訪問資料
如果表中新增加了一列,對檢視沒有影響
表中刪除一列如果沒有被檢視用到的一樣沒有影響

2:Parameterized Macros 引數宏
宏是Teradata對於SQL的擴充
宏只能在具有EXEC許可權的情況下被執行
宏能提供列級安全
宏是SQL語句的批處理命令

四:Aggregates and Subtotals 聚類和求和
聚類操作
聚類操作在特定的組中運算出值.五種聚類操作是:COUNT SUM AVG MAX MIN
聚類操作忽略NULLS並且只產生單線結果

GROUP BY
這裡是定單評估的最最佳化SQL語句:
WHERE
快速的排除一些或者全部行
只有滿足WHERE條件的行被包含在組內
GROUP BY
將滿足條件的行放入所需要的分組內
HAVING
排除一些或者所有的分組
ORDER BY
將最終分組排序輸出

求和-- WITH ....BY & WITH
問題:
顯示部門內每個僱員的工資總和,作為FINAL TOTAL,並以NAME排序

解決方案:
SELECT last_name AS NAME
,salary_amount AS SALARY
,department_number AS DEPT
FROM employee
WITH SUM(SALARY) BY DEPT
WITH SUM(SALARY) (TITLE`GRAND TOTAL`) ORDER BY NAME;

五:Correlate Subqueries and Derived Tables 相關子查詢和源表
子查詢:
SELECT Last_Name,
Department_Number,
Salary_Amount
FROM Employee AS e1
WHERE Salary_Amount=
(SELECT MAX(Salary_Amount)
FROM Employee AS e2
WHERE e1.Department_Number=e2.Department_Number);

源表:
源表是在查詢的一部分過程中被建立和銷燬的臨時表
源表允許在WHERE短句中使用聚類
使用源表

六:JOINS 連線
外部連線:
子句放置規則:子句中的第一個(從左到右)是首先評估的
子句應用於前部連線操作
例子:要知道所有僱員的資訊(僱員,部門,工作)
SELECT Description AS Job
,Department_Name AS Dept
,Last_Nmae AS Job
FROM Deparment D
RIGHT OUTER JOIN Employee E
ON D.Department_Number=E.Department_Number
LEFT OUTER JOIN JOB J
ON E.Job_Code=J.Job_Code;

使用連線索引:

七:Teradata事務處理
Teradata能進行兩種不同模式的會話操作:ANSI模式和Teradata(BTET)模式
ANSI--&gt Any statement that follows a COMMIT automatically starts a new transaction.Locks are accumulated until a COMMIT is used
Teradata--&gt Locks are accumulated following a BT until an ET is issued

處理過程:
在Teradata和ANSI模式下事務處理都是commit point
在Teradata模式下:
在implicit模式下,請求就是事務處理
事務透過使用BT/ET來明確的遞交
當使用BT/ET的時候----&gt請求被BT和ET宣告裝訂
事務使用ET遞交
事務能夠使用ROLLBACK來回滾撤消
ET和ROLLBACK都能終止處理
在ANSI模式下:
事務使用COMMIT來明確遞交
處理可以使用ROLLBACK來回滾撤消

八:Online Analytical Funcitons聯機分析功能
RANK (RANKING)
QUANTILE (Quantiles)
CSUM (Cumulation)
MAVG (Moving Averages)
MSUM (Moving Sums)
MDIFF (Moving Differences)
FORECAST (Forecasting)
MLINREG (Moving Linear Regression)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11825152/viewspace-1103985/,如需轉載,請註明出處,否則將追究法律責任。

相關文章