上一章:数据存放
第四章 使用SQL语言创建数据对象
让我们使用SQL语句创建某些数据对象。在本章的开头,我们曾经把SQL语言分为三部分:
·DDL数据定义语言
·DCL数据控制语言
·DML数据操纵语言
允许我们定义和修改数据库对象的SQL语句组叫做DDL或数据定义语言(Data Definintion Language)。
数据定义语言包含三类SQL语句:
·CREATE
·
ALTER
·DROP
4.1 CREATE语句
CREATE <database object > .... |
CREATE语句用来对数据库对象进行初始定义。被创建的 <database object>(数据库对象)可以是以下的任何一种:
·表
·窗口
·别名
·用户自定义函数(FUNCTION)
·触发器
·事件监视器
·索引
·用户自定义数据类型(DISTINCT TYPE)
·表空间
使用DDL语言创建任何数据库对象的结果将产生对系统编目表的更新。创建这些数据库对象需要特殊的数据库。数据库对象可以用于各种目的。某些数据库对象用来定义一种条件或联系(索引、监视器、触发器),其它数据库对象只是简单的定义用户数据(表、表空间)的位置。
4.2 DROP语句
DROP <database object> .... |
DROP(去除)语句用来删除系统编目表内的约束条件或定义。因为系统编目表不能被直接删
除,DROP语句用来从这些表中删除数据记录。因为数据库对象可能依赖于其它数据库对象,去除一个对象的动作可能会导致一个相关的对象成为无效。
被去除的<database object>(数据库对象)可能是以下的一种对象:
·表
·窗口
·别名
·用户自定义函数(FUNCTION)
·触发器
·事件监视器
·索引
·用户自定义数据类型(DISTINCT TYPE)
·表空间
4.3 ALTER语句
ALTER <database object> |
ALTER(更改)语句允许用户更改某些数据库对象信息(数据库对象必须已经存在于数据库中)。用户可以更改一个表或表空间。被更改的<database object>(数据库对象)可以是以下的数据库对象之一:
1. 表(Table)。
2. 表空间(Table Space)
[注解]:用户不能更改窗口或索引。用户必须去除原有的窗口或索引,然后再创建新的窗
口或索引。
每次用户发出一条DDL语句,系统编目表将被更新。这种更新包括创建或修改时间印
戳和创建者(修改者)的 HP uthid(权限标识)。
[注解]:以下的做法是有益的:将针对数据库的所有DDL语句存储到命令行处理器(CLP)输入文件中,以便允许更容易地创建数据库对象。
4.4 创建DB2数据库
在创建任何数据库对象之前,必须存在某个DB2数据库。必须给数据库一个名字。(该
数据库不与任何模式相关。)一旦创建了数据库之后,下一个逻辑步骤是要创建表空间。
[注解]:CREATE DATABASE命令不是一条SQL语句。其中的数据库名的长度是1至8个字符。
表空间类型
在DB2中,有两种类型的表空间:
·系统管理存储器(SMS ── System Managed Storage)表空间
sql语句查询不包含·
数据库管理存储器(DMS ── Database Managed Storages)表空间
系统管理的表空间(SMS)
在系统管理存储器(SMS)中,DB2使用它自己的管理机制去存储和定位数据库对象。执行CREATE TABLESPACE命令期间,为这些表空间分配磁盘空间。
数据库管理的表空间(DMS)
在系统管理的表空间(DMS)的表空间中,DB2使用它自己的存储器机制去存储和定位数据库对象。这类表空间的磁盘空间在执行CREATE TABLESPACE语句期间分配。
[注解]:如果使用DMS表空间,用户将需要计算表所期望的磁盘空间。
默认的表空间
当创建数据库时,DB2将按照默认方式创建三种表空间:这些表空间是SMS(系统管理的表空间)。它们是
SYSCATSPACE ── 包含系统编目
TEMPSPACE1── 保存临时表
USERSPACE1── 包含所有用户数据
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论