|
|
数据定义语言(DDL) 创建数据库 CREATE DATABASE
创建数据库时,内部创建系统目录
语句选项 说明数据库所在的 DBSPACE, 缺省是ROOT DBSPACE 说明数据库使用的日志,有以下四种 无日志 缓冲日志 非缓冲日志 ANSI 日志 例子
CREATE DATABASE users CREATE DATABASE users IN myspace CREATE DATABASE users WITH LOG CREATE DATABASE users WITH BUFFERED LOG CREATE DATABASE users WITH LOG MODE ANSI
创建表 CREATE TABLE 表结构: 列名及数据类型 各种约束条件: 实体完整性: 说明主键 参照完整性: 说明实体之间的参照关系 缺省值: 说明缺省值 检查条件:说明检查条件 其它约束:非空、唯一性等
表所在的 DBSPACE,缺省是数据库所在的DBSPACE
区间大小, 缺省大小为8页
表的锁定级别: 页面级或行级,缺省是页面级 数据完整性
实体完整性 表中的每行有一个唯一的标识 语义完整性 列中的数据恰当地反映了设计列所要求存放的数据类型 引用完整性 强制维护表间的关系
例子 CREATE TABLE users ( user_num INTEGER PRIMARY KEY, user_type INTEGER, user_descr CHAR(50)) CREATE TABLE sub_users ( sub_user INTEGER PRIMARY KEY, ref_user_num INTEGER REFERENCES users (user_num), sub_user_descr CHAR(50)) CREATE TABLE DATE_CHECK( id integer not null , month integer default -1 not null , week integer default -1 not null , day integer default -1 not null , hour integer default -1 not null , minute integer default -1 not null , check (((month >= 1 ) AND (month <= 12 ) ) OR (month = -1 ) ) , check (((week >= 0 ) AND (week <= 6 ) ) OR (week = -1 ) ) , check (((day >= 1 ) AND (day <= 31 ) ) OR (day = -1 ) ) , check (((hour >= 0 ) AND (hour <= 23 ) ) OR (hour = -1 ) ) , check (((minute >= 0 ) AND (minute <= 59 ) ) OR (minute = -1 ) ))
CREATE TABLE users ( user_num INTEGER DEFAULT 01, user_type INTEGER DEFAULT 02, user_descr CHAR(50) NOT NULL, PRIMARY KEY( user_num,user_type ) ) LOCK MODE ROW CREATE TABLE sub_users ( sub_user INTEGER PRIMARY KEY, ref_user_num INTEGER REFERENCES users (user_num), ref_user_type INTEGER , sub_user_descr CHAR(50), FOREIGN KEY( ref_user_num,ref_user_type) REFERENCES users (user_num,user_type)) IN myspace EXTENT SIZE 16 NEXT SIZE 8 修改表结构
ALTER TABLE TABLENAME ADD/DROP/MODIFY COLUMNNAME TYPE
增加列、删除列、修改列 增加约束、删除约束 修改区间大小(NEXT SIZE) 改变锁定模式 ALTER TABLE 语句执行期间, 对整个表加互斥锁 如果要修改约束, 必须先删除, 而后增加。
创建索引 CREATE INDEX 索引可以建立在一列或多列上, 同样的列或多列不能有多个索引 用关键字UNIQUE 或 DISTINCT 创建唯一索引 用ASC 或 DESC 说明升序或降序, 缺省是升序 CREATE INDEX USERINDEX ON USER(USER_NUM) CREATE INDEX UNI_NAME ON USER (FNAME,LNAME DESC) 创建同义词
视图是表或视图的另外一个名字 CREATE SYSNONYM 同义词不能与数据库名相同,不能创建同义词的同义词 同义词与别名的区别: 别名存在于SELECT 语句生命期内, 是临时的 同义词是数据库的对象,是永久的
例子
create synonym newusers for users 创建视图
CREATE VIEW VIEWNAME(column1,column2...) AS (SELECT 语句)
列名说明视图的列名,如省略,则视图列名与相应表的列名 相同。 定义视图的SELECT语句必须满足以下条件: 不能包含ORDER BY语句 不能包含INTO TEMP语句 不能包含UNION 操作符 目的保证可更新性
对视图更新(修改、插入、删除)时, 其相应的SELECT 语句必须满足以下条件: 基表只能是一个 不能使用聚集函数 不能包含DISTINCT和UNIQUE 关键字 不能包含ORDER BY 子句
删除对象 DROP DATABASE 删除数据库 DROP TABLE 删除表 DROP VIEW 删除视图 DROP INDEX 删除索引 DROP SYNONYM 删除同义词 DROP PROCEDURE 删除存储过程 DRIO TRIGGER 删除触发器
| | |
阅读(545) | 评论(0) | 转发(0) |