数据库原理数据库概论(数据库技术与应用)第8讲
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FOREIGN KEY约束(外键约束)
语法格式: CONSTRAINT<约束名>] FOREIGN KEY REFERENCES <主表名> (<列名>[{,<列名>}])
例如: constraint FK_courseteacher_course foreign key(courseID) references course(courseID) 表示教师授课表中的课程号为外键,参照课程表中的课程号。
例如:coursename varchar(20) unique 表示课程名唯一 如果基本表中的主键为组合键(多个主键),则应该这样表示: constraint PK_grade primary key(studentID,courseID)
第8讲 创建和管理数据表
8.1 数据表的创建 用SQL命令创建数据表
8.2 数据表的管理
用SQL命令修改数据表
【例】为Grade表中的成绩列grade添加一个约束,限制该列的值只能为0~100。 ALTER TABLE Grade ADD CONSTRAINT CK_grade CHECK(grade>=0 and grade<=100) 【例】删除Student表中speciality列上的约束。 ALTER TABLE Student DROP CONSTRAINT DF__student__special__4A18FC72 注意:删除约束时需要指出要删除的约束的名称,该名称可以通过sp_help存储过程来查看, 如:sp_help student,该语句可以显示student表上的约束及约束具体信息。
在图形界面下创建数据表
第8讲 创建和管理数据表
8.1 数据表的创建
用SQL命令创建数据表
CREATE TABLE <表名> (<列定义>[{,<列定义>|<表约束>}])
[CONSTRAINT <约束名> ] <约束类型>
<列名> <数据类型> [DEFAULT] [{<列约束>}]
NULL/NOT NULL,UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK
第8讲 创建和管理数据表
8.2 数据表的管理
用SQL命令修改数据表
【例】修改表Student中的列LoginName0,将其数据类型改为char(10),并且允许为空。 ALTER TABLE Student ALTER COLUMN loginname0 char(10) NULL 【例】删除Student表中的LoginName列。 ALTER TABLE Student DROP COLUMN LoginName 注意:如果要删除的列上存在约束,如主键、默认值等,则需要先删除约束,然后才能删除列。 【例】将Student表改名为StudentInfo。 sp_rename Student, StudentInfo 【例】将Student表中的studentID改名为StuID。 sp_rename 'Student.studentID', 'StuID', 'COLUMN' 注意:如果重命名表名,则省略‘object_type’;如果重命名列名,则‘object_type’值为“COLUMN”。
Student表结构
长度 10 10 2
30 1 4 20 200
能否为空 否 否 可以 可以 可以 否 可以 可以 可以
字段说明 学生ID号,主键 学生姓名 学生性别,取值‘男’或‘女’ 出生日期 所属院系,默认值‘软件学院’ 总学分 入学年月 密码 备注
第8讲 数据库基础知识 8.1 数据表的创建
接下来,我们用SQL命令来创建之前的student表,为了后续章节做准备,我们用同样的 方法继续创建课程表course、成绩表grade,教师表teacher和教师授课表courseteacher。
第8讲 创建和管理数据表
8.2 数据表的管理
用Management Studio查看和修改数据表
(1)在Management Studio中的“对象资源管理器”窗口中,展开“数据库”节点。 (2)鼠标右击要修改的数据表,从菜单中选择“设计”命令,右侧窗口会出现表设计窗 格,可以查看已创建好的表结构,修改列的数据类型、名称等属性,添加或删除列,也 可以修改表的约束。 (3)修改完毕后,单击工具栏中的保存按钮,修改完成。
另外,还可以通过sp_help存储过程来查看表结构信息 例如:sp_help student ----查看student表结构
第8讲 创建和管理数据表
8.2 数据表的管理 用Management Studio查看和修改数据表
第8讲 创建和管理数据表
8.2 数据表的管理 用SQL命令修改数据表
修改表语法格式:
【参数说明】
CONSTRAINT 单独添加约束(总称)
PRIMARY KEY 主键;
FOREIGN KEY 外键;
NULL/NOT NULL 允许/不允许列为空;
CHECK
检查约束;
DEFAULT
列默认取值;
UNIQUE
唯一约束;
studentID char(10) PRIMARY KEY, studentName varchar(10) NOT NULL, speciality varchar(30) DEFAULT(‘软件学院‘), sex char(2) CHECK(sex='男' or sex='女'),
CONSTRAINT PK_student PRIMARY KEY (studentID), CONSTRAINT CK_sex CHECK(sex=’男’ or sex=’女‘)
第8讲 创建和管理数据表
8.1 数据表的创建
用SQL命令创建数据表
UNIQUE 约束(唯一约束)指明基本表在某一列或多个列的组合上的取值必须唯一。
PRIMARY KEY与UNIQUE 的区别: 在一个基本表中只能定义一个PRIMARY KEY约束,但可定义多个UNIQUE约束。 对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现NULL值,
而对于UNIQUE所约束的唯一键,则允许为NULL 。 不能为同一个列或一组列,既定义UNIQUE约束,又定义PRIMARY KEY约束。
第8讲 创建和管理数据表
8.2 数据表的管理
用SQL命令修改数据表
【例】在表Student中新增加一列登录名,列名为LoginName,数据类型为varchar(20),允许空值。 ALTER TABLE student ADD LoginName varchar(20)
【例】在表Student中新增加一列登录名,列名为LoginName0,数据类型为varchar(20),并且不能为空。 ALTER TABLE student ADD LoginName0 varchar(20) NOT NULL DEFAULT('loginname') 注意: (1)当向表中新增一列时,最好为该列定义一个默认约束,使该列有一个默认值。 (2)如果增加的新列没有设置默认值,并且表中已经填写了数据,那么必须指定该列允许空值,否则, 系统将产生错误信息。
数据库技术与应用
Part three
数据库操作
第三章
第8讲 数据库基础知识
8.1 数据表的创建
在图形界面下创建数据表
在SQL Server Management Studio的 资源管理器中找到之前创建好的, CJGL数据库。单击数据库节点上的 加号,展开节点,鼠标右击“表” 节点,在弹出菜单中选择“新建 表”,会在右侧窗口打开表设计器。
ALTER TABLE <表名> ADD <列定义> | <完整性约束定义>
ALTER TABLE <表名> ALTER COLUMN <列名> <数据类型> [NULL | NOT NULL]
ALTER TABLE<表名> DROP COLUMN <列名>
sp_rename 'object_name' , 'new_name','object_type'
【例】删除CJGL数据库中的Grade表。 DROP TABLE Grade 注意:使用DROP TABLE语句不能删除系统表,也不能删除正被其他表中的外键约束参考的 表。删除表时,属于该表的约束和触发器也会自动被删除。
第8讲 创建和管理数据表
8.2 数据表的管理 用SQL命令修改数据表
管理约束语法格式: ALTER TABLE <表名> ADD <表约束> ALTER TABLE<表名> DROP CONSTRAINT <约束名> 删除表语法格式: DROP TABLE<表名1><表名2>...<表名n>
第8讲 创建和管理数据表
下面,我们将来学习如何在表设计 器中: 1. 创建列 2. 设置主键 3. 创建约束
列名 studentID studentName sex birthday speciality credithour ru_date password remark
数据类型 char varchar char datetime varchar tinyint char varchar varchar
constraint FK_couseteacher_teacher foreign key(teacherID) references teacher(teacherID) 同样,这个语句表示教师授课表中的教师号为外键,参照教师表中的教师号。
第8讲 创建和管理数据表
8.1 数据表的创建 用SQL命令创建数据表
语法格式: CONSTRAINT<约束名>] FOREIGN KEY REFERENCES <主表名> (<列名>[{,<列名>}])
例如: constraint FK_courseteacher_course foreign key(courseID) references course(courseID) 表示教师授课表中的课程号为外键,参照课程表中的课程号。
例如:coursename varchar(20) unique 表示课程名唯一 如果基本表中的主键为组合键(多个主键),则应该这样表示: constraint PK_grade primary key(studentID,courseID)
第8讲 创建和管理数据表
8.1 数据表的创建 用SQL命令创建数据表
8.2 数据表的管理
用SQL命令修改数据表
【例】为Grade表中的成绩列grade添加一个约束,限制该列的值只能为0~100。 ALTER TABLE Grade ADD CONSTRAINT CK_grade CHECK(grade>=0 and grade<=100) 【例】删除Student表中speciality列上的约束。 ALTER TABLE Student DROP CONSTRAINT DF__student__special__4A18FC72 注意:删除约束时需要指出要删除的约束的名称,该名称可以通过sp_help存储过程来查看, 如:sp_help student,该语句可以显示student表上的约束及约束具体信息。
在图形界面下创建数据表
第8讲 创建和管理数据表
8.1 数据表的创建
用SQL命令创建数据表
CREATE TABLE <表名> (<列定义>[{,<列定义>|<表约束>}])
[CONSTRAINT <约束名> ] <约束类型>
<列名> <数据类型> [DEFAULT] [{<列约束>}]
NULL/NOT NULL,UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK
第8讲 创建和管理数据表
8.2 数据表的管理
用SQL命令修改数据表
【例】修改表Student中的列LoginName0,将其数据类型改为char(10),并且允许为空。 ALTER TABLE Student ALTER COLUMN loginname0 char(10) NULL 【例】删除Student表中的LoginName列。 ALTER TABLE Student DROP COLUMN LoginName 注意:如果要删除的列上存在约束,如主键、默认值等,则需要先删除约束,然后才能删除列。 【例】将Student表改名为StudentInfo。 sp_rename Student, StudentInfo 【例】将Student表中的studentID改名为StuID。 sp_rename 'Student.studentID', 'StuID', 'COLUMN' 注意:如果重命名表名,则省略‘object_type’;如果重命名列名,则‘object_type’值为“COLUMN”。
Student表结构
长度 10 10 2
30 1 4 20 200
能否为空 否 否 可以 可以 可以 否 可以 可以 可以
字段说明 学生ID号,主键 学生姓名 学生性别,取值‘男’或‘女’ 出生日期 所属院系,默认值‘软件学院’ 总学分 入学年月 密码 备注
第8讲 数据库基础知识 8.1 数据表的创建
接下来,我们用SQL命令来创建之前的student表,为了后续章节做准备,我们用同样的 方法继续创建课程表course、成绩表grade,教师表teacher和教师授课表courseteacher。
第8讲 创建和管理数据表
8.2 数据表的管理
用Management Studio查看和修改数据表
(1)在Management Studio中的“对象资源管理器”窗口中,展开“数据库”节点。 (2)鼠标右击要修改的数据表,从菜单中选择“设计”命令,右侧窗口会出现表设计窗 格,可以查看已创建好的表结构,修改列的数据类型、名称等属性,添加或删除列,也 可以修改表的约束。 (3)修改完毕后,单击工具栏中的保存按钮,修改完成。
另外,还可以通过sp_help存储过程来查看表结构信息 例如:sp_help student ----查看student表结构
第8讲 创建和管理数据表
8.2 数据表的管理 用Management Studio查看和修改数据表
第8讲 创建和管理数据表
8.2 数据表的管理 用SQL命令修改数据表
修改表语法格式:
【参数说明】
CONSTRAINT 单独添加约束(总称)
PRIMARY KEY 主键;
FOREIGN KEY 外键;
NULL/NOT NULL 允许/不允许列为空;
CHECK
检查约束;
DEFAULT
列默认取值;
UNIQUE
唯一约束;
studentID char(10) PRIMARY KEY, studentName varchar(10) NOT NULL, speciality varchar(30) DEFAULT(‘软件学院‘), sex char(2) CHECK(sex='男' or sex='女'),
CONSTRAINT PK_student PRIMARY KEY (studentID), CONSTRAINT CK_sex CHECK(sex=’男’ or sex=’女‘)
第8讲 创建和管理数据表
8.1 数据表的创建
用SQL命令创建数据表
UNIQUE 约束(唯一约束)指明基本表在某一列或多个列的组合上的取值必须唯一。
PRIMARY KEY与UNIQUE 的区别: 在一个基本表中只能定义一个PRIMARY KEY约束,但可定义多个UNIQUE约束。 对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现NULL值,
而对于UNIQUE所约束的唯一键,则允许为NULL 。 不能为同一个列或一组列,既定义UNIQUE约束,又定义PRIMARY KEY约束。
第8讲 创建和管理数据表
8.2 数据表的管理
用SQL命令修改数据表
【例】在表Student中新增加一列登录名,列名为LoginName,数据类型为varchar(20),允许空值。 ALTER TABLE student ADD LoginName varchar(20)
【例】在表Student中新增加一列登录名,列名为LoginName0,数据类型为varchar(20),并且不能为空。 ALTER TABLE student ADD LoginName0 varchar(20) NOT NULL DEFAULT('loginname') 注意: (1)当向表中新增一列时,最好为该列定义一个默认约束,使该列有一个默认值。 (2)如果增加的新列没有设置默认值,并且表中已经填写了数据,那么必须指定该列允许空值,否则, 系统将产生错误信息。
数据库技术与应用
Part three
数据库操作
第三章
第8讲 数据库基础知识
8.1 数据表的创建
在图形界面下创建数据表
在SQL Server Management Studio的 资源管理器中找到之前创建好的, CJGL数据库。单击数据库节点上的 加号,展开节点,鼠标右击“表” 节点,在弹出菜单中选择“新建 表”,会在右侧窗口打开表设计器。
ALTER TABLE <表名> ADD <列定义> | <完整性约束定义>
ALTER TABLE <表名> ALTER COLUMN <列名> <数据类型> [NULL | NOT NULL]
ALTER TABLE<表名> DROP COLUMN <列名>
sp_rename 'object_name' , 'new_name','object_type'
【例】删除CJGL数据库中的Grade表。 DROP TABLE Grade 注意:使用DROP TABLE语句不能删除系统表,也不能删除正被其他表中的外键约束参考的 表。删除表时,属于该表的约束和触发器也会自动被删除。
第8讲 创建和管理数据表
8.2 数据表的管理 用SQL命令修改数据表
管理约束语法格式: ALTER TABLE <表名> ADD <表约束> ALTER TABLE<表名> DROP CONSTRAINT <约束名> 删除表语法格式: DROP TABLE<表名1><表名2>...<表名n>
第8讲 创建和管理数据表
下面,我们将来学习如何在表设计 器中: 1. 创建列 2. 设置主键 3. 创建约束
列名 studentID studentName sex birthday speciality credithour ru_date password remark
数据类型 char varchar char datetime varchar tinyint char varchar varchar
constraint FK_couseteacher_teacher foreign key(teacherID) references teacher(teacherID) 同样,这个语句表示教师授课表中的教师号为外键,参照教师表中的教师号。
第8讲 创建和管理数据表
8.1 数据表的创建 用SQL命令创建数据表