




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库原理及应用实验机械工程学院工业工程系课程名称:数据库原理及应用学时数:16实验室名称:机房主要撰写人:陈立新李明审稿人:16一、适用专业机械类、交通、工业工程二、实验目的与任务通过实验教学,使学生进一步加深理解数据库系统的基本理论,学会数据库设计方法、 DBMS的使用,数据库系统的管理和维护,熟悉数据库技术的应用。三、实验配套的主要仪器设备几台(套)数装有 WIN xp及SQL SERVER 2008的电脑1台/1人四、主要教材及参考书教材:数据库技术与应用(SQL Server)顾兵 清华大学出版社参考书目:数据库系统概念Abraham Silberschatz等 机械工业出版社五、考
2、核形式实验报告质量六、实验开出率实验开出率100%七、实验项目与要求序 号实验项目名称时数必开 选开每套仪器人数目的要求实验类型1SQL Server 2008 的安装及管理工具的 使用2必开1SQL Server 2008 的安装及管理工具的使用验证2SQL Server数据库的管理2必开1掌握数据库的创建、修 改、删除等验证3SQL Server数据表的管理2必开1掌握基本表的定义、删除与修改验证4数据查询2必开1掌握SQL的数据各种查 询验证5索引和视图2必开1掌握视图创建与管理和 使用,掌握索引的建立与 删除验证6数据完整性2必开1掌握SQL的数据完整性验证7Transact-SQL
3、程序设计2必开1掌握Transact- SQL的数据类型、常量变量、表达 式等的概念和使用方法。验证8存储过程和触发器2必开1掌握存储过程与触发器 的建立、修改与删除验证上机实验指导这一部分为SQL Server 2008的上机实验内容,包括 8个实验,每个实验和课堂教学紧 密配合,且由浅入深地安排实验内容,旨在使读者通过上机实践领会课堂学习内容,达到巩固与提高的目的。上机实验指导部分使用的数据库,如果没有特别指明,则为stude ntsdb数据库,该数据库从实验 2开始创建。实验1 SQL Server 2008 的安装及管理工具的使用i. 实验目的(1) 了解SQL Server 2008
4、安装对软、硬件的要求,掌握安装方法。(2) 了解SQL Server的注册和配置方法。(3) 了解SQL Server 2008包含的主要组件及其功能。(4) 熟悉SQL Server 2008管理平台的界面及基本使用方法。(5 )了解数据库及其对象。(6) 了解在SQL Server管理平台中执行 SQL语句的方法。2 .实验内容及步骤(1) 根据软、硬件环境的要求,安装SQL Server 2008 (在安装过程中,请选择安装示例数据库Adven tureWorks )。(未安装示例数据库的请自行上网搜索并下载,或至 微软网站下载)(2 )通过选择开始” t “程序” t Microsof
5、t SQL Server 2008宀“配置工具”宀SQL Server Con figuration Man ager菜单项,打开SQL Server配置管理器”窗口,在界面左边的树目录 中选择SQL Server 2008服务”,在右边的项列表区中选择SQL Server。并且通过该窗口 启动服务”和“停止服务”图标来启动和停止SQL Server服务。(3) 通过“开始 ”t“ 程序” t Microsoft SQL Server 2008t SQL Server Ma nageme nt Studio 菜单项打开SQL Server管理平台。(4) 在SQL Server管理平台中,注册
6、服务器。查看本地已注册的SQL Server。查找网 络上另一台计算机,并且注册该机上的 SQL Server,注册时使用“Windows身份认证”或SQL Server身份认证”的连接方式。(5) 从SQL Server管理平台中删除网络SQL Server服务器。(6) 在SQL Server管理平台的对象资源管理器中打开本地服务器的属性对话框,查看 以下信息:产品名称、主机操作系统、产品的版本、操作平台、主机内存等。(7) 利用SQL Server管理平台访问系统自带的AdventureWorks数据库。 以系统管理员身份登录到SQL Server管理平台。 在SQL Server管理平
7、台的对象资源管理器窗口中找到AdventureWorks数据库并展开,查看该数据库的所有对象,如表、视图、存储过程、默认和规则等。 选择AdventureWorks数据库的“表”选项,在右窗格中将列出AdventureWorks数据库的所有表,选择雇员表Huma nResources.Employee,右击鼠标,弹出快捷菜单,从中选择“打开表”菜单项,打开Employee表,查看其内容。(8) 利用SQL Server管理平台的查询设计器窗口访问AdventureWorks数据库的表。 在SQL Server管理平台的对象资源管理器窗口中,选择AdventureWorks数据库结点,单击鼠标右
8、键,在弹出的快捷菜单中选择“新建查询”命令,或者选择数据库后,单击工具栏的“新建查询”命令,打开查询设计器窗口。 在查询设计器窗口中,输入以下代码:SELECT *FROM HumanResources.Employee aWHERE a.Gender=MORDER BY a.Title 选择SQL Server管理平台的“查询”宀“分析”菜单项,或者单击常用工具栏上“验 证SQL语法”按钮,查询设计器将对输入的代码进行语法分析,并由消息窗格给出分析结果报告。 选择SQL Server管理平台的“查询”宀“执行”菜单项,或者单击常用工具栏上“执行SQL ”按钮,SQL Server将编译窗口中
9、的代码,并在结果窗格中显示查询结果,如图1-1所示。 CSKIJ1-T1. . LQaerrd.為要* XSELECT 1HmnanP.esources . Employee aWHERE a.GenderORDER BY二EmpkiaelpJNational DNuinber| CanbacUD LogrtlDManagerlD 1 TkleA1r:2164S095195512JI7138Accouritant213930461245adrailu5w(xkgdavid6140Acwunk Manage3IBS茁血制曲1251adYenbirBvx)rk.&diagabO139Account
10、s Paabie41309311901121250日 dvenWe war k 乳 Mya n1139A&cwntt RecetvaMe Specie5149314774991261advcnhje-wwksViamesht)42Apjiciatm Special il10QE71O09B2812EDadveiihjB-wwksdanOA2Appiicticn SpeciaJisl1|JiT图1-1查询设计器窗口3 .实验思考(1) SQL Server管理平台的作用是什么?如何进入SQL Server管理平台?(2) SQL Server配置管理器的作用是什么?如何进入SQL Server配
11、置管理器?(3) 用几种不同的方法实现注册数据库服务器与对象资源管理器的连接。(4) 查询设计器窗口的作用是什么?如何打开查询设计器窗口?(5) 改变查询设计器的当前数据库使用什么方法?实验2 SQL Server数据库的管理1.实验目的(1) 了解SQL Server数据库的逻辑结构和物理结构的特点。(2) 掌握使用SQL Server管理平台对数据库进行管理的方法。(3) 掌握使用Transact-SQL语句对数据库进行管理的方法。2实验内容及步骤(1)在 SQL Server 管理平台中创建数据库。 运行 SQL Server 管理平台,在管理平台的对象资源管理器中展开服务器。 右击“数
12、据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话 框的数据库名称文本框中输入学生管理数据库名studentsdb,单击确定”按钮。(2) 选择 studentsdb 数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文 件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。(3)打开 studentsdb 数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为 2MB。指定“最大文件大小”为 5MB。 修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。(4) 单击“新建查询”打开查询设
13、计器窗口,在查询设计器窗口中使用Transact- SQL 语句CREATE DATABASE创建studb数据库。然后通过系统存储过程 sp_helpdb查看系统中 的数据库信息。(5)在查询设计器中使用 Transact- SQL语句ALTER DATABASE 修改studb数据库的设 置,指定数据文件大小为 5MB ,最大文件大小为 20MB ,自动递增大小为 1MB 。(6) 在查询设计器中为studb数据库增加一个日志文件, 命名为studb_Log2,大小为5MB, 最大文件大小为 10MB 。( 7)使用 SQL Server 管理平台将 studb 数据库的名称更改为 stu
14、dent_db。(8)使用 Transact- SQL 语句 DROP DATABASE 删除 student_db 数据库。( 9)在 SQL Server 管理平台中删除 studentsdb 数据库。3实验思考(1)数据库中的日志文件是否属于某个文件组?( 2)数据库中的主数据文件一定属于主文件组吗?( 3)数据文件和日志文件可以在同一个文件组吗?为什么?( 4)删除了数据库, 其数据文件和日志文件是否已经删除?是否任何人都可以删除数据 库?删除了的数据库还有可能恢复吗?( 5)能够删除系统数据库吗?实验 3 SQL Server 数据表的管理1实验目的( 1)掌握使用 SQL Serv
15、er 管理平台和 Transact-SQL 语句 CREATE TABLE 和 ALTERTABLE 创建和修改表的方法。(2)掌握在 SQL Server 管理平台中对表进行插入、修改和删除数据操作的方法。( 3)掌握使用 Transact-SQL 语句对表进行插入、修改和删除数据操作的方法。( 4)了解 SQL Server 的常用数据类型。2实验内容及步骤( 1)启动 SQL Server 管理平台,在对象资源管理器中展开 studentsdb 数据库文件夹。(2)在studentsdb数据库中包含有数据表 student_info、curriculum、grade,这些表的数据结构如图
16、1-2至图1-4所示。数据类型允许空上;学号char(4)姓名char(B)性别char(2)17出牛日卵datetimeP彖庭住址varchar(50)17备注text图1-2学生基本情况表student_info图1-3 课程信息表curriculum图1-4 学生成绩表grade(3) 在 SQL Server 管理平台中创建 student_info、curriculum 表。(4) 在SQL Server管理平台中,将 student_info表的学号列设置为主键,非空。(5) 使用 Transact- SQL 语句 CREATE TABLE 在 studentsdb 数据库中创建
17、grade 表。(6) student_info、curriculum、grade 表中的数据如图 1-5 至图 1-7 所示。学号姓名性别出生日期家庭注址备注0001刘卫平男1980-10-1 0:00:00衡阳币东凤路汁号0002张卫民男196042-2 0:00:00剌日市儿一北觀5号40/0003马乘男19607-4 0:00:00民除市五一路7囲号NULLoooi找达理舅960-5-10 0:00:00箪隔市洞庭炭M2托号AHJLL0005东方牧男1960*7-13 0:00:00东方市中山踣福号fULL0006郭文就男!980-6-4 0:00:00怪岛币解放跻苦寻0007肖海燕立
18、1980-3-15 0:00:00南山市红旗路15号AW0008张明华立1980-4-18 0:00:00滨江市解放路35号MJLL图 1-5 student_info 的数据课程鋼号谍程名称学分0001大学计算机基20002语言程序设计20003SQL Server!据阵及应用20004英语斗0005高等数学斗图 1-6 curriculum 的数据学号课稗輪号分數0001000180000100029000010003070001OOM06000100057&00020001760002000(27300020003690002OOCH700002000509000300010300030
19、00(2730003OOD3040003OOCH750003000565图1-7 grade的数据(7) 在 SQL Server 管理平台中为 student_info、curriculum、grade 表添加数据。(8) 使用 Transact- SQL 语句 INSERT INTO.V ALUES 向 studentsdb 数据库的 grade表插 入数据:学号为 0004,课程编号为0001,分数为80。(9) 使用Transact- SQL语句ALTER TABLE修改curriculum 表的“课程编号”列,使 之为非空。(10) 使用Transact- SQL语句ALTER TA
20、BLE 修改grade表的“分数”列,使其数据类 型为real。(11) 使用 Transact- SQL 语句 ALTER TABLE 修改 student_info 表的“姓名”列,使其 列名为“学生姓名”,数据类型为varchar(10),非空。(12) 分别使用 SQL Server管理平台和 Transact- SQL语句 DELETE删除studentsdb数 据库的grade表中学号为0004的成绩记录。DELETE grade WHERE 学号=0004(13) 使用 Transact- SQL语句 UPDATE修改 studentsdb数据库的 grade表中学号为 0003
21、、课程编号为0005、分数为90的成绩记录。UPDATE grade SET 分数=90WHERE 学号=0003 AND课程编号=0005(14) 使用 Transact- SQL 语句 ALTER.ADD 为 studentsdb 数据库的 grade 表添加一个名为“备注”的数据列,其数据类型为VARCHAR(20)。ALTER TABLE grade ADD 备注 VARCHAR(20) NULL3 .实验思考(1) 使用 Transact- SQL语句删除在 studentsdb数据库的grade表添加的“备注”数 据列。(2) 在SQL Server管理平台中,studentsdb
22、数据库的student_info表的数据输入时,如 果输入相同学号的记录将出现什么现象?怎样避免该情况的发生?(3) 已经打开的表能删除吗?4)在 SQL Server 2008 中能将数据表中的字段名和其数据类型同时改变吗?实验 4 数据查询1实验目的( 1)掌握使用 Transact-SQL 的 SELECT 语句进行基本查询的方法。( 2)掌握使用 SELECT 语句进行条件查询的方法。(3) 掌握 SELECT 语句的 GROUP BY 、ORDER BY 以及 UNION 子句的作用和使用 方法。(4) 掌握嵌套查询的方法。(5) 掌握连接查询的操作方法。2实验内容及步骤(1 )在s
23、tudentsdb数据库中,使用下列 SQL语句将输出什么? SELECT COUNT( *) FROM grade SELECT SUBSTRING( 姓名,1 ,2) FROM student_info SELECT UPPER(kelly) SELECT Replicate(kelly,3) SELECT SQRT(分数)FROM grade WHERE 分数 =85 SELECT 2,3,POWER(2,3) SELECT YEAR(GETDA TE(),MONTH(GETDA TE(),DAY(GETDATE()(2) 在 studentsdb 数据库中使用 SELECT 语句进行基
24、本查询。 在 student_info 表中,查询每个学生的学号、姓名、出生日期信息。 查询学号为 0002 的学生的姓名和家庭住址。 找出所有男同学的学号和姓名。( 3)使用 SELECT 语句进行条件查询。 在grade表中查找分数在8090范围内的学生的学号和分数。 在grade表中查询课程编号为 0003的学生的平均分。 在grade表中查询学习各门课程的人数。 将学生按出生日期由大到小排序。 查询所有姓“张”的学生的学号和姓名。SELECT 学号, 姓名 FROM student_info WHERE姓名 LIKE 张%( 4)对 student_info 表,按性别顺序列出学生的学
25、号、姓名、性别、出生日期及家庭住 址,性别相同的按学号由小到大排序。(5) 使用 GROUP BY 查询子句列出各个学生的平均成绩。( 6)使用 UNION 运算符将 student_info 表中姓“张”的学生的学号、姓名与 curriculum 表的课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称,如图1-8所示。10001大学计箪机基础20002昔言伽设计30002张卫民40003SQL Server数据性及应用50004英*50005高等数学70008张明华图1-8联合查询结果集(7) 嵌套查询。 在student_info表中查找与刘卫平”性别相同的所有学生的姓名、出生日
26、期。SELECT姓名,出生日期FROM student_infoWHERE 性另 U =(SELECT 性另 UFROM student_info WHERE姓名=刘卫平) 使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。SELECT学号,姓名,性别FROM student_infoWHERE student_info. 学号 IN(SELECT 学号FROM gradeWHERE 课程编号 IN (0002,0005) 列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。SELECT课程编号,分数FROM gradeWHERE 学号=000
27、1 AND 分数 ANY (SELECT 分数 FROM gradeWHERE 学号=0002) 列出学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。(8) 连接查询。 查询分数在8090范围内的学生的学号、姓名、分数。SELECT student_info. 学号,姓名,分数FROM student_info,gradeWHERE student_info. 学号=grade. 学号 AND 分数 BETWEEN 80 AND 90 查询学习“ C语言程序设计”课程的学生的学号、姓名、分数。SELECT student_info. 学号,姓名,分数FROM
28、student_infoINNER JOIN grade ON student_info.学号=grade. 学号INNER JOIN curriculum ON课程名称=C 语言程序设计 查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。 查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程编号、分数。 查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总 成绩为空。H提示: 使用左外连接。 为grade表添加数据行: 学号为0004、课程编号为0006、分数为76。查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没
29、有的课程列值为空。H提示:使用右外连接。3 .实验思考(1) 查询所有没有选修课程的学生信息,返回结果包括学号、姓名、性别。(2) 在student_info表和grade表之间实现交叉连接。(3) 查询每个学生的所选课程的成绩,并列出学号生成分组汇总行(总成绩)和明细行 (各课成绩)。H提示:使用SELECT语句的COMPUTE选项。(4) 在查询语句中 SELECT、FROM和WHERE选项分别实现什么运算?(5 )在查询的 FROM子句中实现表与表之间的连接有哪几种方式?对应的关键字分 别是什么?实验5索引和视图1.实验目的(1 )掌握使用 SQL Server管理平台和 Transac
30、t-SQL语句CREATE INDEX创建索引的 方法。(2) 掌握使用SQL Server管理平台查看索引的方法。(3) 掌握使用 SQL Server管理平台和 Transact-SQL语句 DROP INDEX 删除索引的 方法。(4) 掌握使用 SQL Server管理平台和 Transact- SQL语句CREATE VIEW 创建视图的用 法。(5 )了解索引和视图更名的系统存储过程sp_re name的用法。(6) 掌握使用 Transact-SQL语句ALTER VIEW 修改视图的方法。(7) 了解删除视图的 Transact- SQL语句DROP VIEW 的用法。2 .实
31、验内容及步骤(1 )分别使用SQL Server管理平台和Transact- SQL语句为 studentsdb数据库的student_info表和curriculum表创建主键索引。(2) 使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。(3) 分别使用 SQL Server管理平台和 Transact- SQL语句为studentsdb数据库的gradegradendex。表的分数”字段创建一个非聚集索引,命名为CREATE INDEX grade_index ON grade(分数)(4)为studentsdb数据库的grade表的学号”和课程编号”字
32、段创建一个复合唯一 索引,命名为 grade_id_c_ind。CREATE UNIQUE INDEX grade_id_c_ind ON grade(学号,课程编号)(5) 分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。sp_helpindex grade(6)使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。(7) 使用系统存储过程sp_rename将索引grade_index更名为grade_ind。sp_rename grade.grade_index,grade_ind,IN
33、DEX(8 )分别使用 SQL Server管理平台和 Transact- SQL语句 DROP INDEX 删除索引 grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。DROP INDEX grade.grade_ind(9)在studentsdb数据库中,以student_info表为基础,使用 SQL Server管理平台建立 名为v_stu的视图,使视图显示学生姓名、性别、家庭住址。(10)在studentsdb数据库中,使用 Transact- SQL语句 CREATE VIEW 建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学
34、课程的课程编号,并利用视图查询学号为0003的学生情况。(11)基于student_info表、curriculum 表和grade表,建立一个名为 v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的所有课程与成绩,如图 1-9所示。学号!姓名1课程若称分数10001刘卫平大学计算机基础|80M01刃I卫平CiS*程序设计900001対卫平SQL Serv&r数据目听0001刘卫平英语86W01剤卫平高等数学TO图1-9 学号为0001的学生的视图信息(12) 分别使用 SQL Server管理平台和Transact- SQL
35、语句修改视图 v_stu_c,使之显示 学号、姓名、每个学生所学课程数目。(13) 使用Transact- SQL语句ALTER VIEW 修改视图v_stu,使其具有列名学号、姓 名、性别。ALTER VIEW v_stu(学号,姓名,性别)AS SELECT 学号,姓名,性别 FROM student_info(14) 使用系统存储过程sp_rename将视图v_stu_i更名为v_stunfo。sp_rename v_stu_i,v_stu_info(15) 利用视图v_stu为student_info表添加一行数据:学号为 0015、姓名为陈婷、性 别为女。(16) 利用视图v_stu
36、删除学号为0015的学生记录。(17) 利用视图v_stu_g修改姓名为刘卫平的学生的高等数学的分数为84。(18) 使用 Transact- SQL 语句 DROP VIEW 删除视图 v_stu_c 和 v_stu_g。3 .实验思考(1) 是否可以通过视图 v_stu_g修改grade表中学号列数据?(2) 比较视图和基表操作表中数据的异同。(3 )可更新视图必须满足哪些条件?(4) 什么是索引? SQL Server 2008中有两种形式的索引:聚集索引和非聚集索引,简 单叙述它们的区别?(5) 能否在视图上创建索引?实验6数据完整性1.实验目的(1) 掌握Transact-SQL语句
37、(CREATE RULE、DROP RULE )创建和删除规则的方法。(2) 掌握系统存储过程 sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以 及sp_helptext查询规则信息、sp_rename更名规则的方法。(3) 掌握 Transact-SQL 语句(CREATE DEFAULT、DROP DEFAULT )创建和删除默认 对象的方法。(4) 掌握系统存储过程sp_b in default、sp_u nbin default绑定和解除绑定默认对象的操作 方法,以及sp_helptext查询默认对象信息。(5) 掌握 SQL Server管理平台和
38、Transact-SQL语句(CREATE TABLE、ALTER TABLE ) 定义和删除约束的方法,并了解约束的类型。2 .实验内容及步骤(1 )为studentsdb数据库创建一个规则,限制所输入的数据为7位09的数字。 复制student_info表命名为stu_phone,在stu_phone表中插入一列, 列名为电话号 码”。完成以下代码实现该操作。SELECT * INTO stu_phone FROM student_infoALTER TABLE stu_phone ADDCHAR(7) NULLstu_phone表结构如图1-10所示。12学号姓名性别出生日期家庭住址备注
39、电话号码0001刘LE平0002张卫民男 男1980-10-01 00:00:00.0001930-12-02 DO:OOi00.000術山市东凤胳花号东阳市八一北蹈鮎号JTULLKULLNULLNULL图 1-10 stu_phone 表结构 创建一个规则phone_rule,限制所输入的数据为7位09的数字。实现该规则的代码为CREATE phone_ruleASphone LIKE 0- 90 - 90 - 90 -90 -90 -90 -9 使用系统存储过程 sp_bindrule将phone_rule规则绑定到stu_phone表的电话号码” 列上。实现该操作的代码为sp_bindr
40、ule ,stu_phone.电话号码 输入以下代码,进行一次插入操作:INSERT INTO stu_phone( 学号,姓名,电话号码)VALUES(0009,王国强,1234yyy)产生以下出错信息:消息513,级别16,状态0,第1行列的插入或更新与先前的CREATE RULE语句所指定的规则发生冲突。该语句已终止。冲突发生于数据库studentsdb,表dbo.stu_phone,列电话号码。语句已终止。试分析:为什么会产生该出错信息?如果要实现插入操作,应修改INSERT INTO语句中的哪个值?phone_rule规则能否对其他操作(如 DELETE )进行规则检查?(2) 创建
41、一个规则 stusex_rule,将其绑定到stu_phone表的性别”列上,保证输入的 性另M直只能是“男”或“女”。(3) 使用系统存储过程sp_help查询stusex_rule规则列表,使用 sp_helptext查询 stusex_rule 规则的文本,使用 sp_rename将 stusex_rule 规则更名为 stu_s_rule。(4)删除 stu_s_rule 规则。HR注意:stu_s_rule (stusex_rule更名后规则名)是否仍然绑定在stu_phone表的“性别”列上?应如何操作才能删除它?(5)在studentdb数据库中,建立日期、货币和字符等数据类型的
42、默认对象。 在查询设计器中,完成以下代码,创建默认对象df_date、df_char、df_money。-创建日期型默认对象 df_dateCREATE df_dateAS 2009-4-12GO-创建字符型默认对象 df_charCREATE DEFAULT df_charunknownGO-创建货币型默认对象 df_moneyCREATE DEFAULT AS $100GO 输入以下代码,在 studentsdb数据库中创建stu_fee数据表。CREATE TABLE stu_fee(学号 char(10) NOT NULL,姓名 char(8) NOT NULL,学费mon ey,交费
43、日期 datetime,电话号码char(7)表stu fee的数据结构如图1-11所示。李梅王强王强001000110012学号学费交费曰期电话号码图1-11 stu fee的数据结构 使用系统存储过程 sp_bindefault将默认对象df_money、df_date、df_char分别绑定在stu_fee表的“学费”、“交费日期”电话号码”列上。df_money,stu_fee.GO sp_bindefault ,stu_fee. GOsp_bindefault df_char,stu_fee.GO学费交费日期电话号码 输入以下代码,在stu_fee表进行插入操作:19INSERT I
44、NTO stu_fee(INSERT INTO stu_fee(INSERT INTO stu_fee(VALUES(0001,学号,姓名)VALUES(0001, 刘卫平)学号,姓名,学费)VALUES(0001, 张卫民,$120)学号,姓名,学费,交费日期)马东,$110,2006-5-12)分析stu_fee表中插入记录的各列的值是什么? 完成以下代码,解除默认对象df_char的绑定,并删除之。stu_fee.电话号码DEFAULT df_char按同样的方式,删除默认对象df_date、df_money。(6) 为student_info表添加一列,命名为“院系”,创建一个默认对象
45、 stu_d_df,将其绑 定到student_info表的“院系”列上,使其默认值为“信息院”,对student_info表进行插入 操作,操作完成后,删除该默认对象。(7)在studentsdb数据库中用 CREATE TABLE 语句创建表 stu_con,并同时创建约束。 创建表的同时创建约束。表结构如图1-12所示。列名数据类型1桧度dwq姓名char&性别char2出生日耶8康庭注址var char50图1-12要创建的表的结构约束要求如下:将学号设置为主键(PRIMARY KEY ),主键名为pk_sid。为姓名添加唯一约束(UNIQUE),约束名为 uk_name。为性别添加默
46、认约束(DEFAULT ),默认名称为df_sex,其值为“男”。为出生日期添加属性值约束(CHECK),约束名为 ck_bday,其检查条件为:出生日期 1988-1-1。 在stu_con表中插入如表1-1所示的数据记录。表1-1 在stu_con表中插入的数据学号姓名性别岀生日期家庭住址1983-8-51988- 9-101989- 6-3分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一致? 使用ALTER TABLE语句的 DROP CONSTRAINT 参数项在查询设计器中删除为 stu_co n表所建的约束。(8) 用SQL Server管理平台完成实验
47、内容 7的所有设置。(9) 在查询设计器中, 为stude ntsdb数据库的grade表添加外键约束 (FOREIGN KEY),要求将学号”设置为外键,参照表为student_info ,外键名称为fk_sid。 使用系统存储过程 sp_help查看grade表的外键信息。 在grade表中插入一条记录, 学号为0100,课程编号为0001,分数为78。观察SQL Server会做何处理,为什么?如何解决所产生的问题? 使用查询设计器删除 grade表的外键fk_sid。3 .实验思考(1 )在SQL Server 2008中,可采用哪些方法实现数据完整性?(2) 比较默认对象和默认约束的
48、异同。(3) 可以使用SQL Server管理平台创建规则和默认值对象吗?(4) 在数据库中建立的规则不绑定到数据表的列上会起作用吗?为什么?(5) 请说明唯一约束和主键约束之间的联系和区别。实验7 Transact-SQL程序设计1. 实验目的(1) 掌握Transact- SQL的数据类型、常量变量、表达式等的概念和使用方法。(2) 掌握程序中注释的基本概念和使用方法。(3) 掌握程序中的流程控制语句的使用方法。(4) 掌握SQL Server 2008中常用函数的用法。(5) 掌握游标的概念和声明方法,以及使用游标进行数据的查询、修改、删除操作等。2. 实验内容及步骤(1) 选择stud
49、entsdb数据库,打开新建查询编辑器,输入以下代码。DECLARE stu_name varchar(10)SELECT stu_name=姓名FROM student_infoWHERE 姓名 LIKE 张 %SELECT stu_name观察显示的结果,与 student_info表中数据进行比较,stu_name赋值的是SELECT结果集中的哪个数据?(2) 定义int型局部变量 grademax、grademin、gradesum,在grade表中查找最高分、最低分和总分,分别赋给grademax、grademin和gradesum,并显示。DECLARE grademax int,
50、grademin int,gradesum intSELECT grademax=max( 分数),grademin= min( 分数),gradesum=sum( 分数)FROM gradeSELECT grademax,grademin,gradesum(3) 使用SET命令将查询结果集记录数目赋值给int型局部变量row。给下面代码中 的划线处填上适当的内容,以完成上述操作。DECLARE rowsSET =(SELECT COUNT(*) FROM grade)rows- 显示rows的值(4)以下代码在curriculum表中插入新记录:DECLARE intCId int , in
51、tErrorCode intINSERT INTO curriculum(课程编号,课程名称,学分)VALUES(0006,VB程序设计,2)SELECT intCld=identity,intErrorCode=errorSELECT intCld,intErrorCode将该代码段连续执行两次,观察两次显示的信息及curriculum表中数据的变化,为什么前后两次执行时显示的信息会不同?(5)在studentsdb数据库的student_info表中,以性别”为分组条件,分别统计男生 和女生人数。(6)在grade表中,使用适当函数找出“高等数学”课程的最高分、最低分和平均分。(7) 定义一个 datetime型局部变量 studate,以存储当前日期。计算student_info表中 的学生的年龄,并显示学生的姓名、年龄。在以下代码的划线部分填入适当内容,以实现上述功能。DECLARE datetimeSET studate=-给studate 赋值为当前日期SELECT 姓名,(studat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目可行性研究
- 妇幼保健院扩建项目风险管理方案
- 2024年六安市裕安区引进事业单位真题
- 2024年衡南县事业单位招聘真题
- 华夏古韵模板
- 颅内血肿护理个案讨论
- 电子护理记录单书写规范
- 呼吸内科康复治疗心得体会
- 幼儿园家庭教育培训内容
- 幼儿科学教育三到六岁实践心得体会
- 2025年初级人工智能训练师(五级)资格理论考试题(附答案)
- 交警心理知识讲座课件
- 综合性安全检查表
- 特色小吃开发策略-全面剖析
- 铁路工务新职工培训
- 道路保洁安全培训
- 整形医院年度财务预算计划
- 2023-2024学年高中信息技术必修一沪科版(2019)第二单元项目三《 调查中学生移动学习现状-经历数据处理的一般过程》教学设计
- 《颅底骨折的护理》课件
- 2025机关事业单位工人招聘《机动车驾驶员》技师 考试题库与参考答案
- 企业战略咨询服务简单合同
评论
0/150
提交评论