SQLServer2005数据库基础项目二创建学生管理资源库模块2-1创建学生管理数据库学习目标工作任务任务一:在ManagementStudio中创建数据库student【任务分析】根据任务要求,要求使用SQLServerManagementStudio的图形化界面创建名为student的数据库,并保存在C盘db文件夹下。数据库的具体属性如下表所示:表2-1student的数据文件和事务日志文件逻辑名称文件类型文件组系统文件名初始大小最大容量增长容量student_data数据文件primaryC:/db/student_data.mdf3MB30MB10MBstudent_log事务日志文件C:/db/student_log.ldf1MB10MB10%操作步骤1、打开ManagementStudio界面操作步骤2、打开“新建数据库”对话框操作步骤3、按要求设置数据库基本属性4、设置数据库的高级属性(排序规则)操作步骤5、创建完毕后,查看数据库。操作步骤知识说明:数据库的结构逻辑结构是指数据库由哪些性质的信息组成。SQLServer的数据库是由表、视图、索引、约束等各种不同的对象组成,它们构成了数据库的逻辑结构。物理结构也称为存储结构,表示数据库文件是如何在磁盘上存放的。数据库文件在磁盘上以文件的单位存放,由数据库文件和事务日志文件组成。任务2用CREATEDATABASE语句创建数据库student【任务分析】要求使用ManagementStudio创建名为student的数据库,同时设置数据库的相关属性。表2-1student的数据文件和事务日志文件逻辑名称文件类型文件组系统文件名初始大小最大容量增长容量student_data数据文件primaryC:/db/student_data.mdf3MB30MB10MBstudent_log事务日志文件C:/db/student_log.ldf1MB10MB10%关键代码NAME=student_data,FILENAME='c:\db\student.mdf',SIZE=3MB,MAXSIZE=30MB,FILEGROWTH=10MB知识说明:CREATEDATABASE语句的基本格式CREATEDATABASEdatabase_nameONPRIMARY(…………)LOGON(…………)练习1.在SQLServer中创建数据库,具体要求如下:数据库名称为Test1。主要数据文件:逻辑文件名为Test1Data1,物理文件名为Test1Data1.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB。次要数据文件:逻辑文件名为Test1Data2,物理文件名为Test1Data2.ndf,初始容量为1MB,最大容量为10MB,递增量为1MB。事务日志文件:逻辑文件名为Test1Log1,物理文件名为Test1Log1.ldf,初始容量为1MB,最大容量为5MB,递增量为20%。思考假如没有对日志文件进行定义,那么日志文件的大小和数据文件有什么差别?怎样创建有多个数据文件的数据库?模块2-2建立学生管理系统中的数据表学习目标工作任务任务一:创建数据表student的表结构【任务分析】数据表包括表结构、约束以及记录等三个要件。这个任务我们主要是完成对数据表student表结构的创建,表结构如下表所示:表2-5student表的结构字段名类型是否允许为空备注Snochar(10)不允许学生编码snamechar(10)不允许姓名ssexchar(2)允许性别sbirthdaydatetime允许出生日期sscorenumeric(18,0)允许入学成绩classnochar(8)不允许班级编码任务一:创建数据表student的表结构【任务分析】可以使用两种方法来解决这个问题:1.利用ManagementStudio工具,在图形化的界面中创建student表结构。2.使用CREATETABLE语句创建表结构。方法一:操作界面(操作步骤)1、展开需要创建表的数据库“student”并右击“表”,在弹出的快捷菜单中选择“新建表”命令。方法一:操作界面(操作步骤)2、在打开的表设计器对话框中,按照任务要求设置表student各列的列名、数据类型、允许空(非空约束)方法二:SQL代码3、单击“SQLServerManagementStudio”工具栏上的【新建查询】按钮方法二:SQL代码关键代码CREATETABLEstudent(snochar(10)NOTNULL,snamechar(10)NOTNULL,ssexchar(2)NULL,sbirthdaydatetimeNULL,sscorenumeric(18,0)NULL,classnochar(8)NOTNULL)知识说明:数据类型数据类型具体种类数值型整型tinyint、smallint、int、bigint定点型decimal和numeric浮点型float、real字符型普通字符型char、varchar、textUnicode字符型nchar、nvarchar、ntext日期时间型datatime、smalldatetime货币型money、smallmoney二进制字符型binary、varbinary、image其他数据类型bit、cursor、timestamp、sql_variant、uniqueidentifier、table、xml知识说明:数据表创建CREATETABLEtable_name({column_definition|[{PRIMARYKEY|UNIQUE}[,...n])column_definition::={column_namedata_type}[COLLATEcollation_name][[DEFAULTconstant_expression]|[IDENTITY[(seed,increment)[NOTFORREPLICATION]]]][column_constraint][...n]任务二为student表添加数据【任务分析】本任务将要实现为任务1中创建的表student添加数据,student表中的部分数据如下表所示。其中每行代表表中的一条记录,而每列代表表中的一个字段。表2-6student表中的部分数据snosnamessexsbirthdaysscoreclassno0701011101孙晓龙男1988-6-04479070101110701011102杜学艳女1987-6-10475070101110701011103王迎男1989-2-11474070101110701011104安专林男1988-2-16473070101110701011105赵飞男1987-1-2345207010111方法一:在SQLServerManagementStudio图形化界面中添加数据1、在打开的“对象资源管理器”窗口中,右击表student,在弹出的快捷菜单中选择“打开表”命令。方法一:在SQLServerManagementStudio图形化界面中添加数据2、在打开的表内容标签页中,按照任务要求逐条输入student表中的每条记录。其中sbirthday字段是日期时间型(Datetime)数据,录入时可以使用斜杠(/)、连字符(-)或句号(.)作为年月日的分隔方法二:使用INSERTINTO语句为数据表student添加数据3、单击“SQLServerManagementStudio”工具栏上的“新建查询”按钮关键代码INSERTINTOstudent(sno,sname,ssex,sbirthday,sscore,classno)VALUES('0701011101','孙晓龙','男','1988-6-4',479,'07010111')方法二:使用INSERTINTO语句为数据表student添加数据知识说明关系模型关系模型是现在广泛采用的数据模型,它与先前曾使用的层次模型、网状模型相比具有显著的特点。它主要采用二维表格的方式来表示实体之间的关系,一个表就代表一个实体,表由行和列组成,一行代表一个对象,一列代表实体的一个属性。关系模型数据库也称为关系数据库。模块2-3设置学生管理系统中的数据表的完整性学习目标工作任务任务1创建数据表student的约束任务1.1:将数据表的sno字段设置为主键。任务1.2:将数据表的ssex字段默认值设置为“男”。任务1.3:将数据表的sscore字段设置在306到650的范围之间。任务1.1:将数据表的sno字段设置为主键【任务分析】主键约束是最重要的约束类型,它是每条记录的标识符,即可能是该记录与其它记录得以区别开来的唯一不同。如student表中有这样两条记录(0701011101,孙晓龙,男,1988-6-4,479,07010111),(0701011111,孙晓龙,男,1988-6-4,479,07010111)。它们之所以被视为两条不同的记录,就因为sno字段不一样。而sname字段由于现实世界中存在同名的人而可能不唯一,不能作为表的主键字段。每张数据表只能设置一个主键,在表中定义的主键列不能有重复的值。任务1.1:将数据表的sno字段设置为主键1、右击“对象资源浏览器”窗口中要创建主键的表名student,在弹出的快捷菜单上单击“修改”命令。任务1.1:将数据表的sno字段设置为主键2、在打开的【表-dbo.student】标签页上右击要设置为主键的列名sno,在弹出的快捷菜单中选择【设置主键】命令。任务1.2将数据表的ssex字段默认值设置为“男”【任务分析】用户在插入某条记录时,如果没有为某个字段输入相应的值,该列的值就为空。如果该列设置了默认约束,如为student的ssex字段设置过默认值“男”,那么即使该字段没有输入任何值,记录输入完成后也会获得该字段的默认值“男”。在ssex列属性的“常规”选项区中的“默认值或绑定”选项中输入默认值“男”。任务1.2将数据表的ssex字段默认值设置为“男”任务1.3将数据表的sscore字段设置在306到650的范围之间【任务分析】该校学生的入学成绩的最高分是650,最低分是306分,即在306到650的范围之间,该任务就要为sscore设置检查约束,如果输入的入学成绩超出这个范围,系统会认为输入的信息有误拒绝接收数据,从而保证了数据的完整性。“CHECK约束表达式”对话框任务1.3将数据表的sscore字段设置在306到650的范围之间知识说明数据完整性数据完整性是指数据库中数据的正确性和一致性,它是衡量数据库设计好坏的一项重要指标。分类实体完整性域完整性参照完整性用户自定义完整性任务2创建数据表class的约束【任务分析】该任务是为数据表class建立各类约束、规则以实现数据的完整性。要完成上述任务,则分别要为相关字段设置主键约束和唯一约束,建立并绑定数据库的规则。该任务的实现,主要采用编写程序代码的方式。任务2创建数据表class的约束【任务分析】具体还可以分为以下几个子任务:任务2.1:将数据表的classno字段设置为主键。任务2.2:将数据表的classname字段的值设成唯一。任务2.3:创建规则zydm_rule,并将它绑定在字段pno上,用来保证输入的专业代码只能是数字字符。任务2.1将数据表的classno字段设置为主键【程序代码】USEstudentGOALTERTABLEclassADDCONSTRAINTpk_bhPRIMARYKEYCLUSTERED(classno)GO【执行效果】任务2.1将数据表的classno字段设置为主键任务2.2将数据表的classname字段的值设成唯一【程序代码】USEstudentGOALTERTABLEclassADDCONSTRAINTuk_bjmcUNIQUENONCLUSTERED(classname)GO