设为首页 加入收藏

TOP

TERADATA数据库操作(三)
2014-11-24 08:11:43 来源: 作者: 【 】 浏览:10
Tags:TERADATA 数据库 操作
ALLBACK 不使用FALLBACK保护机制
日志有BEFORE和AFTER两种,分别保存了一条记录变化前后的状态。当系统出错时,可以利用日志进行恢复。
D. 存储空间选项
DATABLOCKSIZE用来指定数据块大小,最小的数据块为6144字节,最大的数据块是32256字节。
FREESPACE用来定义在每个磁盘柱面上保留的空间(0-75%)。
例:
CREATE MULTISET TABLE table_1
, FALLBACK, NO JOURNAL
, FREESPACE = 10 PERCENT
, DATABLOCKSIZE = 16384 BYTES
(field1 INTEGER);
新建一张表TB1,表结构与TB2一样,不需要数据。
Create table TB1 as TB2 with no data;
使用子查询创建表,并选择所需的列。
CREATE TABLE emp1 AS(SELECT employee_number, department_number, salary_amount FROM employee) WITH NO DATA;
往TB1表中装入TB2表的数据(也可以是有选择性的,需指定字段)
INSERT INTO TB1 SELECT * from TB2;
25、交易完整性
在Teradata中,系统将保证一个交易的完整。怎样才算是一个交易呢,在Teradata中,根据其所处方式的不同在处理时也有所不同。在 Teradata缺省模式下,以分号结束的每个SQL语句都是一个完整的交易,也可以使用BT (Begin Transaction)和ET (End Transaction)来显示地定义一个交易。下面看一个例子:
例:
缺省方式
.LOGON
INSERT row1; (txn #1)
INSERT row2; (txn #2)
.LOGOFF
用BT和ET显示定义交易
.LOGON
BT;
INSERT row1; (txn #1)
INSERT row2;
COMMIT WORK;
ET;
.LOGOFF
第一部分中有两个SQL语句,用分号结束,表示两个交易,任何一个失败不会影响另一个的执行。而第二部分用BT和ET显示地规定:在BT和ET之间的所有 SQL是一个交易,只有最后的COMMIT WORK执行成功后,才会真正地更新数据库。执行过程中任何一个SQL语句失败,都会使整个交易失败,系统将自动进行恢复(Rollback)处理。
26、WITH BY进行数据小计
WITH BY的主要特点包括:
A. 它为明细数据表创建分类小计。
B. 跟GROUP BY不同的是,WITH BY没有剔除明细记录,而是在明细记录后面按照分类增加小计行。
C. 可以允许多于一个字段进行小计,即小计当中可以嵌套小计。
D. 输出结果将根据BY后面的所有字段自动进行排序。
E. 它是Teradata的一个扩展特性。
举例:
1. WITH BY, WITH和ORDER BY的联合使用:
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;
结果如下:
NAME SALARY DEPT
Kanieski 29250.00 301
Stein 29450.00 301
-------------
Sum (SALARY) 58700.00
Johnson 36300.00 401
Trader 37850.00 401
-------------
Sum (SALARY) 74150.00
Ryan 31200.00 403
Villegas 49700.00 403
-------------
Sum (SALARY) 80900.00
-------------
GRAND TOTAL 213750.00
2. WITH和GROUP BY的联合使用:
SELECT department_number (TITLE 'dept_no')
,SUM (salary_amount)
,AVG (salary_amount)
FROM employee
GROUP BY department_number
WITH SUM (salary_amount) (TITLE 'GRAND TOTAL')
,AVG (salary_amount) (TITLE '')
ORDER BY department_number;
结果如下:
dept_no SUM (salary_amount) AVG (salary_amount)
301 58700.00 29350.00
401 74150.00 37075.00
403 80900.00 40450.00
--------------------- ----------------------
GRAND TOTAL 213750.00 35635.00
27、SUBSTRING函数
SUBSTRING函数:用来从字符串中析取一个子字符串,其格式为:
SUBSTRING(<字符串表达式>FROM<开始位置>[FOR <长度>])
例如:SELECT SUBSTRING('catalog' FROM 5 FOR 3);
结果为log。
28、字符串合并:字符串合并的符号是“||”,它把两个字符串串联成一个字符串。其格式为:<字符串1>||<字符串2>
29、INDEX函数:index用来在一个字符串中定位一个子串的开始位置。如下面的例子:
SELECT INDEX(‘ABC’,’B’);返回结果为2。
30、CASE语句
基于搜索(Searched)的CASE语句,例如:
SELECT last_name,
CASE
WHEN salary_amount < 30000
首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySQL学习笔记_8_SQL语言基础复习 下一篇Teradata数据库SQL命令

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)
·关于 MySQL 数据库学 (2025-12-26 23:20:16)
·SOLVED: Ubuntu 24.0 (2025-12-26 22:51:53)
·Linux 常用命令最全 (2025-12-26 22:51:50)