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)

你可能感兴趣的:(TERADATA)