Teradata資料庫功能操作簡單介紹(轉載)
原文連結:
一: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--> Any statement that follows a COMMIT automatically starts a new transaction.Locks are accumulated until a COMMIT is used
Teradata--> Locks are accumulated following a BT until an ET is issued
處理過程:
在Teradata和ANSI模式下事務處理都是commit point
在Teradata模式下:
在implicit模式下,請求就是事務處理
事務透過使用BT/ET來明確的遞交
當使用BT/ET的時候---->請求被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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [轉]Oracle資料庫ASH和AWR的簡單介紹Oracle資料庫
- Sybase資料庫簡介 (轉載)資料庫
- 簡單介紹Sybase資料庫的備份與恢復(轉)資料庫
- javascript資料型別轉換簡單介紹JavaScript資料型別
- redis的簡單使用和介紹(轉載)Redis
- HSQL 資料庫介紹(1)--簡介SQL資料庫
- 達夢資料庫執行緒簡單介紹資料庫執行緒
- openview功能簡介(轉載)View
- Oracle資料庫審計功能介紹Oracle資料庫
- [Hadoop]轉載-Pig的簡單介紹Hadoop
- 資料倉儲—資料倉儲—NCR Teradata Warehouse 介紹
- 資料庫介紹--認識簡單的SQL語句資料庫SQL
- 簡單介紹資料庫技術發展階段!資料庫
- node.js連線mysql資料庫簡單介紹Node.jsMySql資料庫
- javascript陣列操作簡單介紹JavaScript陣列
- javascript如何操作iframe簡單介紹JavaScript
- ORACLE資料庫簡介(轉)Oracle資料庫
- H2 資料庫介紹(1)--簡介資料庫
- ASP資料庫簡單操作教程資料庫
- SqlDataAdapter簡單介紹 (轉)SQLLDAAPT
- Oracle 鎖簡單介紹(轉)Oracle
- Oracle鎖簡單介紹(轉)Oracle
- javascript方法過載簡單介紹JavaScript
- node.js操作mongodb簡單介紹Node.jsMongoDB
- javascript讀寫cookie操作簡單介紹JavaScriptCookie
- jquery操作select下拉選單簡單介紹jQuery
- RUBY實踐—資料庫簡單操作資料庫
- Java操作Redis資料庫方法(簡單)JavaRedis資料庫
- (轉)簡單介紹java EnumerationJava
- java字串的簡單介紹(轉)Java字串
- MSMQ的簡單介紹(收藏) (轉)MQ
- javascript數字和字串資料型別轉換簡單介紹JavaScript字串資料型別
- 資料庫介紹資料庫
- javascript操作html元素屬性簡單介紹JavaScriptHTML
- javascript DOM元素節點操作簡單介紹JavaScript
- jquery獲取json資料簡單介紹jQueryJSON
- kylix 資料庫應用簡介 (轉)資料庫
- php簡單操作mysql資料庫的類PHPMySql資料庫