第3章关系数据库标准语言-1.pptVIP

  • 5
  • 0
  • 约7.56千字
  • 约 54页
  • 2017-11-26 发布于湖北
  • 举报
第3章关系数据库标准语言-1

3.2 数据定义 3.2.1 数据库的创建、修改和删除 3.2.2 基本表的定义及变更 3.2.3 索引的定义与删除 Page ? * 一 定义语句 语句格式 CREATE TABLE 表名 (列名 数据类型[ 列级完整性约束条件 ] [,列名 数据类型[ 列级完整性约束条件] ] … [,表级完整性约束条件 ] ); 所要定义的基本表的名字 组成该表的各个属性(列) 涉及相应属性列的完整性约束条件 涉及两个或多个属性列的完整性约束条件 Page ? * 例题:建立学生表 [例2] 建立一个“学生”表Student,其中学号是主码,姓名取唯一值 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) UNIQUE,/*Sname取唯一值*/ Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) ) 学生表 主码 Page ? * 例题:建立课程表 [例3] 建立一个课程表Course CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4), Ccredit SMALLINT, FOREIGN KEY(Cpno) REFERENCES Course (Cno) ) 课程表 先行课 Cpno是外码,被参照表是Course 被参照列是Cno Page ? * 例题:建立选课表 [例4] 建立一个学生选课表SC CREATE TABLE SC (Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY (Sno,Cno), /* 主码由两个属性构成,必须作为表级完整性进行定义*/ FOREIGN KEY (Sno) REFERENCES Student(Sno), /* 表级完整性约束条件,Sno是外码,被参照表是Student */ FOREIGN KEY (Cno) REFERENCES Course(Cno) /* 表级完整性约束条件, Cno是外码,被参照表是Course*/ ) 选课表 Page ? * 五种常用完整性约束 非空值约束:NOT NULL 唯一性约束:UNIQUE 主码约束: PRIMARY KEY 外码约束: FOREIGN KEY 检查约束: CHECK PRIMARY KEY与 UNIQUE的区别? Page ? * 说明: PRIMARY KEY与UNIQUE约束类似,通过建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别: ①在一个基本表中只能定义一个PRIMARY KEY约束,但可定义多个UNIQUE约束; ②对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现空值,而对于UNIQUE所约束的唯一键,则允许为空。 PRIMARY KEY= NOT NULL+UNIQUE Page ? * 不能为同一个列或一组列既定义UNIQUE约束, 又定义PRIMARY KEY约束。 PRIMARY KEY既可用于列约束, 也可用于表 约束 Page ? * 二、修改基本表 ALTER TABLE 表名 [ ADD 新列名 数据类型 [ 完整性约束 ] ] [ DROP 完整性约束名 ] [ ALTER COLUMN 列名 数据类型 ]; 要修改的基本表 增加新列和新的完整性约束条件 删除指定的完整性约束条件 用于修改列名和数据类型 Page ? * 修改表ADD例题 [例5] 向Student表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE Student ADD S_entrance DATETIME 不论基本表中原来是否已有数据,新增加的列一律为空值。? Page ? * 修改表DROP语句格式 删除属性列的方法: 间接删除: 把表中要保留的列及其内容复制到一个新表中 删除原表 再将新表重命名为原表名 直接删除属性列:(新:oracle不支持) 例:ALTER TABLE Student Drop S_entrance; Page ? * 修改表MODIFY例题 [例6] 将年龄的数据类型改为整型(假设原为字符型)。 ALTER TABLE Student Alter column Sage INT

文档评论(0)

1亿VIP精品文档

相关文档