第2部分3章关系数据库语言sql3-3定义数据性_第1页
第2部分3章关系数据库语言sql3-3定义数据性_第2页
第2部分3章关系数据库语言sql3-3定义数据性_第3页
第2部分3章关系数据库语言sql3-3定义数据性_第4页
第2部分3章关系数据库语言sql3-3定义数据性_第5页
免费预览已结束,剩余18页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1完整性约束综述2使用primarykey(主键)约束实施实体完整性3使用foreignkey(外键)约束实施参照完整性4使用unique、check等约束实施用户定义完整性

第3-3章数据库完整性设计1.实体完整性学号姓名性别年龄班号02010202李勇刘晨男男1819信01信011完整性约束综述学号课号成绩0201023300100180902.参照完整性班号专业院系信管1信管2信息管理信息管理管院管院“班级”学号姓名性别年龄班号02010235李勇刘晨男男1819信管1信管2“学生”3.用户定义完整性:如:性别只能为“男”或“女”一.完整性分类二.完整性约束的范围

1.列级约束:应用于某一列上。

2.表级约束:应用于表中的多列上。三.完整性约束条件的设置完整性约束条件可以在建表时设置,也可以后增或删除。在建表时设置约束的命令格式是:

createtable表名(列名1数据类型1列级约束条件1,……列名n数据类型n列级约束条件n,

表级约束条件1,……表级约束条件m,);1完整性约束综述

1.建立列级主键约束

例1:将“学生”表中的“学号”列设为主键。createtable学生(学号varchar(8)primarykey,

姓名varchar(8),:);

例2:将“班级”表中的“班号”列设为主键,并命名。createtable班级(班号varchar(7)primarykey,

专业varchar(20),

院系varchar(20));2使用primarykey(主键)约束实施实体完整性

2.建立表级主键约束

例1:将“选修”表中的“学号”与“课号”列设为主键。

createtable选修(学号varchar(8),

课号varchar(4),成绩tinyint,

primarykey(学号,课号));2使用primarykey(主键)约束实施实体完整性学号课号成绩020102010233001002001809075例1:将学生表中的“班号”列设为外键。前提:(1)

班级表中的“班号”列已设为主键;(2)外键与主键数据类型及长度相同。

createtable学生(学号varchar(8)primarykey,姓名varchar(8),性别varchar(2),年龄tinyint,班号varchar(7)

foreignkeyreferences班级(班号)

);3使用foreignkey(外键)约束实施参照完整性班号专业院系信管1信管2信息管理信息管理管院管院“班级”学号姓名性别年龄班号02010235李勇刘晨男男1819信管1信管2“学生”例2.将“选修表”中的“学号”列和“课号”列分别设为外键。

createtable选修(学号varchar(8)

foreignkeyreferences学生(学号),

课号varchar(4)

foreignkeyreferences课程(课号),成绩tinyint,primarykey(学号,课号));3使用foreignkey(外键)约束实施参照完整性学号姓名性别年龄班号0201李勇男18信管1学号课号成绩020102010010028088课号课名学时学分001002微机原理操作系统50402.52“学生”关系“课程”关系“选修”关系一.使用unique约束

该约束用来确保不受主键约束的列上的数据的唯一性。例:createtable学生(学号varchar(8)primarykey,姓名varchar(8),

身份证号varchar(18)unique,性别varchar(2),年龄tinyint,班号varchar(7)

foreignkeyreferences班级(班号),);4使用unique、check等约束实施用户定义完整性unique约束与主键约束的区别主要表现在:1.主要用在非主键的一列或多列上要求数据唯一的情况。2.允许该列上存在null值,而主键约束不行。3.在一个表上可以允许设置多个unique约束,而只能设置一个主键。

4使用unique、check等约束实施用户定义完整性二.使用null与notnull约束

null表示指定列可以为空,notnull表示指定列不能为空。如果某列没有明确指定,默认为notnull。例2.将选修表中的“成绩”列设为可以为空。

createtable选修(学号varchar(8)

foreignkeyreferences学生(学号),

课号varchar(4)

foreignkeyreferences课程(课号),成绩tinyint

null,primarykey(学号,课号));4使用unique、check等约束实施用户定义完整性二.使用check约束check约束在形式上是一个逻辑表达式。可以设置列级check约束和表级check约束。

1.定义列级check约束例1:为学生表中的性别和年龄列设置check约束(注意在同一列加多种约束的方法)。

createtable学生(学号varchar(8)primarykey,姓名varchar(8)notnull,性别varchar(2)check(性别=‘男’or性别=‘女’),年龄tinyintcheck(年龄>15and年龄<40),班号varchar(7)

foreignkeyreferences班级(班号));

说明:and、or两边必须有空格。4使用unique、check等约束实施用户定义完整性例2.为课程表的学时和学分列设置约束。createtable课程(课号varchar(4)primarykey,课名varchar(30)notnull,

学时tinyint

check(学时>=0and学时<=96),学分realcheck(学分>=0and学分<=6),

check(学时/16.0>=学分));

例3.为选修表的成绩列设置约束。createtable选修(学号varchar(8)

foreignkeyreferences学生(学号),

课号varchar(4)

foreignkeyreferences课程(课号),成绩tinyintcheck(成绩>=0and成绩<=100),primarykey(学号,课号));4使用unique、check等约束实施用户定义完整性

学生管理数据库中的各表可定义如下:注意:被参照表要先于参照表定义)

1.班级表

createtable班级(班号varchar(7)primarykey,

专业varchar(20)notnull,

院系varchar(20)notnull);

2.课程表createtable课程(课号varchar(4)primarykey,课名varchar(30)notnull,

学时tinyint

check(学时>=0and学时<=96)学分realcheck(学分>=0and学分<=6),check(学时/16.0>=学分));总结:学生管理数据库的建立与完整性设置

3.学生表createtable学生(学号varchar(8)primarykey,姓名varchar(8)notnull,性别varchar(2)

check(性别=’男’or性别=’女’),年龄tinyintcheck(年龄>=15and年龄<=50),班号varchar(7)

foreignkeyreferences班级(班号),);

4.选修表createtable选修(学号varchar(8)

foreignkeyreferences学生(学号),

课号varchar(4)

foreignkeyreferences课程(课号),成绩tinyintcheck(成绩>=0and成绩<=100),primarykey(学号,课号));总结:学生管理数据库的建立与完整性设置

学号姓名性别年龄班号学号课号成绩课号课名学时学分班号专业院系“学生”关系“课程”关系“选修”关系“班级”关系总结:学生管理数据库的建立与完整性设置

数据库更新包括向表中插入数据、修改表中的数据和删除表中的数据。更新时,注意不要违背数据完整性。1向表中插入数据行2修改表中数据3删除表中数据行

6数据库更新1.插入1行用法1:写出一个表的所有列名,并依次给出对应值。

例:向学生表中插入一个学生元组。

insert学生(学号,姓名,性别,年龄,班号)

values(‘201’,‘王云’,‘男’,19,‘信管2’);此时,列名表可省,但值的顺序要与表中列的顺序一致。

7向表中插入数据行用法2:写出若干列名,给出对应的值。

例:向选修表中插入一个选课记录

insert选修(学号,课号)

values(‘201’,‘03’);

成绩列中没有给值,默认取空值。但如果约束条件不允许该列取空值的话,此插入就是非法的,拒绝执行。7向表中插入数据行语句格式:

update表名(只允许针对一个表)

set列名1=表达式1,列名2=表达式2....

where条件

1.修改某行的数据

例:将‘003’号课程的学时改为180。

update课程

set学时=180

w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论