欢迎投稿

今日深度:

teradata学习笔记,

teradata学习笔记,


LIKE用法
select first_name,last_name from employee where last_name like all('%E%','%S%');
select first_name,last_name from employee where last_name like any/some('%E%','%S%');

Teradata缺省不区分大小写,如果要区分,可以使用其扩展参数CASESPECIFIC
select first_name,last_name from employee where last_name(CASESPECIFIC) like '%Ra%';

通配符作为一般字符使用
例:
LIKE "%A%%AAA__" ESCAPE"A"
在这个表达式中,讲字母A定义为ESCAPE字符,其中:
第一个%为通配符:
第一个A和其后的%联合表示字符%
第三个%为通配符
第二个A和其后的A联合表示字符A;
第四个和其后的'_'联合表示字符_
最后一个'_'为通配符

NULL的使用
当进行升序排列时,NULL在数字列排列在负数前,在字符排列在空格前

优先级和括号
逻辑运算符的缺省优先级顺序从高到低为:NOT.AND.OR

NOT
NOT既可以否定操作符,也可以否定条件表达式
否定操作符:
select first_name,last_name,employee_number from employee where department_number not =301;
否定条件:
SELECT first_name,last_name,employee_number FROM employee WHERE NOT(department_number=301);

字符型数据
在ANSI标准中关于字符型数据定义了两类:CHAE和VARCHAR,Teradata除了上述两类基本字符数据外,还扩展了LONG VARCHAR类型,它等同于VARCHAR(64000),是最长的字符串
char(size)固定长度的字符串最大长度:64000字节
varchar(size)
char varying(size)
character varying(size) 这三个是可变长度字符串,最大长度:64000字节
long varchar 等同于varchar(64000)
二进制数据
二进制数据类型是Teradata的扩展,ANSI标准没有此类型
BYTE(size) 固定长度的二进制串默认值:(1)最大值:64000字节
varbyte(size) 可变长的二进制串默认值:(1)最大值:64000字节
数字型数据
在ANSI标准中关于数字型数据定义了四类:SMALLINT.INTEGER.FLOAT.DECIMAL,Teradata还扩展了BYTEINT和DATE
smallint 整数 范围:-32768~32767
integer 整数 范围:-2147483648~2147483647
decimal(size,dec) 小数 最大:18位
numeric(precision,dec)  decimal的同义词
float  表示浮点数
float[(precision)] 通float
real  同float
double precision 双精度浮点数
byteint 有符号整数 范围-128~127
date 特殊整数,格式为YYMMDD或yyymmdd表示日期
图形数据
graphic[(n)] 固定长度的图形字符串默认长度:1
vargraphic(n) 可变长的图形字符串
long vargraphic 可变长的图形字符串

算术运算符
**(求幂)
mod(取模)

系统变量
date当前系统日期
time系统时间
user当前登陆的用户
database当前缺省的数据库

字符常量.数字常量和计算模式
字符文字在ANSI方式下区分大小写,而在Teradata缺省模式下不区分大小写
数字型常量最多可以包含15个数字,数字前面的零是无意义的
计算模式是指在SQL的SELECT语句中直接进行数学计算,如下:
select 2*2593;

日期计算
例:1997年3月31日的表达方式
year=(1997-1900)*10000=970000
month=(3*100)=300
day=31
date=970331

于日期有关的数据函数
1.EXTRACT
ANSI标准中EXTRACT函数允许选取日期和时间中任意段或任意间隔的值,Teradata中EXTRACT函数支持日期数据中选取年.月.日.从时间数据中选取小时.分钟和秒
SELECT DATE;  96/11/07
SELECT EXTRACT(YEAR FROM DATE);    1996
SELECT EXTRACT(MONTH FROM DATE+30); 12
SLEECT EXTRACT(DAY FROM DATE+2);  09
SELECT TIME;  14:52:32
SELECT EXTRACT(HOUR FROM TIME); 14
SELECT EXTRACT(SECOND FROM TIME+30);  INVALID TIME
2.ADD_MONTHS

利用CAST作数据转换
ANSI标准中利用CAST函数将一种数据类型转换成另一种数据类型
select cast(salary_amount as integer) from employee;
select cast(salary_amount as dec(6,0)) from employee;
select cast(last_name as char(5)) from employee where department_number=401;
Teradata也可以利用CAST函数来完成上面的操作,另外,它也作了扩充.为了完成上面相同的操作,也可以使用下面的表达方式
select salary_amount(integer);
select salary_amount(dec(6,0));
select last_name(char(5));
Teradata对CAST函数本身也作了扩展,比如为了将显示结果以大写表示,可以使用下面的SQL语句
select cast(last_name as char(5) uppercase) from employee where department_number=401;

简单的宏
宏(Macro)的基本特征是:
可以包含一条或多条SQL语句
可以包含多个BETQ语句
可以包含注解
存储在数据字典中

宏的定义
create macro birthday_list as
(select last_name,first_name,birthdate from employee where department_number=201 order by birthdate;
);

宏的执行
exec birthday_list;

宏的删除
drop macro birthday_list;

宏的显示和改变
show macro birthday_list
使用replace macro命令可以改变宏的定义

子查询

基本子查询

复杂子查询
在子查询中可以使用一些限制符,如下所示:
=any  等于 in
not=all 等于 not in
=some 等于 in

EXISTS在子查询中的使用
EXISTS可以使用在自查询中,用来表示查询至少返回一行.如果前面加上否定词not,则表示查询时无记录存在.exists可以代替in,而not exists可以代替not in
select 'YES' where exists(select department_number from department where department_number not in(select department_number from employee));
select true where exists(select * from employee where department_number=600);

关于子查询的一些基本规则
子查询必须用括号括起来
子查询可以是in或not in字句的操作目标
也可以是exists或not exists字句的操作目标
支持限定词all.any.some
支持like或not like
子查询中可以指定匹配多个字段
子查询结果均为唯一值,即自动去除重复记录,相当于自动加上distinct关键词
order by不能用于子查询内
子查询最多可以指定64个表或视图

 

 SET 不允许记录重复
CREATE SET TABLE table1 ...
 MULTISET 允许记录重复
CREATE MULTISET TABLE table1 ...

 

www.htsjk.Com true http://www.htsjk.com/teradata/26785.html NewsArticle teradata学习笔记, LIKE用法 select first_name,last_name from employee where last_name like all('%E%','%S%'); select first_name,last_name from employee where last_name like any/some('%E%','%S%'); Teradata缺省不区分大小写,如果要...
相关文章
    暂无相关文章
评论暂时关闭