当前位置:操作系统 > Unix/Linux >>

TERADATA数据库操作

TERADATA数据库操作
 
1、创建一个数据库的命令举例:
 
Create database testbase as perm=200000000,spool=100000000; 
 
注释:该命令创建了一个测试数据库testbase,其永久表空间为200mb,spool空间不能超过100mb。在teradata数据库系统的缺省方式下,是不区分大小写字母的。 
2、修改数据库的命令举例: 
 
Modify database testbase as perm=300000000; 
 
注释:该命令将testbase的永久表空间修改为300mb,spool空间定义不变。 
3、创建用户的命令实例:
 
Create user testuser as perm=200000000,spool=100000000,password=testpassword; 
 
4、修改一个用户的命令实例:
 
Modify user testuser as password=newpassword; 
 
5、转让拥有权的命令实例:
 
Give appl1 to admin2; 
 
注释:通过DBC或ADMIN登录系统,可以将appl1的拥有权从admin1转让给admin2。 
拥有权可以转让,创建者是不可以改变的,一旦一个用户A创建了一个用户B或者数据库B,那么A就永远是B的创建者。 
6、检查一个用户或数据库具有哪些父辈或后代的命令实例:
 
Select parent from dbc.children where child=’APPL1’; 
 
注释:检查用户APPL1的所有父辈。
 
Select child from dbc.children where parent=’USERADMIN’; 
 
注释:检查用户USERADMIN的所有后代。 
7、
 
Grant select on usera to userb with grant option; 
 
注释:表示将usera中对象的select权限授予给userb,这样userb就可以读usera中的表、视图等对象了。由于带有with grant option,因此userb还可以把它接收的权限再转授给其他用户或数据库。 
8、
 
revoke select on usera from userb; 
 
注释:表示把对usera的select权限从userb收回,这样userb就不能读取usera中的各种对象了。 
9、拥有权 
用户DBC拥有用户ADMIN,ADMIN中有一个表TABLEC,那么,ADMIN是TABLEC的直接拥有者,而DBC则是TABLEC的间接拥有者,ADMIN和DBC均具有对TABLEC的拥有权。当以DBC登陆系统时,它可以授予它自己对TABLEC的任何权限。在未显示地授予之前,DBC不能对TABLEC执行类似SELECT、INSERT之类的操作。 
DBC对TABLEC隐含地具有CHECKPOINT、DUMP和RESTORE的权限,但是,隐含权不包括执行任何形式的CREATE命令,例如:DBC不能在ADMIN中创建用户、数据库或其他对象。 事实上,如果DBC不将CREATE USER的权限授予ADMIN,则ADMIN登陆后也不能在它自己的空间上创建用户。 
一个用户并不拥有它自己,ADMIN创建用户USERA,USERA不能对它自己执行GRANT/REVOKE命令,以及执行CHECKPOINT、DUMP和RESTORE命令。 
10、自动权限: 
自动权限是指创建一个用户或其他对象时,由系统自动授予的权限。 
自动权限并不包括:1、GRANT权限(通过WITH GRANT OPTION来完成),2、对被创建者而言,它在它自己空间CREATE/DROP用户或数据库的权限。 
11、检查用户有具有的任何权限: 
 
1 Select databasename (format ‘x(10)’), 
2 Tablename (format’x(10)’), 
3 Accessright, 
4 Allnessflag from dbc.allrights 
5 Where username=’USERA’; 
 
注释:检查用户USERA所具有的任何权限。 
12、大小写规范: 
1)所有的SQL语句中的保留字均采用全部大写,表别名也要大写。例如:
 
 
ALL  AS  CASE  CREATE  OUT  DATABASE  DELETE  FROM  IN  INSERT  JOIN  LEFT  NO  NOT  NULL    SELECT  TABLE  TITLE  UPDATE  VIEW  WHERE等。 
 
2)表名、视图名、宏和存储过程名:全部小写。 
3)字段名:每个单词的首字母大写,其余部分小写,如:Acct_Id,Type_Id等。 
13、获取表的字段列表:
 
Select columnname,trim(columntitle) from dbc.columns 
Where databasename=’数据库名’ and tablename=’表名’ 
Order by columnid; 
 
14、常用的历史表取数方法: 
1)提取某日数据
 
Select * from tablea 
Where start_dt<=’某日日期’ 
And end_dt>’某日日期’ 
 
2)提取某日之前的所有数据
 
Select * from tablea 
Where start_dt<=’某日日期’ 
 
3)提取某日之后的所有数据
 
Select * from tablea 
Where end_dt>’某日日期’ 
 
4)提取甲日和乙日之间的所有数据
 
Select * from tablea 
Where start_dt<’乙日日期’ 
And end_dt>’甲日日期’ 
 
5)提取当前有效数据
 
Select * from tablea 
Where end_dt=’20111013’ 
 
15:Help
 
HELP DATABASE databasename;可以显示一个指定数据库所包含的所有对象。 
HELP USER username;显示某个用户中所包含对象的信息。 
HELP TABLE tablename;显示某张表的信息。 
HELP VIEW viewname;显示某个视图的信息。 
HELP MACRO macroname;显示某个宏的信息。 
HELP COLUMN table or viewname.*; 显示表/视图的各列的信息。 
HELP COLUMN table or viewname.colname……,colname;显示表/视图的某几列的信息。 
HELP INDEX tablename;显示某个表中的所有索引定义。 
HELP STATISTICS tablename;显示表的统计。 
HELP CONSTRAINT table or viewname.constraintname;  显示定义在某个表/视图上的约束定义 
HELP JOIN INDEX join_indexname;  显示连接索引的定义 
HELP TRIGGER triggername;  显示触发器的信息 
HELP PROCEDURE procedurename;  显示存储过程的信息 
HELP PROCEDURE procedurename ATTRIBUTES; 
HELP 'SQL';  得到所有SQL命令的列表信息 
HELP 'SQL sqlcommand';  得到某个特定SQL命令的使用方法 
 
16:SHOW 如果知道一些数据库对象是用什么样的DDL命令创建的,则要使用SHOW命令。
 
SHOW TABLE tablename; 
SHOW VIEW viewname; 
SHOW MACRO macroname; 
SHOW INDEX Tablename; 
SHOW JOIN INDEX join_indexname; 
SHOW TRIGGER Triggername; 
SHOW PROCEDURE Procedurename; 
 
17:EXLPLAIN
 
EXPLAIN SELECT * FROM department; 
 
注释:利用EXPLAIN命令,可以了解Teradata执行一个SQL交易请求的详细过程和计划,这对于更进一步地理解Teradata的查询处理机制有很大的帮助。另一方面,对于复杂SQL交易的调试来说,这也是不可或缺的一个工具。 
利用EXPLAIN解释一个SQL交易的方法很简单,就是在原来SQL语句的前面加上EXPLAIN即可,其他完全不变。 
18:日期函数
 
 
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); 
 
19、
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,