好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

SQL(Teradata版)(word文档良心出品).doc

56页
  • 卖家[上传人]:桔****
  • 文档编号:435099887
  • 上传时间:2023-10-01
  • 文档格式:DOC
  • 文档大小:1.61MB
  • / 56 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Teradata SQL 基础教程第一章数据定义语言 DDL(Data Definition Language)Databases数据库CREATE DATABASE创建数据库MODIFY DATABASE修改数据库定义DROP DATABASE删除数据库Users 用户CREATE USER创建用户MODIFY USER修改用户DROP USER删除用户Tables 表CREATE TABLE创建表ALTER TABLE修改表定义DROP TABLE删除表Indexes 索引CREATE INDEX创建索引DROP INDEX删除索引1.1 创建表CREATETABLE语句创建新表,定义新表的列、索引和其他属性新表创建后,表结构定义存放在 Teradata 的数据字典中 CREATE TABLE语句的语法如下:CREATE TABLE

      ;其中:Create Table Options定义表的物理属性表选项FallbackJournalingFreespaceDatablocksizeColumn Definitions Table-level Constraints字段定义定义表的各个字段定义约束表级约束Primary keyUniqueCHECK条件Foreign keyIndex Definitions索引定义定义表索引 创建表的可选项(Create Table Options)Teradata DDL 允许在创建表时指定表的物理属性,包括:是否允许重复记录:SET 不允许记录重复(默认)CREATE SET TABLE table1MULTISET 允许记录重复(建议: Teradata 中都用 MultiSet )CREATE MULTISET TABLE table1数据保护:数据保护要结合 FALLBACK和 JOURNAL (流水或日志 ) 。

      FALLBACK是Teradata 的一种数据保护机制,数据表的每一条记录都同时存放两份FALLBACK 使用 FALLBACK 保护机制NO FALLBACK 不使用 FALLBACK 保护机制日志有 BEFORE和 AFTER两种,分别保存了一条记录变化前后的状态用日志进行恢复 字段定义当系统出错时,可以利Teradata 的表可定义多达 256个字段,每个字段的定义包括如下五项:字段名 ,在同一数据库中必须唯一字段数据类型 例:CREATETABLE emp_data(employee_number INTEGER NOT NULL,last_name CHAR(20) NOT NULLWITH DEFAULT,street_address VARCHAR (30)TITLE ‘Address ’,city CHAR (15)DEFAULT‘Boise ’,state CHAR (2)WITH DEFAULT,birthdate DATEFORMAT’mm/dd/yyyy ’,salary_amount DEC(10,2),sex CHAR (1)UPPERCASE);字段数据类型属性 。

      可定义如下属性:DEFAULT当字段无数据时用默认值来替代NULLWITH DEFAULT用字段的系统默认值替换NULLFORMAT缺省的显示格式TITLE缺省的列标题NOT NULL不允许空值CASESPECIFIC字母大小写敏感UPPERCASE字母大小写不敏感,内部用大写字母存储数据存储属性 包括下面各项:COMPRESS压缩值为 NULL的字段存储空间为0COMPRESS NULL同上COMPRESS 压缩值为 NULL和指定值的字段存储空间为0字段约束定义 Teradata 支持字段级约束, 即限制字段的值满足某些条件,如某个字段取值是否唯一、是否为主键或外键等对字段的约束总结如下:CONSTRAINT name约束名称 -- 可选PRIMARY KEY非空 , 无重复值UNIQUE无重复值CHECK <布尔条件 >指定合法值的范围REFERENCES与其他字段的相关性(外键)例:CREATE TABLE employee_badge(emp_id INTEGER NOT NULLCONSTRAINT primary_1 PRIMARY KEY,id_badge_number INTEGERCONSTRAINT unique_1 UNIQUE,salary INTEGERCONSTRAINT check_1 CHECK(salary>0),job_code INTEGERCONSTRAINT ref_1 REFERENCESjob (job_code));最后一项定义了在 EMPLOYEE_BADGE表中的 JOB_CODE必须和 JOB表中的 JOB_CODE对应 ,即前一个表中该字段的值必须在第二个表中有对应的项。

      这实际上是一种所谓的参照完整性要注意的是,具有主键 (Primary Key) 约束的字段一定要定义为非空 (NOT NULL)另外 表级约束定义表级约束唯一性定义 [CONSTRAINT name][UNIQUE][PRIMARY KEY]参照定义 [CONSTRAINT name]FOREIGN KEY ()REFERENCES ()意义约束名所指定的多个字段的组合值在表中不能重复这些列将用作主索引或次索引约束名,配合外键的定义 所列举的字段为外键,它对应于另一个表 ( 父表 ) 中相同的字段定义父表或引用表中的主键所包含的字段Check定义 [CONSTRAINT name]CHECK <布尔条件 >约束名对表中指定字段的值进行约束表级约束与字段级约束的主要区别是:在表级约束中可以指定当前表的多个字段或其组合,而字段级约束只能引用当前字段我们来看一个表级约束的例子CREATE TABLE employee_badge(emp_id INTEGER NOT NULL,id_badge_num INTEGER NOT NULL,salary INTEGER,job_code INTEGER,CONSTRAINT primary_1 PRIMARY KEY(emp_id),CONSTRAINT unique_1 UNIQUE(id_badge_num),CONSTRAINT check_1 CHECK(salary > 0 ANDjob_code BETWEEN 100000 AND 499999),CONSTRAINT ref_1 FOREIGN KEY(job_code)REFERENCESjob (job_code));比较字段级约束和表级约束的例子 , 可以看到 : 字段级约束必须写在每个字段定义的后面, 而表级约束是在字段定义结束后再进行的。

      在表级约束中,一个约束可以同时定义多个字段1.1.4索引定义PKPrimary Key主键PIPrimary Index主索引UPIUnique Primary Index唯一性主索引NUPI Non Unique Primary Index非唯一性主索引USIUnique Secondary Index唯一性次索引索引可以在 CREATETABLE时就加以定义, 同时还可以定义主键 如果创建表时不定义主索引,Teradata 就按照下面的规则缺省来建立主索引, 因为没有主索引的话, Teradata 就无法进行数据的分配没有在 CREATE TABLE时指定 PI:IF 定义了 PK, THEN PK = UPIELSE IF 存在定义为 UNIQUE的字段,THEN 第一个 NIQUE的字段为 UPIELSE 表中定义的第一个字段作为 NUPICREATE TABLE时指定了 PI:IF 定义了 PK,THEN PK作为 USI AND为每一个定义为 UNIQUE的字段建立一个 USI下面是一个比较复杂的创建表的例子,注意学习创建该表后用表达方式SHOWTABLE观察一下内部的CREATEMULTISETTABLE emp_data, FALLBACK, NO BEFORE JOURNAL, NO AFTER JOURNAL,FREESPACE = 30,DATABLOCKSIZE=10000 BYTES (employee_number INTEGER NOT NULL,department_number SMALLINTCONSTRAINT dep_checkCHECK (department_number BETWEEN 100 AND 999)REFERENCESDepartment (department_number),job_code INTEGER COMPRESS,last_name CHAR(20) NOT NULL,first_name VARCHAR (20),street_address VARCHAR (30) TITLE 'Address',city CHAR (15) DEFAULT'Boise'COMPRESS 'Boise',state CHAR (2) WITH DEFAULT,birthdate DATE FORMAT'mm/dd/yyyy',salary_amount DECIMAL。

      点击阅读更多内容
        手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
        ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.
        • QQ咨询
        • 微信客服
        • 返回顶部