数据库实验书.doc_第1页
数据库实验书.doc_第2页
数据库实验书.doc_第3页
数据库实验书.doc_第4页
数据库实验书.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

实验1 SQL Server 2000安装及管理工具的使用一、实验目的1.了解SQL Server 2000安装对软、硬件的要求,学会安装方法。2.了解SQL Server的注册和配置方法。3.了解SQL Server 2000包含的主要组建及其功能。4.熟悉企业管理器和查询分析器的界面及基本使用方法。5.对数据库及其对象有一个基本了解。二、实验准备1.了解安装SQL Server 2000的软、硬件要求。2.了解SQL Server 2000支持的身份验证模式。Windows的两种服务帐户:本地系统帐户和域用户帐户。3.了解SQL Server各组件的主要功能。4.对数据库、表和数据库对象有一个基本了解。5.了解在查询分析器中执行SQL语句的方法。三、实验内容及步骤1.根据软、硬件环境的要求,安装SQL Server 2000。2.通过“开始”“程序”Microsoft SQL Server“服务管理器”,打开“SQL Server服务管理器”窗口,选择SQL Server服务。并且通过该窗口“启动”和“停止”SQL Server服务。3.通过“开始”“程序”Microsoft SQL Server“企业管理器”打开企业管理器窗口。4.在企业管理器中,使用“注册向导”注册服务器。查看本地已注册的SQL Server。搜索网络上的另一台计算机,并且注册该机上的SQL Server,注册时使用“Windows认证模式”或“用我的SQL Server账户信息自动登录”的连接方式。5.从SQL企业管理器中注销网络SQL Server。6.打开本地服务器的属性对话框,查看以下信息:产品名称、主机操作系统、产品的版本、操作平台、主机内存等。7.利用企业管理器访问系统自带的pubs数据库。(1)以企业管理员的身份登录到企业管理器。(2)在企业管理器的树形目录中找到pubs数据库并展开,查看该数据库的所有对象,如表、视图、存储过程、默认和规则等。(3)选择pubs数据库的“表”选项,在右窗口中将列出pubs数据库的所有表(包括系统表和用户表),选择用户表titles表,右击鼠标,弹出快捷菜单,从中选择“打开表”“返回所有行”菜单项,打开titles表,查看其内容。8.利用查询分析器访问pubs数据库的表。(1)通过“开始”“程序”Microsoft SQL Server“查询分析器”方式运行SQL Server查询分析器,或者在企业管理器中选择“工具”“SQL查询分析器”菜单项,运行SQL Server查询分析器。(2)在查询分析器窗口中,选择“查询”“更改数据库”菜单项,或者单击常用工具栏中的“更改数据库”下拉按钮,选择要操作的pubs数据库。(3)在查询分析器的编辑窗口中,输入以下代码:SELECT type,avg(price)FROM titlesWHERE royalty=10GROUP BY type(4)选择查询分析器的“查询”“分析”菜单项,或者单击常用工具栏上“分析查询”按钮,查询分析器将对输入的代码进行语法分析,并由消息窗格给出分析结果报告。(5)选择查询分析器的“查询”“执行”菜单项,或者单击常用工具栏上“执行查询”按钮,SQL Server将编译窗口中的代码,并在结果窗格中显示查询结果,如图1-1所示。实验2 SQL Server数据库的管理一、实验目的1了解SQL Server数据库的逻辑结构和物理结构的特点。2学会使用企业管理器对数据库进行管理。3学会使用Transact-SQL语句对数据库进行管理。二、实验准备1确定能够创建数据库的用户是系统管理员,或是被授权使用CREATE DATABASE语句的用户。2确定要创建的数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长即增长的方式)和存储数据的文件。3了解常用的创建数据库方法。三、实验内容及步骤1.在企业管理器中创建studentsdb数据库。(1)运行SQL Server管理器,启动企业管理器,展开服务器“(LOCAL)(Windows NT)”。(2)右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话框的名称文本框中输入学生管理数据库名studentsdb。2.选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“数据文件”、“事务日志”、“文件组”、“选项”和“权限”页面。3.打开studentsdb数据库的“属性”对话框,在“数据文件”选项卡中修改studentsdb数据文件的“分配空间”大小为2MB。指定“最大文件大小”为5MB.在“事务日志”选项卡中修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。4.启动查询分析器,在查询分析器中使用Transact-SQL语句CREATE DATABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息。5.在查询分析器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小文1MB。6.在企业管理器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。7.使用企业管理器将studb数据库的名称更改为student_db。8.使用Transact-SQL语句DROP DATABASE删除student_db数据库。9.在企业管理器中删除studentsdb数据库。四、实验思考新数据库是否包含SQL Server在主设备中生成的模型数据库内的所有对象?实验3 SQL Server数据表的管理一、实验目的1.学会使用企业管理器和Transact-SQL语句CREATE TABLE和ALTER TABLE创建和修改表。2.学会在企业管理器中对表进行插入、修改和删除数据操作。3.学会使用Transact-SQL语句对表进行插入、修改和删除数据操作。4.了解SQL Server的常用数据类型。二、实验准备1.了解在企业管理器中实现表数据的操作,如插入、修改和删除等。2.掌握用Transact-SQL语句对表数据进行插入(INSERT)、修改(UPDATE)和删除(DELETE和TRANCATE TABLE)操作。三、实验内容及步骤1.启动企业管理器,展开studentsdb数据库文件夹。2.在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图1-2、图1-3和图1-4所示。图1-2学生基本情况表student_info图1-3课程信息表curriculum图1-4学生成绩表grade3.在企业管理器中创建student_info、curriculum表。4.在企业管理器中,将student_info表的学号列设置为主键,非空。5.使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建grade表。6.student_info、curriculum、grade表中的数据如图1-5、图1-6和图1-7所示。图1-5 student_info的数据图1-6 curriculum的数据图1-7 grade的数据7.在企业管理器中为student_info、curriculum、grade表添加数据。8.使用Transact_SQL语句INSERT INTO.VALUES向studentsdb数据库的grade表插入以下数据:学号课程编号分数0004 0001 809.使用Transact_SQL语句ALTER TABLE修改curriculum表的“课程编号”列,使之为非空。10.使用Transact_SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为real。11.使用Transact_SQL语句ALTER TABLE修改student_info表的“姓名”列,使其列名为“学生姓名”,数据类型为archar(10),非空。12.分别使用企业管理器和Transact_SQL语句DELETE删除studentsdb数据库的grade表中学号为0004的成绩记录。DELETE grade WHERE学号=000413.使用Transact_SQL语句UPDATE修改studentsdb数据库的grade表中学号为0003、课程编号为0005、分数为90的成绩记录。UPDATE grade SET分数=90WHERE学号=0003 and课程编号=000514.使用Transact_SQL语句ALTER.ADD为studentsdb数据库的grade表添加一个名为“备注”的数据列,其数据类型为VARCHAR(20)。ALTER TABLE grade ADD备注VARCHAR(20) NULL15.分别使用企业管理器和Transact_SQL语句DROP TABLE删除studentsdb数据库中的grade表。四、实验思考1使用Transact-SQL语句删除在studentsdb数据库的grade表添加的“备注”数据列。2在企业管理器中,studentsdb数据库的student_info表的数据输入时,如果输入相同学号的记录将出现什么现象?怎样避免该情况的发生?实验4数据查询一、实验目的1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。2.掌握使用SELECT语句进行条件查询的方法。3.掌握嵌套查询的方法。4.掌握多表查询的方法。5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。6.掌握联合查询的操作方法。7.掌握数据更新语句INSERT INTO、UPDATE、DELETE的使用方法。二、实验准备1.了解SELECT语句的基本语法格式和执行方法。2.了解嵌套查询的表示方法。3.了解UNION运算符的用法。4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。5.了解IN、JOIN等子查询的格式。6.了解INSERT INTO、UPDATE、DELETE的格式与作用。三、实验内容及步骤0.创建studentsdb数据库及其相应表,并录入数据。启动查询分析器,运行下面链接的代码即可。创建数据库代码1.在studentsdb数据库中,使用下列SQL语句将输出什么?(1)SELECT COUNT(*) FROM grade(2)SELECT SUBSTRING(姓名,1,2) FROM student_info(3)SELECT UPPER(kelly)(4)SELECT Replicate(kelly,3)(5)SELECT SQRT(分数) FROM grade WHERE分数=85(6)SELECT 2,3,POWER(2,3)(7)SELECT YEAR(GETDATE(),MONTH(GETDATE(),DAY(GETDATE()2.在studentsdb数据库中使用SELECT语句进行基本查询。(1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。(2)查询学号为0002的学生的姓名和家庭住址。(3)找出所有男同学的学号和姓名。3.使用SELECT语句进行条件查询(1)在grade表中查找分数在8090分为内的学生的学号和分数。(2)在grade表中查询课程编号为0003的学生的平均分。(3)在grade表中查询学习各门课程的人数。(4)将学生按出生日期由大到小排序。(5)查询所有姓“张”的学生的学号和姓名。SELECT学号,姓名FROM student_info WHERE姓名LIKE 张%4.嵌套查询(1)在student_info表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。SELECT姓名,出生日期FROM student_infoWHERE性别= (SELECT性别 FROM student_info WHERE姓名=刘卫平)(2)使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。SELECT学号,姓名,性别FROM student_infoWHERE student_info.学号IN (SELECT学号 FROM grade WHERE课程编号IN (0002, 0005)(3)列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。SELECT课程编号,分数FROM gradeWHERE学号=0001 AND分数ANY (SELECT分数 FROM grade WHERE学号=0002)(4)列出学号为0001的学生的分数比0002的学生的最高成绩还要高的课程编号和分数。5.多表查询(1)查询分数在8090范围内的学生的学号、姓名、分数。SELECT student_info.学号,姓名,分数FROM student_info,gradeWHERE student_info.学号=grade.学号AND分数BETWEEN 80 AND 90(2)查询学习“C语言程序设计”课程的学生的学号、姓名、分数。SELECT student_info.学号,姓名,分数FROM student_infoINNER JOIN grade ON student_info.学号=grade.学号INNER JOIN curriculum ON课程名称=C语言程序设计(3)查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。(4)查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程名称、分数。(5)查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。提示:使用左外连接。(6)为grade表添加数据行:学号0004、课程编号为0006、成绩为76。查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有的课程列值为空。提示:使用右外连接。6.使用UNION运算符将student_info表中姓“张”的学生的学号、姓名与curriculum表的课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称,如图1-8所示。图1-8联合查询结果集7.数据更新(1)创建totalgrade表,具有数据列:学号、姓名、总成绩。CREATE TABLE totalgrade(学号char(4) NOT NULL,姓名varchar(8) NULL,总成绩decimal(5,2) NULL )(2)使用INSERT INTO语句通过student_info表更新totalgrade表的学号、姓名列数据。INSERT INTO totalgrade SELECT学号,姓名,总成绩=0 FROM student_info(3)使用UPDATE语句通过grade表更新totalgrade表的中成绩列数据,使totalgrade表中每个学生的总分成绩为grade表中该学生各成绩之和。UPDATE totalgrade SET总成绩= (SELECT SUM(分数) FROM grade WHERE totalgrade.学号=grade.学号)FROM grade(4)删除totalgrade表中没有总成绩的学生记录。四、实验思考1查询所有没有选修课程的学生信息,返回结果包括学号、姓名、性别。2在student_info表和grade表之间实现交叉连接。3查询每个学生的所选课程的成绩,并列出学号生成分组汇总(总成绩)和明细行(各课成绩)。提示:使用SELECT语句的COMPUTE选项。实验5索引和视图一、实验目的1.学会使用企业管理器和Transact-SQL语句CREATE INDEX创建索引。2.学会使用企业管理器查看索引。3.学会使用企业管理器和Transact-SQL语句DROP INDEX删除索引。4.掌握使用企业管理器、向导等创建、管理和删除全文索引,并使用全文引索查询信息的方法。5.掌握使用企业管理器和Transact-SQL语句CREATE-VIEW创建视图的用法。6.掌握系统存储过程sp_rename的用法。7.掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。二、实验准备1.了解聚集索引和非聚集索引的概念。2.了解使用Transact-SQL语句CREATE INDEX创建索引的语法。3.了解使用企业管理器创建索引的步骤。4.了解Transact-SQL语句DROP INDEX删除索引的用法。5.了解创建视图的Transact-SQL语句CREATE INDEX的语法格式及用法。6.了解修改视图的Transact-SQL语句ALTER VIEW的语法格式。7.了解视图更名的系统存储过程sp_rename的用法。8.了解删除视图的Transact-SQL语句DROP VIEW的用法。三、实验内容0.创建studentsdb数据库及其相应表,并录入数据。启动查询分析器,运行下面链接的代码即可。创建数据库代码1.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的student_info表格和curriculum表创建主键索引。2.使用企业管理器按curriculum表的课程编号列创建唯一性索引。3.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。CREATE INDEX grade_index ON grade(分数)4.为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 CREATE UNIQUE INDEX grade_id_c_ind ON grade(学号,课程编号)5.分别使用企业管理器和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。 sp_helpindex grade6.使用企业管理器的“向导”工具对grade表创建一个聚集索引和唯一索引。7.使用系统存储过程sp_rename将引索grade_index更名为grade_ind。 sp_renamegrade.grade_index,grade_ind,INDEX8.分别使用企业管理器和Transact-SQL语句DROP INDEX删除索引grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。 DROP INDEX grade.grade_ind9.分别使用企业管理器和系统存储过程sp_fulltext_database为studentsdb数据库启用全文索引。10.分别使用企业管理器和系统存储过程sp_fulltext_catalog为studentsdb数据库建立全文目录,命名为FT_stu。为student_info表建立全文索引数据元。 execute sp_fulltext_catalogFT_stu,create exec sp_fulltext_tablestudent_info,create,FT_stu,PK_student_info在建立全文索引数据元之前保证已为student_info表建立了PK_student_infl索引。11.为student_info表设置全文索引列名为家庭住址。在全文目录中注册该表,激活表的全文检索能力。 execute sp_fulltext_columnstudent_info,家庭住址,add execute sp_fulltext_tablestudent_info,activate12.填充全文目录,检查全文目录填充情况。 execute sp_fulltext_catalogFT_stu,start_full While (fulltextcatalogproperty(FT_stu,populateStatus)0) BEGIN waitfor delay0;0;30-如果全文目录正处于填充状态,则等待30s后再检测一次 END13.在student_info表中,分别使用CONTAINS和FREETEXT函数通过全文目录检索家庭住址包含25号的记录。 SELECT姓名,家庭住址 FROM student_info WHERE CONTAINS(家庭住址,25号)14.使用系统存储过程从studentsdb数据库中禁用全文检索。15.在studentsdb数据库中,以student_info表为基础,使用企业管理器建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。16.在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。17.基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的所有课程和成绩,如图1-9所示。学号姓名课程名称分数0001刘卫平大学计算机基础800001刘卫平C语言程序设计900001刘卫平SQL Server数据库870001刘卫平英语860001刘卫平高等数学78图1-9学号为0001的学生的视图信息18.分别使用企业管理器和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。19.使用Transact-SQL语句ALTER VIEW修改视图v_stu_i,使其具有列名学号、姓名、性别。ALTER VIEW v_stu_i(学号,姓名,性别)AS SELECT学号,姓名,性别FROM student_info20.使用系统存储过程sp_rename将视图v_stu_i更名为v_stu_info。 sp_rename v_stu_i,v_stu_info21.利用视图v_stu_i为student_info表添加一行数据:学号为0015、姓名为陈婷、性别为女。22.利用视图v_stu_i删除学号为0015的学生记录。23.利用视图v_stu_g修改姓名为刘卫平的学生的高等数学的分数为84。24使用Transact-SQL语句DROP VIEW删除视图v_stu_c和v_stu_g。四、实验思考1.是否可以通过视图v_stu_g修改grade表中学号列数据?2.比较通过试图和基表操作表中数据的异同。实验6数据完整性一、实验目的1.掌握企业管理器和Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。2.掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_help、sp_helptext查询规则信息,sp_rename更名规则的方法。3.掌握企业管理器和Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建和删除默认对象的方法。4.掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_help、sp_helptext查询规则信息,sp_rename更名规则的方法。5.掌握企业管理器和Transact-SQL语句(CREATE TABLE、AKTER TABLE)定义和删除约束的方法,并了解约束的类型。二、实验准备1.了解数据完整性概念。2.了解创建规则和删除规则的语法,了解绑定规则和解除绑定规则的语法。3.了解创建默认对象和删除默认对象的语法,了解绑定和删除绑定默认对象的语法。4.了解约束的类型,创建约束和删除约束的语法。三、实验内容和步骤0.创建studentsdb数据库及其相应表,并录入数据。启动查询分析器,运行下面链接的代码即可。创建数据库代码1为sutdentsdb数据库创建一个规则,限制所输入的数据为7位0-9的数字。(1)复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。完成以下代码实现该操作。SELECT*INTO stu_phone FROM student_infoALTER TABLE stu_phone ADD _ CHAR(7)NULLStu_phone表结构如图1-10所示。学号姓名性别出生日期家庭住址备注电话号码10001刘卫平男1980-10-01 00:00:00.000衡山市东风路78号NULLNULL20002张为民男1980-12-02 00:00:00.000东阳市八一北路25号NULLNULL图1-10 stu_phone表结构(2)创建一个规则phone_rule,限制所输入的数据为7位09的数字。实现该规则的代码为CREATE_phone_ruleASphone LIKE 0-9 0-9 0-9 0-9 0-9 0-9 0-9(3)使用系统存储过程sp_bindrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。实现该操作的代码为sp_bindrule_,stu_phone.电话号码(4)输入以下代码,进行一次插入操作:INSERT INTO stu_phone(学号,姓名,电话号码)VALUES(0009,王国强,1234yyy)产生以下出错信息:服务器:消息513,级别16,状态1,行1列的插入或更新与先前的CREATE RULE语句所强制的规则冲突。改语句已终止。冲突发生于数据库studentsdb,表stu_phone,列电话号码试分析:为什么会产生该出错信息?如果要实现插入操作,应修改INSERT INTO语句中的哪个值?phone_rule规则能否对其他操作(如DELETE)进行规则检查?2使用企业管理器实现实验内容1的每个操作。3创建一个规则stusex_rule,将其绑定到stu_phone表的“性别”列上,保证输入的性别值只能是“男”或“女”。4使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。5删除stu_s_rule规则。注意:stue_s_rule为stusex_rule更名后规则名,是否仍然绑定在stu_phone表的“性别”列上,应如何操作才能删除它。6在stuedentdb数据库中,建立日期、货币和字符等数据类型的默认对象。(1)在查询分析其中,完成以下代码,创建默认对象df_date、df_char、df_money。-创建日期型默认对象df_dateCREATE_df_dateAS2006-4-12GO-创建字符型默认对象df_charCREATE DEFAULT df_char_unknownGO-创建货币型默认对象df_moneyCREATE DEFAULT _AS $100GO(2)输入以下代码,在studentdb数据库中创建stu_fee数据表。CREATE TABLE stu_fee(学号char(10)NOT NULL,姓名char(8)NOT NULL,学费money,交费日期datetime,电话号码char(7)表stu_fee的数据结构如图1-11所示。学号姓名学费交费日期电话号码图1-11 stu_fee.的数据结构(3)使用系统存储过程sp-bindefault将默认对象df_date、df_char、df_money分别绑定在stu_fee表的“学费”、“交费日期”、“电话号码”列上。_df-money,stu_fee.学费GOSp_bindefault_,stu_fee.交费日期GOSp_bindefault df_char,stu_fee.电话号码GO(4)输入以下代码,在stu_fee表进行插入操作:INSERT INTO stu_fee(学号,姓名)values(0001,刘卫平)INSERT INTO stu_fee(学号,姓名,学费)values(0001,张卫民,$120)INSERT INTO stu_fee(学号,姓名,学费,交费日期) VALUES(0001,马东,$110,2006-5-12)分析stu_fee表中插入记录的各列的值是什么?(5)完成以下代码解除默认对象df_char的绑定,并删除之。_stu_fee.电话号码_DEFAULT df_char按同样的方式,删除默认对象df_date/df_money。7.使用企业管理器创建默认对象df_date、df_money,并将它们分别绑定到stu_fee表的“学费”、“交费日期”、“电话号码”列上,在插入操作中观察stu_fee表的数据变化情况,完成操作后,删除这些默认对象。 8.为student_info表添加一页,命名为“院系”,创建一个默认对象stu_d_df,将其绑定到student_info表的“院系”列上,时期默认值为“信息院”,对student_info表进行插入操作,操作完成后,删除该默认对象。分别使用企业管理器和查询分析器实现。 9.在studentsdb数据库中用CREATE TABLE语句创建表stu_con,并同时创建约束。(1)创建表的同时创建约束。表结构如图1-12所示列名数据类型长度学号char4姓名char8性别char2出生日期datetime8家庭住址varchar50图1-12要创建的表的结构约束要求如下:将学号设置为主键(PRIMARY KEY),主键名为pk_sid。为姓名添加唯一约束(UNIQUE),约束名为uk_name。为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男”。为出生日期添加属性值约束(CHECK),约束名为ck_beday,其检查条件为:出生日期1988-1-1。(2)在stu_con表中插入如表1-1所示的数据记录。表1-1在stu-con表中插入的数据学号姓名性别出生日期家庭住址0009张小东1989-4-60010李梅女1983-8-50011王强1988-9-100012王强1989-6-3分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一致?(3)使用ALTER TABLE语句的DROP CONSTRAINT参数项在查询分析器中删除为stu_con表所建的约束。10.用企业管理器完成实验内容9的所有设置。11.在查询分析器中,为studentsdb数据库的grade表添加外键约束(FOREIGN KEY),要求将“学号”设置为外键,参照表为student_info,外键名为ufk_sid。使用系统存储过程sp_help查看grade表的外键信息。在grade表中插入表1-2所示记录,观察SQL Server会做何处理,为什么?如何解决所产生的问题?表1-2学号课程编号分数0100000178使用查询分析器删除grade表的外键fk_sid。四、实验思考1.在SQL Server 2000中,可采用哪些方法实现数据完整性?2.比较默认对象和默认约束的异同。实验7 Transact-SQL程序设计一、实验目的1掌握Transact-SQL的数据类型、常量变量、表达式等概念。2掌握程序中注释的基本概念和使用方法。3掌握程序中的流程控制语句。4掌握SQL Server 2000中常用函数的用法。5掌握游标的概念和声明方法,以及使用游标进行数据的查询、修改、删除操作等。二、实验准备1.了解程序中注释的语法格式。2.了解程序中的流程控制语句:IF-ELSE、CASE、WHILE等控制流语句。3.了解系统提供的常用数学函数、日期和时间函数、字符串函数和数据类型转换函数的用法。4.了解函数的使用方法。5.了解游标的使用方法。三、实验内容和步骤0.创建studentsdb数据库及其相应表,并录入数据。启动查询分析器,运行下面链接的代码即可。创建数据库代码1.在查询分析器中,选择studentsdb数据库,输入以下代码。DECLAREstuname varchar(10)SELECTstuname=姓名FORM studentinfoWHERE姓名LIKE 张%SELECTstuname观察显示的结果,与studentinfo表中数据进行比较,stuname赋值的是SELECT结果集中的哪个数据2.定义int型局部变量grademax、grademin、gradesum,在grade表中查找最高分、最低分和总分,分别赋给grademax、grademin和gradesum,并显示。DECLAREgrademax int,gradesum,intSELECTgrademax = max(分数),grademin = min(分数),gradesum = sum(分数)FROM gradeSELECT grademax ,grademin,gradesum3.使用SET命令将查询的结果数目赋值给int型局部变量row。给下面代码中的划线处填上适当的内容,以完成上述操作。DECLARErowSET=(SELECT COUNT(*)FROM grade)rows 显示rows的值4.以下代码在curriculum表中插入新纪录:DECLARE intCId int,intErrorCode intINSERT INTO curriculum(课程编号,课程名称,学分)

温馨提示

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

最新文档

评论

0/150

提交评论