1、企管理表格企管理表格目建学生管理数据和数据表目建学生管理数据和数据表 模块模块 2-1 2-1 创建学生管理数据库创建学生管理数据库 学习目标学习目标工作任务工作任务任务一:在任务一:在Management StudioManagement Studio中创建数中创建数据库据库studentstudent【任务分析】任务分析】根根据据任任务务要要求求,要要求求使使用用SQL SQL Server Server Management Management StudioStudio的的图图形形化化界界面面创创建建名名为为studentstudent的的数数据据库库,并并保保存存在在C C盘盘dbd
2、b文件夹下。数据库的具体属性如下表所示:文件夹下。数据库的具体属性如下表所示:表表 2 2 1 student1 student的数据文件和事务日志文件的数据文件和事务日志文件逻辑名称文件类型文件组系统文件名初始大小最大容量增长容量student_data数据文件primaryC:/db/student_data.mdf3MB30MB10MBstudent_log事务日志文件C:/db/student_log.ldf1MB10MB10%操作步骤操作步骤1 1、打开、打开Management StudioManagement Studio界面界面操作步骤操作步骤2 2、打开、打开“新建数据库新建
3、数据库”对话框对话框操作步骤操作步骤3 3、按要求设置数据库基本属性、按要求设置数据库基本属性4 4、设置数据库的高级属性(排序规则)、设置数据库的高级属性(排序规则)操作步骤操作步骤5 5、创建完毕后,查看数据库、创建完毕后,查看数据库。操作步骤操作步骤知识说明:数据库的结构知识说明:数据库的结构逻辑结构逻辑结构 是是指指数数据据库库由由哪哪些些性性质质的的信信息息组组成成。SQL SQL ServerServer的的数数据据库库是是由由表表、视视图图、索索引引、约约束束等等各各种种不不同同的的对对象象组组成成,它它们们构成了数据库的逻辑结构。构成了数据库的逻辑结构。物理结构物理结构 也也称
4、称为为存存储储结结构构,表表示示数数据据库库文文件件是是如如何何在在磁磁盘盘上上存存放放的的。数数据据库库文文件件在在磁磁盘盘上上以以文文件件的的单单位位存存放放,由由数数据据库库文文件件和事务日志文件组成。和事务日志文件组成。任务任务2 2 用用CREATE DATABASECREATE DATABASE语句创建数据语句创建数据库库student student【任务分析】任务分析】要要求求使使用用Management Management StudioStudio创创建建名名为为studentstudent的的数数据据库库,同同时时设设置置数数据据库库的的相关属性。相关属性。表表 2 2
5、1 student1 student的数据文件和事务日志文件的数据文件和事务日志文件逻辑名称文件类型文件组系统文件名初始大小最大容量增长容量student_data数据文件primaryC:/db/student_data.mdf3MB30MB10MBstudent_log事务日志文件C:/db/student_log.ldf1MB10MB10%关键代码关键代码 NAME=student_data,NAME=student_data,FILENAME=c:dbstudent.mdf,FILENAME=c:dbstudent.mdf,SIZE=3MB,SIZE=3MB,MAXSIZE=30MB,
6、MAXSIZE=30MB,FILEGROWTH=10MB FILEGROWTH=10MB 知识说明:知识说明:CREATE DATABASECREATE DATABASE语句的基本格式语句的基本格式CREATE DATABASE database_name CREATE DATABASE database_name ON PRIMARYON PRIMARY()LOG ON LOG ON()练习练习1 1在在SQL ServerSQL Server中创建数据库,具体要求如下:中创建数据库,具体要求如下:数据库名称为数据库名称为Test1Test1。主主要要数数据据文文件件:逻逻辑辑文文件件名名为
7、为Test1Data1Test1Data1,物物理理文文件件名名为为Test1Data1.mdfTest1Data1.mdf,初初始始容容量量为为1MB1MB,最最大大容容量量为为10MB10MB,递递增增量为量为1MB1MB。次次要要数数据据文文件件:逻逻辑辑文文件件名名为为Test1Data2Test1Data2,物物理理文文件件名名为为Test1Data2.ndfTest1Data2.ndf,初初始始容容量量为为1MB1MB,最最大大容容量量为为10MB10MB,递递增增量为量为1MB1MB。事事务务日日志志文文件件:逻逻辑辑文文件件名名为为Test1Log1Test1Log1,物物理理
8、文文件件名名为为Test1Log1.ldfTest1Log1.ldf,初初始始容容量量为为1MB1MB,最最大大容容量量为为5MB5MB,递递增增量量为为20%20%。思考思考假如没有对日志文件进行定义,那么日志文件的大假如没有对日志文件进行定义,那么日志文件的大小和数据文件有什么差别?小和数据文件有什么差别?怎样创建有多个数据文件的数据库?怎样创建有多个数据文件的数据库?模块模块 2-2 2-2建立学生管理系统中的数据表建立学生管理系统中的数据表学习目标学习目标工作任务工作任务任务一:创建数据表任务一:创建数据表studentstudent的表结构的表结构【任务分析】任务分析】数数据据表表包
9、包括括表表结结构构、约约束束以以及及记记录录等等三三个个要要件件。这这个个任任务务我我们们主主要要是是完完成成对对数数据据表表studentstudent表表结结构构的的创创建建,表表结结构构如如下下表所示:表所示:表表 2 2 5 student5 student表的结构表的结构字段名类型是否允许为空备注Snochar(10)不允许学生编码snamechar(10)不允许姓名ssexchar(2)允许性别sbirthdaydatetime允许出生日期sscorenumeric(18,0)允许入学成绩classnochar(8)不允许班级编码任务一:创建数据表任务一:创建数据表students
10、tudent的表结构的表结构【任务分析】任务分析】可以使用两种方法来解决这个问题:可以使用两种方法来解决这个问题:1.1.利利用用Management Management StudioStudio工工具具,在在图图形形化化的的界界面面中中创创建建studentstudent表结构。表结构。2.2.使用使用CREATE TABLECREATE TABLE语句创建表结构。语句创建表结构。方法一:操作界面(操作步骤)方法一:操作界面(操作步骤)1 1、展展开开需需要要创创建建表表的的数数据据库库“student”“student”并并右右击击“表表”,在在弹出的快捷菜单中选择弹出的快捷菜单中选择“
11、新建表新建表”命令。命令。方法一:操作界面(操作步骤)方法一:操作界面(操作步骤)2 2、在在打打开开的的表表设设计计器器对对话话框框中中,按按照照任任务务要要求求设设置置表表studentstudent各列的列名、数据类型、允许空(非空约束)各列的列名、数据类型、允许空(非空约束)方法二:方法二:SQL SQL 代码代码3 3、单单击击“SQL“SQL Server Server Management Management Studio”Studio”工工具具栏栏上上的的【新建查询】按钮新建查询】按钮 方法二:方法二:SQL SQL 代码代码关键代码关键代码CREATE TABLE stud
12、entCREATE TABLE student(sno char(10)NOT NULL,sno char(10)NOT NULL,sname char(10)NOT NULL,sname char(10)NOT NULL,ssex char(2)NULL,ssex char(2)NULL,sbirthday datetime NULL,sbirthday datetime NULL,sscore numeric(18,0)NULL,sscore numeric(18,0)NULL,classno char(8)NOT NULLclassno char(8)NOT NULL)知识说明:数据类型
13、知识说明:数据类型数据类型具体种类数值型整型tinyint、smallint、int、bigint 定点型decimal和numeric 浮点型float、real字符型普通字符型char、varchar、text Unicode字符型nchar、nvarchar、ntext日期时间型datatime、smalldatetime货币型money、smallmoney 二进制字符型binary、varbinary、image其他数据类型bit、cursor、timestamp、sql_variant、uniqueidentifier、table、xml知识说明:数据表创建知识说明:数据表创建CR
14、EATE TABLE table_nameCREATE TABLE table_name (|PRIMARY KEY|UNIQUE ,.n|PRIMARY KEY|UNIQUE ,.n ):=column_name data_type :=column_name data_type COLLATE COLLATE DEFAULT constant_expression DEFAULT constant_expression|IDENTITY (seed,increment)NOT FOR|IDENTITY (seed,increment)NOT FOR REPLICATION REPLICAT
15、ION .n .n 任务二任务二 为为studentstudent表添加数据表添加数据【任务分析】任务分析】本本任任务务将将要要实实现现为为任任务务1 1中中创创建建的的表表studentstudent添添加加数数据据,studentstudent表表中中的的部部分分数数据据如如下下表表所所示示。其其中中每每行行代代表表表表中的一条记录,而每列代表表中的一个字段。中的一条记录,而每列代表表中的一个字段。表表 2 2 6 student6 student表中的表中的部分数据部分数据snosnamessexsbirthdaysscoreclassno0701011101孙晓龙男1988-6-04
16、479070101110701011102杜学艳女1987-6-10 475070101110701011103王迎男1989-2-11474070101110701011104安专林男1988-2-16 473070101110701011105赵飞男1987-1-23 45207010111方法一:在方法一:在SQL Server Management StudioSQL Server Management Studio图形化界面中添加数据图形化界面中添加数据1 1、在在打打开开的的“对对象象资资源源管管理理器器”窗窗口口中中,右右击击表表studentstudent,在弹出的快捷菜单中选
17、择在弹出的快捷菜单中选择“打开表打开表”命令命令 。方法一:在方法一:在SQL Server Management StudioSQL Server Management Studio图形化界面中添加数据图形化界面中添加数据2 2、在在打打开开的的表表内内容容标标签签页页中中,按按照照任任务务要要求求逐逐条条输输入入studentstudent表表中中的的每每条条记记录录。其其中中sbirthdaysbirthday字字段段是是日日期期时时间间型型(DatetimeDatetime)数数据据,录录入入时时可可以以使使用用斜斜杠杠(/)、连连字字符符(-)或句号(或句号(.)作为年月日的分隔)作
18、为年月日的分隔 方法二:使用方法二:使用INSERT INTOINSERT INTO语句为数据表语句为数据表studentstudent添加数据添加数据3 3、单单击击“SQL“SQL Server Server Management Management Studio”Studio”工工具具栏栏上上的的“新建查询新建查询”按钮按钮 关键代码关键代码INSERT INTO studentINSERT INTO student (sno,sname,ssex,sbirthday,sscore,classno)(sno,sname,ssex,sbirthday,sscore,classno)VAL
19、UESVALUES (0701011101,(0701011101,孙晓龙孙晓龙,男男,1988-6-,1988-6-4,479,07010111)4,479,07010111)方法二:使用方法二:使用INSERT INTOINSERT INTO语句为数据表语句为数据表studentstudent添加数据添加数据知识说明知识说明 关系模型关系模型 关关系系模模型型是是现现在在广广泛泛采采用用的的数数据据模模型型,它它与与先先前前曾曾使使用用的的层层次次模模型型、网网状状模模型型相相比比具具有有显显著著的的特特点点。它它主主要要采采用用二二维维表表格格的的方方式式来来表表示示实实体体之之间间的的
20、关关系系,一一个个表表就就代代表表一一个个实实体体,表表由由行行和和列列组组成成,一一行行代代表表一一个个对对象象,一一列列代代表表实实体体的的一一个个属性。关系模型数据库也称为关系数据库。属性。关系模型数据库也称为关系数据库。模块模块 2-3 2-3 设置学生管理系统设置学生管理系统 中的数据表的完整性中的数据表的完整性 学习目标学习目标工作任务工作任务任务任务1 1 创建数据表创建数据表studentstudent的约束的约束任务任务1.11.1:将数据表的:将数据表的snosno字段设置为主键。字段设置为主键。任务任务1.21.2:将数据表的:将数据表的ssexssex字段默认值设置为字
21、段默认值设置为“男男”。任务任务1.31.3:将数据表的:将数据表的sscoresscore字段设置在字段设置在306306到到650650的范围的范围之间。之间。任务任务1.11.1:将数据表的:将数据表的snosno字段设置为主键字段设置为主键【任务分析】任务分析】主主键键约约束束是是最最重重要要的的约约束束类类型型,它它是是每每条条记记录录的的标标识识符符,即即可可能能是是该该记记录录与与其其它它记记录录得得以以区区别别开开来来的的唯唯一一不不同同。如如studentstudent表表中中有有这这样样两两条条记记录录(07010111010701011101,孙孙晓晓龙龙,男男,1988
22、-6-41988-6-4,479479,0701011107010111),(07010111110701011111,孙孙晓晓龙龙,男男,1988-6-41988-6-4,479479,0701011107010111)。它它们们之之所所以以被被视视为为两两条条不不同同的的记记录录,就就因因为为snosno字字段段不不一一样样。而而snamesname字字段段由由于于现现实实世世界界中中存存在在同同名名的的人人而而可可能能不不唯唯一一,不不能能作作为为表表的的主主键键字字段段。每每张张数数据据表表只只能能设设置置一一个个主主键键,在在表表中中定定义义的的主主键键列列不不能能有有重复的值。重复
23、的值。任务任务1.11.1:将数据表的:将数据表的snosno字段设置为主键字段设置为主键1 1、右右击击“对对象象资资源源浏浏览览器器”窗窗口口中中要要创创建建主主键键的的表表名名studentstudent,在弹出的快捷菜单上单击,在弹出的快捷菜单上单击“修改修改”命令命令 。任务任务1.11.1:将数据表的:将数据表的snosno字段设置为主键字段设置为主键2 2、在在打打开开的的【表表-dbo.student-dbo.student】标标签签页页上上右右击击要要设设置置为为主主键键的的列名列名snosno,在弹出的快捷菜单中选择【设置主键】命令,在弹出的快捷菜单中选择【设置主键】命令
24、。任务任务1.2 1.2 将数据表的将数据表的ssexssex字段默认值字段默认值设置为设置为“男男”【任务分析】任务分析】用用户户在在插插入入某某条条记记录录时时,如如果果没没有有为为某某个个字字段段输输入入相相应应的的值值,该该列列的的值值就就为为空空。如如果果该该列列设设置置了了默默认认约约束束,如如为为studentstudent的的ssexssex字字段段设设置置过过默默认认值值“男男”,那那么么即即使使该该字字段段没没有有输输入入任任何何值值,记记录录输输入入完完成成后后也也会会获获得得该字段的默认值该字段的默认值“男男”。在在ssexssex列属性的列属性的“常规常规”选项区中的
25、选项区中的“默认值或绑定默认值或绑定”选选项中输入默认值项中输入默认值“男男”。任务任务1.2 1.2 将数据表的将数据表的ssexssex字段默认值字段默认值设置为设置为“男男”任务任务1.3 1.3 将数据表的将数据表的sscoresscore字段设置字段设置在在306306到到650650的范围之间的范围之间【任务分析】任务分析】该该校校学学生生的的入入学学成成绩绩的的最最高高分分是是650650,最最低低分分是是306306分分,即即在在306306到到650650的的范范围围之之间间,该该任任务务就就要要为为sscoresscore设设置置检检查查约约束束,如如果果输输入入的的入入学
26、学成成绩绩超超出出这这个个范范围围,系系统统会会认认为为输输入入的的信信息息有有误误拒拒绝绝接接收收数数据据,从从而而保保证证了了数数据的完整性据的完整性 。“CHECK“CHECK约束表达式约束表达式”对话框对话框 任务任务1.3 1.3 将数据表的将数据表的sscoresscore字段设置字段设置在在306306到到650650的范围之间的范围之间知识说明知识说明数据完整性数据完整性 数据完整性是指数据库中数据的正确性和一致性,它数据完整性是指数据库中数据的正确性和一致性,它是衡量数据库设计好坏的一项重要指标。是衡量数据库设计好坏的一项重要指标。分类分类实体完整性实体完整性域完整性域完整性
27、参照完整性参照完整性用户自定义完整性用户自定义完整性任务任务2 2 创建数据表创建数据表classclass的约束的约束【任务分析】任务分析】该该任任务务是是为为数数据据表表classclass建建立立各各类类约约束、规则以实现数束、规则以实现数 据的完整性。据的完整性。要要完完成成上上述述任任务务,则则分分别别要要为为相相关关字字段段设设置置主主键键约约束束 和和唯唯一一约约束束,建建立立并并绑绑定定数数据据库库的的规规则则。该该任任务务的的实实现现,主主要要采采用用编写程序代码的方式。编写程序代码的方式。任务任务2 2 创建数据表创建数据表classclass的约束的约束【任务分析】任务分
28、析】具体还可以分为以下几个子任务:具体还可以分为以下几个子任务:任务任务2.12.1:将数据表的:将数据表的classnoclassno字段设字段设置为主键。置为主键。任务任务2.22.2:将数据表的:将数据表的classnameclassname字段字段的值设成唯一。的值设成唯一。任务任务2.32.3:创建规则:创建规则zydm_rulezydm_rule,并将,并将它绑定在字段它绑定在字段 pno pno 上,用来保证输入的专上,用来保证输入的专业代码只能是数字字符。业代码只能是数字字符。任务任务2.1 2.1 将数据表的将数据表的classnoclassno字段设置字段设置为主键为主键【
29、程序代码】程序代码】USE studentUSE studentGOGOALTER TABLE classALTER TABLE classADD CONSTRAINT pk_bhADD CONSTRAINT pk_bhPRIMARY KEY CLUSTERED(classno)PRIMARY KEY CLUSTERED(classno)GOGO【执行效果】执行效果】任务任务2.1 2.1 将数据表的将数据表的classnoclassno字段设置字段设置为主键为主键任务任务2.2 2.2 将数据表的将数据表的classnameclassname字段的值字段的值设成唯一设成唯一【程序代码】程序代
30、码】USE studentUSE studentGOGOALTER TABLE classALTER TABLE classADD CONSTRAINT uk_bjmcADD CONSTRAINT uk_bjmcUNIQUE NONCLUSTERED(classname)UNIQUE NONCLUSTERED(classname)GOGO【执行效果】执行效果】任务任务2.2 2.2 将数据表的将数据表的classnameclassname字段的值字段的值设成唯一设成唯一任务任务2.3 2.3 创建规则创建规则zydm_rulezydm_rule,并将它绑定在字段,并将它绑定在字段pnopno上
31、,用来保证输入的专业代码只能是数字字符上,用来保证输入的专业代码只能是数字字符【程序代码】程序代码】USE studentUSE studentGOGOCREATE RULE zydm_ruleCREATE RULE zydm_ruleASASch ch like 0-90-90-90-9like 0-90-90-90-9GOGOEXEC sp_bindrule EXEC sp_bindrule zydm_rule,class.pnozydm_rule,class.pnoGOGO任务任务2.3 2.3 创建规则创建规则zydm_rulezydm_rule,并将它绑定在字,并将它绑定在字段段pn
32、opno上,用来保证输入的专业代码只能是数字字上,用来保证输入的专业代码只能是数字字符符【执行效果】执行效果】知识说明:约束的类型知识说明:约束的类型约束类型说明约束对象关键字非空约束定义某列不接受空值列NOT NULL默认约束为表中某列建立默认值列DEFAULT检查约束为表中某列能接受的值进行限定列CHECK主键约束在表中定义主键来唯一标识每行记录行PRIMARY KEY唯一约束限制表的非主键列不允许输入重复值行UNIQUE外键约束可以为两个相互关联的表建立关系表与表之间FOREIGN KEY任务任务3 3 创建数据表创建数据表studentstudent和和classclass之间的之间的
33、关系,并建立数据库关系图显示两者关系关系,并建立数据库关系图显示两者关系【任务分析】任务分析】SQL SQL ServerServer是是关关系系数数据据库库,它它的的基基本本对对象象之之一一是是数数据据表表,而而数数据据表表并并不不是是彼彼此此孤孤立立的的,而而是是存存在在着着内内在在的的关关系系。比比如如根根据据studentstudent表表中中的的 一一 条条 记记 录录(07010111010701011101,孙孙 晓晓 龙龙 ,男男,1988-6-41988-6-4,479479,0701011107010111)和和classclass表表中中的的记记录录(0701011107
34、010111,计计应应07110711,01010101),我我们们很很容容易易得得出出孙孙晓晓龙龙是是计计应应07110711班班的的学学生生,就就是是由由于于这这两两张张表表是是存存在在关关系系的的,它它们们存存在在着着共共同同的的字字段段。为为表表studentstudent和和表表classclass创创建建关关系系就就是是通通过过classclass表表中中的的classnoclassno字字段段和和studentstudent表表中中的的classnoclassno字字段段,建建立立两两表表间间的的连连接接。其其中中class.classnoclass.classno是是class
35、class表表中中的的主主键键,student.classnostudent.classno是是表表中中的的外外键键;本本任任务务实实质质也也就就是是为为表表studentstudent创创建建外外键键约约束束。关关系系图图的的建建立立可可以以使使表表间间的的关关系系以以图图形形的的方方式式加加以以显显示示,更更加加清清晰晰的的表表现现出出两两张张表表之之间间的的关关联联。这这样样这这个个任任务务可可以以进进一一步分解为两个子任务:步分解为两个子任务:任务任务3.13.1:创建数据表:创建数据表classclass和和studentstudent之间的关系之间的关系任务任务3.23.2:建立数
36、据库关系图显示表间关系:建立数据库关系图显示表间关系任务任务3 3 创建数据表创建数据表studentstudent和和classclass之间的之间的关系,并建立数据库关系图显示两者关系关系,并建立数据库关系图显示两者关系任务任务3.13.1:创建数据表:创建数据表classclass和和studentstudent之间之间的关系的关系1 1、展开、展开“对象资源管理器对象资源管理器”窗口中的节点表【窗口中的节点表【dbo.studentdbo.student】,】,右击其子节点【键】,弹出快捷菜单。右击其子节点【键】,弹出快捷菜单。任务任务3.13.1:创建数据表:创建数据表classcl
37、ass和和studentstudent之间之间的关系的关系2 2、单单击击【新新建建外外键键】命命令令,打打开开“外外键键关关系系”对对话话框框。单单击击列列表表框框中中【表表和和列列规规范范】左左侧侧的的“+”“+”,展展开开子子项项目目。子项目中为缺省定义子项目中为缺省定义 。任务任务3.13.1:创建数据表:创建数据表classclass和和studentstudent之间之间的关系的关系3 3、单单击击【表表和和列列规规范范】右右边边的的按按钮钮,打打开开“表表和和列列”对对话话框框。在在“主主键键表表”下下拉拉列列表表框框中中选选择择“class”“class”,选选择择列列为为“c
38、lassno”“classno”;选选 择择“外外 键键 表表”“student”“student”的的 列列 为为“classno”“classno”,会自动生成关系名,会自动生成关系名FK_student_class FK_student_class。任务任务3.13.1:创建数据表:创建数据表classclass和和studentstudent之间之间的关系的关系4 4、单单击击【确确定定】按按钮钮,返返回回“外外键键关关系系”对对话话框框。单单击击【关关闭闭】按按钮钮,返返回回“Management“Management Studio”Studio”窗窗口口。单单击击【保存】按钮,提示
39、保存表之间的关系【保存】按钮,提示保存表之间的关系 。任务任务3.2 3.2 建立数据库关系图显示表间关系建立数据库关系图显示表间关系1 1、鼠标右击、鼠标右击“对象资源管理器对象资源管理器”窗口的节点【窗口的节点【studentstudent】的子】的子节点【数据库关系图】,弹出快捷菜单节点【数据库关系图】,弹出快捷菜单 。任务任务3.2 3.2 建立数据库关系图显示表间关系建立数据库关系图显示表间关系2 2、单单 击击【新新 建建 数数 据据 库库 关关 系系 图图】命命 令令,在在“Management“Management Studio”Studio”中中打打开开一一个个数数据据库库关
40、关系系图图的的标标签签页页,并并且且激激活活了了“添添加加表表”对对话话框框,在在【表表】列列表表框框中中选选择择表表studentstudent和和表表class class。任务任务3.2 3.2 建立数据库关系图显示表间关系建立数据库关系图显示表间关系3 3、单单击击【添添加加】按按钮钮,并并单单击击【关关闭闭】按按钮钮,关关闭闭“添添加加表表”对对话话框框。在在【关关系系图图】的的标标签签页页中中显显示示已已添添加加的的表表studentstudent和和class class。任务任务3.2 3.2 建立数据库关系图显示表间关系建立数据库关系图显示表间关系4 4、单击【保存】按钮,会
41、弹出、单击【保存】按钮,会弹出“选择名称选择名称”对话框,输入关对话框,输入关系图的名称,可以将数据库关系图保存在数据库中。系图的名称,可以将数据库关系图保存在数据库中。知识说明知识说明 外键约束外键约束 外外键键约约束束可可以以保保证证表表和和表表之之间间数数据据一一致致性性,它它通通过过主主键键和和外外键键建建立立起起表表与与表表之之间间的的关关联联。其其中中包包含含主主键键的的表表称称为为父父表表,包包含含外外键键的的表表称称为为子子表表。当当父父表表中中的的数数据据发发生生改改变变时时,子子表表中中的的数数据据也也会会发发生生相相应应的的变变化化,以以此此来来保保证证参参照照的的完完整
42、整性性。用用ALTER ALTER TABLE TABLE 语句也可以创建外键约束语句也可以创建外键约束 。模块模块 2-4 2-4 综合应用综合应用学习目标学习目标工作任务工作任务任务任务1 1 创建数据表创建数据表studentstudent和和classclass的基的基本结构本结构【任务分析】任务分析】该该 任任 务务 是是 为为 数数 据据 表表 studentstudent和和classclass创创建建表表结结构构,并并建建立立相相关关约约束束来来实实现现数数据据的的完完整整性性。这这里里与与前前一一模模块块不不同同的的是是,数数据据表表的的约约束束在在创创建建表表时时就就在在程
43、程序序代代码码中中一一起起定定义义了了,而而不不是是后后续续添添加加的的。其其中中两两张张数数据表的结构在项目据表的结构在项目1 1中已经设计完毕。中已经设计完毕。任务任务1 1 创建数据表创建数据表studentstudent和和classclass的基本的基本结构结构表表 2 2 19 19 学生表的结构学生表的结构字段名类型约束备注snochar(10)主键学生编号snamechar(10)非空姓名ssexchar(2)只取男、女性别sbirthdaydatetime出生日期sscoreNumeric(8)入学成绩classnochar(8)与班级表中classno外键关联班级编码表表2
44、 2 20 20 班级表的结构班级表的结构字段名类型约束备注classnochar(8)主键班级编号classnamechar(16)非空班级名称pnochar(4)与专业表中pno外键关联专业编号任务任务1 1 创建数据表创建数据表studentstudent和和classclass的基本的基本结构结构【程序代码】程序代码】CREATE TABLE classCREATE TABLE class(classno char(8)CONSTRAINT classno char(8)CONSTRAINT pk_bjbh PRIMARY KEY,pk_bjbh PRIMARY KEY,classna
45、me char(16)NOT NULL,classname char(16)NOT NULL,pno char(4)NOT NULL,pno char(4)NOT NULL,)任务任务1 1 创建数据表创建数据表studentstudent和和classclass的基本的基本结构结构【程序代码】程序代码】CREATE TABLE studentCREATE TABLE student(sno char(10)CONSTRAINT pk_xh PRIMARY sno char(10)CONSTRAINT pk_xh PRIMARY KEY,KEY,sname char(10)NOT NULL,s
46、name char(10)NOT NULL,ssex char(2)CONSTRAINT uk_xb ssex char(2)CONSTRAINT uk_xb CHECK(ssex=CHECK(ssex=男男 OR ssex=OR ssex=女女),),sbirthday datetime NULL,sbirthday datetime NULL,sscore numeric(18,0)NULL,sscore numeric(18,0)NULL,classno char(8)CONSTRAINT fk_bh REFERENCES classno char(8)CONSTRAINT fk_bh
47、REFERENCES class(classnoclass(classno)任务任务2 2 为数据表为数据表studentstudent和和classclass添加记录添加记录【任务分析】任务分析】该任务是使用该任务是使用INSERTINSERT语句为数据表语句为数据表studentstudent和和classclass添加相关数据添加相关数据 。表表 2 2 21 21 学生表的部分记录学生表的部分记录snosnamessexsbirthdaysscoreclassno0701011101孙晓龙男1988-6-4 479070101110701011102杜学艳女1987-6-10 4750
48、70101110701011103王迎男1989-2-11474070101110701011104安专林男1988-2-16 473070101110701011105赵飞男1987-1-23 45207010111任务任务2 2 为数据表为数据表studentstudent和和classclass添加记录添加记录表表 2 2 22 22 班级表的部分记录班级表的部分记录classnoclassnamepno06010111计应0611 010106020111物流0611 020106020211会计0611 020207010111计应0711 010107010211网络0711 01
49、02任务任务2 2 为数据表为数据表studentstudent和和classclass添加记录添加记录【程序代码】程序代码】USE studentUSE studentGOGOINSERT INTO studentINSERT INTO studentVALUESVALUES (0701011101,(0701011101,孙晓龙孙晓龙,男男,1988-6-4,479,07010111),1988-6-4,479,07010111)INSERT INTO studentINSERT INTO studentVALUESVALUES (0701011102,(0701011102,杜学艳杜学艳
50、,女女,1987-6-10,475,07010111),1987-6-10,475,07010111)INSERT INTO studentINSERT INTO studentVALUESVALUES (0701011103,(0701011103,王迎王迎,男男,1989-2-11,474,07010111),1989-2-11,474,07010111)INSERT INTO studentINSERT INTO studentVALUESVALUES (0701011104,(0701011104,安专林安专林,男男,1988-2-16,473,07010111),1988-2-16,