4.3 数据定义


SQL的数据定义语言DLL包括定义模式、域、关系、视图、索引等
本节介绍如何定义 基本表索引模式

4.3.1 SQL的数据类型

4.3.2 模式的定义和删除 (尚未学习)

DBMS为关系的命名提供了一个三级层次结构。
目录->模式->关系或视图
SQL环境中的目录不能重名,同一目录下模式不能重名,同一模式下的关系不能重名
当用户连接到数据库时,系统为该连接建立一个默认的目录和模式

符号约定 见课本p73

4.3.3 定义、修改、删除基本表

SQL的表有三类:基本表、视图表、导出表
基本表包括持久基本表、全局临时表、局部临时表
视图表是命名的导出表,用创建视图定义
导出表通过查询表达式求值,直接或间接从一个或多个表中导出
本书中,“基本表”主要用于表示持久基本表,“表”泛指基本表和导出表(包括视图)

1. 创建基本表

CREATE TABLE 表名(
列名 数据类型 [DEFAULT 缺省值] [列级约束定义],
列名 数据类型 [DEFAULT 缺省值] [列级约束定义],
…,
[表级约束定义], …, [表级约束定义]);

1) 列约束定义

列级约束定义形式:
[CONSTRAINT 约束名] 列约束
常用列约束:
NOT NULL 不允许该列取空值;不加NOT NULL 限制时,该列可以取空值
PRIMARY KEY:指明该列是主码,其值非空唯一
UINQUE :该列上的值必须唯一,说明该列为候选码
CHECK(条件):指明该列上的值必须满足的条件,其中条件是一个布尔表达式

2) 表约束定义

一个表可以包含零个或多个表约束定义
表级约束定义形式:
[CONSTRAINT 约束名] 表约束
PRIMARY KEY(A1,A2,…,AK):说明属性列A1,A2,…,AK构成关系的主码
UNIQUE(A1,A2,…,AK):说明属性列A1,A2,…,AK上的值必须唯一,说明属性列A1,A2,…,AK构成候选码
CHECK(条件):该表上的一个完整性约束,条件是一个涉及该表一个或多个列的布尔表达式
FOREIGN KEY(A1,A2,…,AK) REFERENCES 外表名 (外表名主码):该表上属性列A1,A2,…,AK是该表的外码,且与外表X中的主码相对应

注意:主码是唯一且不能取空的,不用再说明UNIQUE和NOT NULL

2. 修改基本表

ALTER TABLE 表名
ADD 列名 数据类型
ALTER 列名 SET DEFAULT 缺省值
ALTER 列名 DROP DEFAULT
DROP 列名 CASCADE/RESTRICT
ADD 表约束定义
DROP CONSTRAINT 约束名 CASCADE/RESTRICT

3. 删除基本表

DROP TABLE 表名 CASCADE/RESTRICT

4.3.4建立和删除索引(尚未学习)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值