用户自定义的函数.docx
《用户自定义的函数.docx》由会员分享,可在线阅读,更多相关《用户自定义的函数.docx(33页珍藏版)》请在冰豆网上搜索。
![用户自定义的函数.docx](https://file1.bdocx.com/fileroot1/2022-11/16/ce8219df-f3d3-470f-a482-9adb796b55dc/ce8219df-f3d3-470f-a482-9adb796b55dc1.gif)
用户自定义的函数
1、在企业管理器中,建立数据库,并实现对SQLServer的用户和角色管理。
(10分)
(截图说明结果)
1.1使用企业管理器创建数据库
(1)点击“开始”-“程序”-“MicrosoftSQLServer”-“企业管理器”,在SQLServerEnterpriseManager界面下,选中创建数据库的服务器,用鼠标单击“数据库”节点,在弹出的快捷菜单中选择“新建数据库”命令,打开如图1-1所示的“数据库属性”对话框。
图1-1“数据库属性”对话框
(2)打开新建数据库对话框的“常规”选项卡,在“名称”文本框中输入数据库的名称。
数据库的名称必须符合SQLServer命名规则,且不能与其他现存数据库的名称相同,在此,我输入的是“高校排课管理信息系统”,如图1-2所示。
图1-2“常规”选项卡
(3)激活“数据文件”选项卡,如图1-3所示。
图1-3“数据文件”选项卡
(4)激活“事务日志”选项卡,指定存放日志文件的位置,初始大小和增长方式。
对每一个日志文件,用户也可以不做修改,如图1-4所示。
图1-4“事务日志”选项卡
(5)确认已经完成所有的设置,用鼠标单击“确定”按钮。
接下来SQLServer开始创建数据库。
(6)完成创建后的数据库将会出现在数据库列表中,如图1-5所示。
图1-5含有新建数据库的数据库列表
2、在企业管理器中,创建数据库下的表(三个以上),并完成表和表之间的各种完整性约束的设置。
(15分)
(1)启动企业管理器,在“树”窗格中表所存储的数据库“高校排课管理信息系统”上单击鼠标右键,将出现快捷菜单。
选择“新建”—“表”,系统将弹出表设计器窗口,如图2-1所示。
(2)表设计器窗口的上半部分有一个表格,在这个表格中输入字段的属性。
每一行对应一字段,对每一字段都需要进行以下属性,其中前三项是必须输入的。
(3)表设计器窗口的下半部分是特定字段的详细属性,包括是否使用默认值,是否是标识列,设置精度及小数位数等。
(4)设置主键约束。
选中要作为主键的列,并单击工具栏上的“设置主键”按钮(此按钮显示的是一个钥匙图标,当光标在此按钮上停留时,它的提示信息为“设置主键”),设置主键是为了保证每一条记录的唯一性。
如果表中的一个字段(或多个字段的组合)具有不重复的值,并且不允许为NULL,则应该将这个字段设置为表的主键。
(5)在表的各个字段属性均编辑完后,单击工具栏上的按钮,出现“选择名称”对话框,输入表名,单击“确定”按钮,表就创建好了,创建好的“学生信息表”结构如图2-2所示。
图2-1表设计器窗口
图2-1“学生信息”表结
按照上面介绍的方法,可以创建“教室课程安排表”、“教师信息表”、“班级信息表”和“课程信息表”,结构如下图2-2、图2-3、图2-4以及图2-5所示。
图2-2“教室课程安排”表结构
图2-3“教师信息”表结构
图2-4“班级信息”表结构
图2-5“课程信息”表结构
表1“学生信息表”
列名
备注
数据类型
长度
是否为空
完整性约束
学号
为10位数号码
char
10
非空
PrimaryKey(主键)
姓名
varchar
20
非空
年龄
char
2
允许为空
性别
取“男”或“女”
char
4
允许为空
专业
varchar
30
允许为空
年级
char
4
允许为空
班级号
占4个字节
char
4
非空
表2“教室课程安排表”
列名
备注
数据类型
长度
是否为空
完整性约束
教室号
为3位数号码
char
3
非空
PrimaryKey(主键)
班级名
varchar
20
非空
ForeignKey(外键)
课程名称
varchar
20
非空
教学楼名称
varchar
20
非空
星期
char
8
非空
节次
char
8
非空
教师姓名
授课教师
varchar
20
非空
表3“教师信息表”
列名
备注
数据类型
长度
是否为空
完整性约束
教工号
char
3
非空
PrimaryKey(主键)
教室姓名
varchar
20
非空
课程名称
varchar
20
非空
课程号
char
5
非空
学时/周
每周几节课
char
2
非空
学历
varchar
20
非空
电话
为11位的正整数
char
11
允许为空
“班级信息表”表4
列名
备注
数据类型
长度
是否为空
完整性约束
班级号
char
4
非空
PrimaryKey(主键)
班级名
varchar
20
非空
年级
入学的年份
char
4
非空
系名
所在院系名称
varchar
20
非空
班级人数
char
3
非空
“课程信息表”表5
列名
备注
数据类型
长度
是否为空
完整性约束
课程号
char
6
非空
PrimaryKey(主键)
课程名称
varchar
20
非空
学分
课程学分
char
4
非空
学时/周
每周上几节课
char
2
非空
(截图说明创建的结果,以及相关的各种完整性约束的设置)
3、在查询分析器中,创建默认值对象,并与表中字段绑定。
(5分)
3.1在数据库“高校排课管理系统”中,要求将“学生信息表”中“性别”设置默认值约束为“男”,输入如下代码:
Use高校排课管理系统
AlterTable学生信息表
AddConstrainta1Default'男'For性别
上面的语句在“高校排课管理系统”数据库中创建了一个“性别”的默认值,在查询分析器中执行结果如图3-1所示。
图3-1设置“性别”默认值约束
3.2在数据库“高校排课管理系统”中,要求将“教师信息表”中的“学历”设置默认值约束为“研究生”,输入如下代码:
Use高校排课管理系统
AlterTable教师信息表
AddConstrainta2Default'研究生'For学历
上面的语句在“高校排课管理系统”数据库中创建了一个“学历”的默认值,在查询分析器中执行结果如图3-1所示。
图3-2设置“学历”默认值约束
3.3在数据库“高校排课管理系统”中,要求将“班级表”中的“年级”设置默认值约束为“09级”,输入如下代码:
Use高校排课管理系统
AlterTable班级表
AddConstrainta2Default'09级'For年级
图3-3设置“年级”默认值约束
3.4将“课程表”中的“课程名称”设置默认值约束为“SQLServer2000”,并输入如下代码:
Use高校排课管理系统
AlterTable课程表
AddConstrainta2Default'研究生'For学历
图3-4设置“课程名称”默认值约束
(截图说明结果)
4、在查询分析器中,创建规则对象并与表中字段绑定。
(5分)
4.1在“高校排课管理系统”数据库中定义规则“在校年级”,规定学生在校年级为‘%级’,输入代码如下,执行后结果如图4-1所示。
Use高校排课管理系统
Go
Createrule在校年级
As
@valelike'%级'
图4-1创建规则“在校年级”
将上题中创建的“在校年级”规则捆绑到“班级表”的“在校年级”列上,执行结果如图4-2所示。
Use高校排课管理系统
Execsp_binrule'在校年级','学生表.年级'
图4-2将规则与表中字段绑定
查看规则:
使用系统存储过程sp_help可以查看规则的拥有者、创建时间等基本信息。
图4-3显示了规则“在校年级”的情况。
图4-3查看规则“在校年级”
4.2在“高校排课管理系统”数据库中定义规则“科目编码”,规定课程号为‘10%’类型,并输入代码如下,
Use高校排课管理系统
Go
Createrule科目编码
As
@valelike'10%'
执行后结果如图4-4所示。
图4-4创建规则“科目编码”
将上题中创建的“科目编码”规则捆绑到“课程表”的“课程号”列上,执行结果如图4-5所示。
图4-5将规则与表中字段绑定
(截图说明结果)
5、在企业管理器中,创建用户自定义数据类型,并用该数据类型定义表中字段。
(5分)
5.1
图5-1用户自定义数据类型属性
图5-2用户自定义数据类型属性
6、在企业管理器中,自行录入数据,数据量要足够多(每张表至少10行以上数据),尽量模拟真实数据。
(5分)
启动企业管理器,建立与SQLServer的连接,展开需要进行操作的表所在的数据库,单击“表”节点,用鼠标右键单击需要操作的表,打开“返回所有行”命令,分别对“学生信息表”、“教室课程安排表”、“教师信息表”、“班级信息表”以及“课程信息表”的数据录入,如下所示。
6.1在“学生信息表”中输入学生的学号、姓名、专业、年级以及班级等具体的相关数据信息,用户可以在此界面中进行插入记录、修改记录和删除记录等操作,如图6-1所示的窗口。
图6-1“学生信息表”数据窗口
6.2在“教室课程安排表”中输入班级名、课程名称、教室号以及具体的上课时间等相关的数据信息,如图6-2所示的窗口。
图6-2“教室课程安排表”数据窗口
6.3在“教师信息表”中输入教工号、教师姓名、授课科目、自身的学历以及联系方式等相关的教师信息,如图6-3所示的窗口。
图6-3“教师信息表”数据窗口
6.4在“班级信息表”中输入班级、年级、院系名称以及班级人数的相关数据,如图6-4所示的窗口。
图6-4“班级信息表”数据窗口
6.5在“课程信息表”中输入课程号、课程名称、学分和课程每周的学时的相关数据,如图6-5所示的窗口。
图6-5“课程信息表”数据窗口
7、在查询分析器中,完成数据修改和数据删除的操作。
(5分)(附执行的SQL语句,并截图说明结果)
一使用AlterUPDATE语句修改记录
【例7.1】将数据库中“学生信息表”中字段“姓名”的数据类型由char(20)改为char(30),在查询分析器中的文本编辑区中输入如下代码并运行:
Use高校排课管理系统
AlterTable学生信息表
AlterColumn姓名Varchar(30)
执行结果如图7-1和7-2所示
图7-1修改前“学生信息表”中字段
图7-2修改后“学生信息表”中字段
二使用UPDATE语句修改记录
7.2将数据库中“教师信息表”中“课程号”在原来的基础上分别增加5,在查询分析器中的文本编辑区中输入如下代码并运行:
Use高校排课管理系统
Update教师信息表
Set教工号=教工号+5
Go
图7-2修改表中数据记录
三使用DELETE语句删除表中指定的记录
7.3将数据库中“课程表”中删除学分为6分课程名称,并显示