当前位置:文档之家› SQL SERVER2005上机实验指导

SQL SERVER2005上机实验指导

SQL SERVER2005上机实验指导
SQL SERVER2005上机实验指导

实验1 SQL Server 2005的安装及管理工具的使用

1.实验目的

(1)了解SQL Server 2005安装对软、硬件的要求,掌握安装方法。

(2)了解SQL Server 2005的注册和配置方法。

(3)了解SQL Server 2005包含的主要组件及其功能。

(4)熟悉SQL Server 2005管理平台的界面及基本使用方法。

(5)了解SQL Server 2005数据库及其对象。

(6)了解在SQL Server2005管理平台中执行SQL语句的方法。

2.实验内容及步骤

(1)根据软、硬件环境的要求,安装SQL Server 2005(在安装过程中,请选择安装示例数据库AdventureWorks)。

(2)通过选择“开始”→“程序”→Microsoft SQL Server 2005→“配置工具”→SQL Server Configuration Manager菜单项,打开“SQL Server配置管理器”窗口,在界面左边的树目录中选择“SQL Server 2005 服务”,在右边的项列表区中选择SQL Server。并且通过该窗口“启动服务”和“停止服务”图标来启动和停止SQL Server服务。

(3)通过“开始”→“程序”→Microsoft SQL Server 2005→SQL Server Management Studio菜单项打开SQL Server 2005管理平台。

(4)在SQL Server 2005管理平台中,注册服务器。查看本地已注册的SQL Server。查找网络上另一台计算机,并且注册该机上的SQL Server,注册时使用“Windows身份认证”或“SQL Server身份认证”的连接方式。

(5)从SQL Server管理平台中删除网络SQL Server服务器。

(6)在SQL Server管理平台的对象资源管理器中打开本地服务器的属性对话框,查看以下信息:产品名称、主机操作系统、产品的版本、操作平台、主机内存等。

(7)利用SQL Server管理平台访问系统自带的AdventureWorks数据库。

①以系统管理员身份登录到SQL Server管理平台。

②在SQL Server管理平台的对象资源管理器窗口中找到AdventureWorks 数据库并展开,查看该数据库的所有对象,如表、视图、存储过程、默认和规则等。

③选择AdventureWorks数据库的“表”选项,在右窗格中将列出AdventureWorks数据库的所有表,选择雇员表HumanResources.Employee,右击鼠标,弹出快捷菜单,从中选择“打开表”菜单项,打开Employee表,查看其内容。

2

数据库技术与应用实践教程——SQL Server 2005

(8)利用SQL Server管理平台的查询设计器窗口访问AdventureWorks数据库的表。

①在SQL Server管理平台的对象资源管理器窗口中,选择AdventureWorks

数据库结点,单击鼠标右键,在弹出的快捷菜单中选择“新建查询”命令,或者选择数据库后,单击工具栏的“新建查询”命令,打开查询设计器窗口。

②在查询设计器窗口中,输入以下代码:

SELECT *

FROM HumanResources.Employee a

WHERE a.Gender='M'

ORDER BY a.Title

③选择SQL Server管理平台的“查询”→“分析”菜单项,或者单击常用

工具栏上“验证SQL语法”按钮,查询设计器将对输入的代码进行语法分析,并由消息窗格给出分析结果报告。

④选择SQL Server管理平台的“查询”→“执行”菜单项,或者单击常用

工具栏上“执行SQL”按钮,SQL Server将编译窗口中的代码,并在结果窗格中显示查询结果,如图1-1所示。

图1-1 查询设计器窗口

3.实验思考

(1)SQL Server管理平台的作用是什么?如何进入SQL Server管理平台?

(2)SQL Server配置管理器的作用是什么?如何进入SQL Server配置管理器?

(3)用几种不同的方法实现注册数据库服务器与对象资源管理器的连接。

(4)查询设计器窗口的作用是什么?如何打开查询设计器窗口?

(5)改变查询设计器的当前数据库使用什么方法?

3

第1部分错误!文档中没有指定样式的文字。

实验2 SQL Server数据库的管理

1.实验目的

(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。

(2)掌握使用SQL Server管理平台对数据库进行管理的方法。

(3)掌握使用Transact-SQL语句对数据库进行管理的方法。

2.实验内容及步骤

(1)在SQL Server管理平台中创建数据库。

①运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。

②右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建

数据库对话框的数据库名称文本框中输入学生管理数据库名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)使用SQL Server管理平台将studb数据库的名称更改为student_db。

(8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。

(9)在SQL Server管理平台中删除studentsdb数据库。

3.实验思考

(1)数据库中的日志文件是否属于某个文件组?

(2)数据库中的主数据文件一定属于主文件组吗?

(3)数据文件和日志文件可以在同一个文件组吗?为什么?

4

数据库技术与应用实践教程——SQL Server 2005

(4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库?删除了的数据库还有可能恢复吗?

(5)能够删除系统数据库吗?

实验3 SQL Server数据表的管理

1.实验目的

(1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE TABLE 和ALTER TABLE创建和修改表的方法。

(2)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。

(3)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。

(4)了解SQL Server的常用数据类型。

2.实验内容及步骤

(1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。

(2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图1-2至图1-4所示。

图1-2 学生基本情况表student_info

图1-3 课程信息表curriculum

5

第1部分错误!文档中没有指定样式的文字。

图1-4 学生成绩表grade

(3)在SQL Server管理平台中创建student_info、curriculum表。

(4)在SQL Server管理平台中,将student_info表的学号列设置为主键,非空。

(5)使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建grade表。

(6)student_info、curriculum、grade表中的数据如图1-5至图1-7所示。

图1-5 student_info的数据

图1-6 curriculum的数据

6

数据库技术与应用实践教程——SQL Server 2005

图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 TABLE修改grade表的“分数”列,使其数据类型为real。

(11)使用Transact-SQL语句ALTER TABLE修改student_info表的“姓名”

列,使其列名为“学生姓名”,数据类型为varchar(10),非空。

(12)分别使用SQL Server管理平台和Transact-SQL语句DELETE删除studentsdb数据库的grade表中学号为0004的成绩记录。

(13)使用Transact-SQL语句UPDATE修改studentsdb数据库的grade表中学号为0003、课程编号为0005的分数为90的成绩记录。

(14)使用Transact-SQL语句ALTER...ADD为studentsdb数据库的grade表添加一个名为“备注”的数据列,其数据类型为V ARCHAR(20)。

3.实验思考

(1)使用Transact-SQL语句删除在studentsdb数据库的grade表添加的“备注”数据列。

(2)在SQL Server管理平台中,studentsdb数据库的student_info表的数据输入时,如果输入相同学号的记录将出现什么现象?怎样避免该情况的发生?

7

第1部分错误!文档中没有指定样式的文字。

(3)已经打开的表能删除吗?

(4)在SQL Server 2005中能将数据表中的字段名和其数据类型同时改变吗?

实验4 数据查询

1.实验目的

(1)掌握使用Transact-SQL的SELECT语句进行基本查询的方法。

(2)掌握使用SELECT语句进行条件查询的方法。

(3)掌握SELECT语句的GROUP BY、ORDER BY以及UNION子句的作

用和使用方法。

(4)掌握嵌套查询的方法。

(5)掌握连接查询的操作方法。

2.实验内容及步骤

(1)在studentsdb数据库中,使用下列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(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())

(2)在studentsdb数据库中使用SELECT语句进行基本查询。

①在student_info表中,查询每个学生的学号、姓名、出生日期信息。

②查询学号为0002 的学生的姓名和家庭住址。

③找出所有男同学的学号和姓名。

(3)使用SELECT语句进行条件查询。

①在grade表中查找分数在80~90范围内的学生的学号和分数。

②在grade表中查询课程编号为0003的学生的平均分。

③在grade表中查询学习各门课程的人数。

④将学生按出生日期由大到小排序。

⑤查询所有姓“张”的学生的学号和姓名。

(4)对student_info表,按性别顺序列出学生的学号、姓名、性别、出生日

期及家庭住址,性别相同的按学号由小到大排序。

8

数据库技术与应用实践教程——SQL Server 2005

(5)使用GROUP BY查询子句列出各个学生的平均成绩。

(6)使用UNION运算符将student_info表中姓“张”的学生的学号、姓名与curriculum表的课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称,如图1-8所示。

图1-8 联合查询结果集

(7)嵌套查询。

①在student_info表中查找与“刘卫平”性别相同的所有学生的姓名、出

生日期。

②使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性

别。

③列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编

号和分数。

④列出学号为0001的学生的分数比学号为0002的学生的最高成绩还要高

的课程编号和分数。

(8)连接查询。

①查询分数在80~90范围内的学生的学号、姓名、分数。

②查询学习“C语言程序设计”课程的学生的学号、姓名、分数。

③查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。

④查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程编号、

分数。

⑤查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程

的学生的总成绩为空。

⑥为grade表添加数据行:学号为0004、课程编号为0006、分数为76。

查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum 表中没有的课程列值为空。

3.实验思考

(1)查询所有没有选修课程的学生信息,返回结果包括学号、姓名、性别。

(2)在student_info表和grade表之间实现交叉连接。

(3)查询每个学生的所选课程的成绩,并列出学号生成分组汇总行(总成绩)和明细行(各课成绩)。

9

第1部分错误!文档中没有指定样式的文字。

(4)在查询语句中SELECT、FROM和WHERE选项分别实现什么运算?

(5)在查询的FROM子句中实现表与表之间的连接有哪几种方式?对应的

关键字分别是什么?

实验5 索引和视图

1.实验目的

(1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX

创建索引的方法。

(2)掌握使用SQL Server管理平台查看索引的方法。

(3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除

索引的方法。

(4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创

建视图的用法。

(5)了解索引和视图更名的系统存储过程sp_rename的用法。

(6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。

(7)了解删除视图的Transact-SQL语句DROP VIEW的用法。

2.实验内容及步骤

(1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据

库的student_info表和curriculum表创建主键索引。

(2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据

库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。

(4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一

个复合唯一索引,命名为grade_id_c_ind。

(5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade

表和student_info表上的索引信息。

(6)使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。

(7)使用系统存储过程sp_rename将索引grade_index更名为grade_ind。

(8)分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除

索引grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。

(9)在studentsdb数据库中,以student_info表为基础,使用SQL Server管

理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。

(10)在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立

10

数据库技术与应用实践教程——SQL Server 2005

一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。

(11)基于student_info表、curriculum表和grade表,建立一个名为v_stu_g 的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g 查询学号为0001的学生的所有课程与成绩,如图1-9所示。

图1-9 学号为0001的学生的视图信息

(12)分别使用SQL Server管理平台和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。

(13)使用Transact-SQL语句ALTER VIEW修改视图v_stu_i,使其具有列名学号、姓名、性别。

(14)使用系统存储过程sp_rename将视图v_stu_i更名为v_stu_info。

(15)利用视图v_stu_i为student_info表添加一行数据:学号为0015、姓名为陈婷、性别为女。

(16)利用视图v_stu_i删除学号为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 2005中有两种形式的索引:聚集索引和非聚集索引,简单叙述它们的区别?

(5)能否在视图上创建索引?

实验6 数据完整性

1.实验目的

(1)掌握Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。

(2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的

11

第1部分错误!文档中没有指定样式的文字。

操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。

(3)掌握Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建

和删除默认对象的方法。

(4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对

象的操作方法,以及sp_helptext查询默认对象信息。

(5)掌握SQL Server管理平台和Transact-SQL语句(CREA TE TABLE、AL TER TABLE)定义和删除约束的方法,并了解约束的类型。

2.实验内容及步骤

(1)为studentsdb数据库中student_info表的创建一个规则,限制“电话号

码”列所输入的数据为7位0~9的数字。

(2)创建一个规则stusex_rule,将其绑定到stu_phone表的“性别”列上,

保证输入的性别值只能是“男”或“女”。

(3)使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext

查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为

stu_s_rule。

(4)删除stu_s_rule规则。

(5)在studentdb数据库中,建立日期、货币和字符等数据类型的默认值对

象。

①在查询设计器中,完成以下代码,创建默认对象df_date、df_char、

df_money。

②输入以下代码,在studentsdb数据库中创建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的数据结构

③使用系统存储过程sp_bindefault将默认对象df_money、df_date、df_char

分别绑定在stu_fee表的“学费”、“交费日期”、“电话号码”列上。

④输入以下代码,在stu_fee表进行插入操作:

INSERT INTO stu_fee(学号,姓名) V ALUES('0001','刘卫平')

INSERT INTO stu_fee(学号,姓名,学费) V ALUES('0001','张卫民',$120)

12

数据库技术与应用实践教程——SQL Server 2005

INSERT INTO stu_fee(学号,姓名,学费,交费日期)

V ALUES('0001','马东',$110,'2006-5-12')

分析stu_fee表中插入记录的各列的值是什么?

⑤完成以下代码,解除默认对象df_char的绑定,并删除默认对象。按同

样的方式,删除默认对象df_date、df_money。

(6)为student_info表添加一列,命名为“院系”,创建一个默认值对象stu_d_df,将其绑定到student_info表的“院系”列上,使其默认值为“信息工程学院院”,对student_info表进行插入操作,操作完成后,删除该默认对象。

(7)在studentsdb数据库中用CREATE TABLE语句创建表stu_con,并同时创建约束。

①创建表的同时创建约束。表结构如图1-12所示。

图1-12 要创建的表的结构

约束要求如下:

?将学号设置为主键(PRIMARY KEY),主键名为pk_sid。

?为姓名添加唯一约束(UNIQUE),约束名为uk_name。

?为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男”。

?为出生日期添加属性值约束(CHECK),约束名为ck_bday,其检查条件

为:出生日期>'1988-1-1'。

②在stu_con表中插入如表1-1所示的数据记录。

表1-1 在stu_con表中插入的数据

学号姓名性别出生日期家庭住址

0009 张小东1989-4-6

0010 李梅女1983-8-5

0011 王强1988-9-10

0012 王强1989-6-3

分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一致?

③使用ALTER TABLE语句的DROP CONSTRAINT参数项在查询设计器

中删除为stu_con表所建的约束。

(8)用SQL Server管理平台完成实验内容7的所有设置。

(9)在查询设计器中,为studentsdb数据库的grade表添加外键约束

13

第1部分错误!文档中没有指定样式的文字。(FOREIGN KEY),要求将“学号”设置为外键,参照表为student_info,外键

名称为fk_sid。

①使用系统存储过程sp_help查看grade表的外键信息。

②在grade表中插入一条记录,学号为0100,课程编号为0001,分数为78。观察SQL Server会做何处理,为什么?如何解决所产生的问题?

③使用查询设计器删除grade表的外键fk_sid。

3.实验思考

(1)在SQL Server 2005中,可采用哪些方法实现数据完整性?

(2)比较默认对象和默认约束的异同。

(3)可以使用SQL Server管理平台创建规则和默认值对象吗?

(4)在数据库中建立的规则不绑定到数据表的列上会起作用吗?为什么?

(5)请说明唯一约束和主键约束之间的联系和区别。

实验7 Transact-SQL程序设计

1.实验目的

(1)掌握Transact-SQL的数据类型、常量变量、表达式等的概念和使用方

法。

(2)掌握程序中注释的基本概念和使用方法。

(3)掌握程序中的流程控制语句的使用方法。

(4)掌握SQL Server 2005中常用函数的用法。

(5)掌握游标的概念和声明方法,以及使用游标进行数据的查询、修改、

删除操作等。

2.实验内容及步骤

(1)选择studentsdb数据库,打开新建查询编辑器,输入以下代码。

DECLARE @stu_name varchar(10)

SELECT @stu_name=姓名

FROM student_info

WHERE 姓名LIKE '张%'

SELECT @stu_name

观察显示的结果,与student_info表中数据进行比较,@stu_name赋值的是SELECT结果集中的哪个数据?

(2)定义int型局部变量@grademax、@grademin、@gradesum,在grade表

中查找最高分、最低分和总分,分别赋给@grademax、@grademin和@gradesum,

14

数据库技术与应用实践教程——SQL Server 2005

并显示。

(3)使用SET命令将查询结果集记录数目赋值给int型局部变量@row。

(4)以下代码在curriculum表中插入新记录:

DECLARE @intCId int,@intErrorCode int

INSERT INTO curriculum(课程编号,课程名称,学分)

V ALUES('0006','VB程序设计',2)

SELECT @intCId=@@identity,@intErrorCode=@@error

SELECT @intCId,@intErrorCode

将该代码段连续执行两次,观察两次显示的信息及curriculum表中数据的变化,为什么前后两次执行时显示的信息会不同?

(5)在studentsdb数据库的student_info表中,以“性别”为分组条件,分别统计男生和女生人数。

(6)在grade表中,使用适当函数找出“高等数学”课程的最高分、最低分和平均分。

(7)定义一个datetime型局部变量@studate,以存储当前日期。计算student_info表中的学生的年龄,并显示学生的姓名、年龄。

(8)运行以下代码,写出运行结果。

DECLARE @a int,@b int

SET @a=168

SET @b=73

SELECT @a & @b,@a|@b,@a^@b

(9)在局部变量@stu_id中存储了学号值。编写代码查询学号为0001的学生的各科平均成绩,如果平均分 60,则显示“你的成绩及格了,恭贺你!!”,否则显示“你的成绩不及格”。

(10)运行以下代码段,写出运行的结果。

DECLARE @counter int

SET @counter=1

WHILE @counter<10

BEGIN

SELECT '@counter的值现在为:'+CONVERT(CHAR(2),@counter)

SET @counter=@counter+1

END

(11)查询grade表。如果分数大于等于90,显示A;如果分数大于等于80小于90,显示B;如果分数大于等于70小于80,显示C;如果分数大于等于60小于70,显示D;其他显示E。

(12)计算grade表的分数列的平均值。如果小于80,则分数增加其值的5%;

如果分数的最高值超过95,则终止该操作。

15

第1部分错误!文档中没有指定样式的文字。

(13)编写代码计算并显示@n=1+2+3+ (20)

(14)编写代码计算并显示1~100之间的所有完全平方数。例如,81=92,

则称81为完全平方数。

(15)计算1~100以内的所有素数。

(16)在studentsdb数据库中,使用游标查询数据。

①打开查询设计器,声明一个stu_cursor游标,要求返回student_info表中

性别为“男”的学生记录,且该游标允许前后滚动和修改。

②打开stu_cursor游标。

③获取并显示所有数据。

④关闭该游标。

(17)使用游标修改数据。

①打开stu_cursor游标。

②将姓马的男同学的出生日期的年份加1。

③关闭stu_cursor游标。

(18)声明游标变量@stu_c,使之关联stu_cursor游标,利用@stu_c查询年

龄在6~9月份出生的学生信息。

(19)使用系统存储过程sp_cursor_list显示在当前作用域内的游标及其属性。

3.实验思考

(1)Transact-SQL语言的运算符主要有哪些?

(2)流程控制语句与其他编程语言提供的语句有何差别?

(3)区分局部变量与全局变量的不同,思考全局变量的用处。

(4)什么函数能将字符串前和尾的空格去掉?

(5)使用什么语句可以打开游标?打开成功后,游标指针指向结果集的什

么位置?

实验8 存储过程和触发器

1.实验目的

(1)掌握通过SQL Server管理平台和Transact-SQL语句CREATE PROCEDURE创建存储过程的方法和步骤。

(2)掌握使用Transact-SQL语句EXECUTE执行存储过程的方法。

(3)掌握通过SQL Server管理平台和Transact-SQL语句ALTER PROCEDURE修改存储过程的方法。

(4)掌握通过SQL Server管理平台和Transact-SQL语句DROP PROCEDURE

删除存储过程的方法。

(5)掌握通过SQL Server管理平台和Transact-SQL语句CREATE TRIGGER

16

数据库技术与应用实践教程——SQL Server 2005

创建触发器的方法和步骤。

(6)掌握引发触发器的方法。

(7)掌握使用SQL Server管理平台或Transact-SQL语句修改和删除触发器。

(8)掌握事务、命名事务的创建方法,了解不同类型的事务的处理情况。

2.实验内容及步骤

(1)在查询设计器中输入以下代码,创建一个利用流控制语句的存储过程letters_print,该存储过程能够显示26个小写字母。

CREATE PROCEDURE letters_print

AS

DECLARE @count int

SET @count=0

WHILE @count<26

BEGIN

PRINT CHAR(ASCII('a')+ @count)

SET @count=@count +1

END

单击查询分析器的“执行查询”按钮,查看studentsdb数据库的存储过程是否有letters_print。

使用EXECUTE命令执行letters_print存储过程。

(2)输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名对应的学生的各科成绩。

CREATE PROCEDURE stu_info @name varchar(40)

AS

SELECT a.学号,姓名,课程编号,分数

FROM student_info a INNER JOIN grade ta

ON a.学号= ta.学号

WHERE 姓名= @name

使用EXECUTE命令执行存储过程stu_info,其参数值为“马东”。

如果存储过程stu_info执行时没有提供参数,要求能按默认值查询(设姓名为“刘卫平”),如何修改该过程的定义?

(3)使用studentsdb数据库中的student_info表、curriculum表、grade表。

①创建一个存储过程stu_grade,查询学号为0001的学生的姓名、课程名

称、分数。

②执行存储过程stu_grade,查询0001学生的姓名、课程名称、分数。

③使用系统存储过程sp_rename将存储过程stu_grade更名为stu_g。

(4)使用student_info表、curriculum表、grade表。

①创建一个带参数的存储过程stu_g_p,当任意输入一个学生的姓名时,

17

第1部分错误!文档中没有指定样式的文字。

将从3个表中返回该学生的学号、选修的课程名称和课程成绩。

②执行存储过程stu_g_p,查询“刘卫平”的学号、选修课程和课程成绩。

③使用系统存储过程sp_helptext,查看存储过程stu_g_p的文本信息。

(5)使用student_info表。

①创建一个加密的存储过程stu_en,查询所有男学生的信息。

②执行存储过程stu_en,查看返回学生的情况。

③使用Transact-SQL语句DROP PROCEDURE删除存储过程stu_en。

(6)使用grade表。

①创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参

数获取该学生各门课程的平均成绩。

②执行存储过程stu_g_r,输入学号0002。

③显示0002号学生的平均成绩。

(7)输入以下代码,复制student_info表命名为stu2,为stu2表创建一个触

发器stu_tr,当stu2表插入一条记录时,为该记录生成一个学号,该学号为学

号列数据的最大值加1。

--复制student_info表命名为stu2

SELECT * INTO stu2 FROM student_info

GO

--为stu2表创建一个INSERT型触发器stu_tr

CREATE TRIGGER stu_tr

ON stu2 FOR INSERT

AS

DECLARE @max char(4)

SET @max=(SELECT MAX(学号) FROM stu2)

SET @max=@max+1

UPDATE stu2 SET 学号=REPLICATE('0',4-len(@max))+@max

FROM stu2 INNER JOIN inserted on stu2.学号=inserted.学号

执行以上代码,查看studentsdb数据库中是否有stu2表,展开stu2,查看其

触发器项中是否有stu_str触发器。

在查询设计器的编辑窗口输入以下代码:

INSERT INTO stu2(学号,姓名,性别) V ALUES('0001','张主','女')

运行以上代码,查看stu2表的变化情况,为什么插入记录的学号值发生了

改变?

(8)为grade表建立一个名为insert_g_tr 的INSERT触发器,当用户向grade

表中插入记录时,如果插入的是在curriculum表中没有的课程编号,则提示用

户不能插入记录,否则提示记录插入成功。在进行插入测试时,分别输入以下

数据:

学号课程编号分数

18

数据库技术与应用实践教程——SQL Server 2005

0004 0003 76

0005 0007 69

观察插入数据时的运行情况,说明为什么?

(9)为curriculum表创建一个名为del_c_tr的DELETE触发器,该触发器的作用是禁止删除curriculum表中的记录。

(10)为student_info表创建一个名为update_s_tr的UPDATE触发器,该触发器的作用是禁止更新student_info表中的“姓名”字段的内容。

(11)使用Transact-SQL语句DROP TRIGGER删除update_s_tr触发器。

(12)为student_info表建立删除触发器del_s_tr,要求当student_info表的记录被删除后,grade表中相应的记录也能自动删除。

(13)在studentsdb数据库中,执行以下事务处理过程,说明这些事务属于哪一种事务类型(隐性事务、显性事务或自动式事务)。

BEGIN TRANSACTION

INSERT INTO student_info(学号,姓名) V ALUES('0009','李青')

COMMIT TRANSACTION

SET IMPLICIT_TRANSACTIONS ON

GO

INSERT INTO grade(学号,课程编号) V ALUES('0005','0007')

GO

IF ((SELECT count(*) FROM curriculum WHERE 课程编号='0007')=0)

SQLServer数据库试题九及答案

SQL Server数据库试题九及答案 一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:() A.CREAT TABLE B.CREAT CURSOR C.UPDA TE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的()。 A.关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是()。 A.快照复制 B.差异复制 C.事务复制 D.合并复制 4、下列说法错误的是: ()。 A.一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表 C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应 5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。 A.Echo B.Message C.Warn D.MsgBox 6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引 7. SQL Server的字符型系统数据类型主要包括()。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int 8、以下选项中哪一项不是访问数据库系统的接口()。 A.ODBC B.OLE DB C.API D.ADO 9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是() A.* B.% C.- D.? 10、SELECT语句中与HA VING子句同时使用的是()子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15题使用如下数据: 当前盘当前目录下有数据库db_stock,其中有表stock的内容是: 股票代码股票名称单价交易所 600600 青岛啤酒7.48 上海 600601 方正科技15.20 上海 600602 广电电子10.40 上海 600603 兴业房产12.76 上海 600604 二纺机9.96 上海 600605 轻工机械14.59 上海 000001 深发展7.48 深圳 000002 深万科12.50 深圳 11、有如下SQL语句 create view stock_view as select * from stock where 交易所=”深圳” 执行该语句后产生的视图包含的记录个数是() A.1 B.2 C.3 D.4 12、有如下SQL语句

sqlserver2005实验

实验二 使用向导创建和删除数据库 ●实验指导——使用向导创建和删除数据库 (1) 使用向导创建上诉描述的数据库。 使用SQL Server Management Studio(简称SSMS)创建数据库。 1.启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio 单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。

2.建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。 (2)使用向导删除上面建立的数据库。 用SSMS删除添加建立的数据库EDUC1。

实验三 使用SQL语句创建和删除数据库 一. 实验目的: 1、了解SQL Server 2005数据库的逻辑结构和物理结构。 2、掌握使用SQL 语句创建和删除数据库。 二. 实验准备 1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建和删除数据库的基本语法。 三. 实验要求 3、熟练使用查询分析器进行数据库的创建和删除操作 4、完成用sql语句建立和删除数据库的实验报告 四. 实验内容 1.以下是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 , filegrowth=1) 运行上诉语句建立数据库userdb1 2.根据步骤1的sql语句,写出创建实验二中数据库EDUC的sql语句,并建立数据库EDUC. 3.用SQL语句删除步骤一建立的数据库userdb1。

sql server实验指导书(学生版)

数据库实验指导书 信息安全专业 王爽 2009

一.概述 1.SQL Server 2000 组成 SQL Server是可缩放的高性能基于SQL和客户/服务器体系结构的关系数据库管理系统服务器软件包,是由Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。从图1 SQL Server 的体系结构示意图中看出,SQL Server 2000由4部分组成,在实验中,我们要求掌握基于SQL Server 2000的服务器的使用,也就是数据库管理员DBA的主要操作。 (注:本文所有内容均在SQLServer 2000上实现,读者也可在SQL Server 2005 上得到类似结果。) 图1 SQL Server 的体系结构示意图 2. SQL Server 2000 的安装 SQL Server 2000 的常见版本有:企业版、标准版、个人版、开发人员版等。对软硬件的最低需求为:CPU Pentium 166MHz,内存64MB,硬盘180 MB。SQL Server 2000企业版和标准版只能在windows2000 Server 版和Professional 版操作系统下运行。下面介绍SQL Server 2000企业版在本地机上的安装过程。 1)插入SQL Server 2000 光盘,自动安装程序启动,屏幕上出现如图2所示画面,按图2 所示选择SQL Server 2000 组件; 2) 选择安装数据库服务器,如图3所示,进入SQL Server2000 企业版安装向导; 3)在安装向导对话框中点击下一步,进入计算机名对话框; 4)选择本地安装,点击下一步,进入安装选择对话框;

(SQLServer)考试试题及答案

2013年(下)全国信息技术水平考试数据库应用系统设计技术水平证书 (SQL Server)考试试卷 第一大题:单选题(30 分) 1. (1分) 数据模型的三要素不包括()。 (A) 数据结构(B) 数据操作(C) 数据完整性约 束(D) 数据恢复 2. (1分) 数据的存储结构与数据逻辑结构之间的独立性称为数据的 ()。 (A) 结构独立性(B) 物理独立性(C) 逻辑独立 性(D) 分布独立性 3. (1分) 如果对于实体集A中的每一个实体,实体集B中可有多个实体与之联 系;反之,对于实体集B中的每一个实体,实体集A中也可有多个实体与之联系。则称实体集A与B具有()。 (A) 1:1联系(B) 1:n联系(C) n:m联 系(D) 多种联系 4. (1分) 当对关系R和S使用自然联接时,一般要求R和S至少含有一个共同的()。 (A) 元组(B) 关键字(C) 记 录(D) 属性 5. (1分) 若关系模式R(A,B,C,D,E)上的函数依赖集F={AB->C,A->D,A->E},为了满足BCNF,可以将R分解为()。 (A) R1(A,B,C,D) R2(A,E) (B) R1(A,B,C) R2(A,D,E) (C) R1(A,B,C) R2(D,E) (D) R1(A,B) R2(A,C,D,E) 6. (1分) SQL语言查询一次的结果是一个()。 (A) 元组(B) 表(C) 属性(D) 数据

库 7. (1分) 在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,则称函数依赖X→Y为()。 (A) 平凡函数依赖 (B) 部分函数依赖 (C) 完全 函数依赖 (D) 传递函数依赖 8 . (1分) 在Transact-SQL中,下列命令能让程序完全跳出循环的是( )。 (A) CASE (B) WAIT (C) BREAK (D) CONTINU E 9 . (1 分) 在Transact-SQL中,下列选项不属于数值型数据类型的是( )。 (A) NUMERIC (B) DECIMAL (C) INTEGER (D) DATE 10. (1分) 下列选项中,可以正确表达姓“张”的通配符是( )。 (A) 张 _ (B) 张 % (C) 张 ^ (D) 张& 1 1. (1 分) 下列聚合函数中正确的是( )。 (A) SUM (*) (B) MAX (*) (C) COUNT (*) (D) AVG (*) 12. (1 分) 如果某一列的数据类型是FLOAT,则不允许对该列使用的函数是( )。 (A) SUM (B) ABS (C) LEFT (D) ROUND 13 . (1 分 ) 在SQL的SELECT语句中,与投影运算对应的子句是( )。 (A) SELECT (B) FROM (C) WHERE (D) GROU P BY 14. (1 分) 在SQL语言中,给表起别名应使用( )。 (A) AS (B) RENAME (C) SET (D) FOR 15. (1分) 在SELECT语句中使用GROUP BY SNO时,SNO必须() 。 (A) 在WHERE中出现 (B) 在FROM中出现

SQLServer实验三分解

实验七 (1)创建并运行存储过程student_grade,要求实现如下功能:查询studb数据库中每个学生各门课的成绩,其中包括每个学生的sno、sname、cname和score。 create procedure student_grade as select student.sno,student.sname,https://www.doczj.com/doc/fb2174079.html,ame,student_course.score from student join student_course on student.sno=student_course.sno join course on https://www.doczj.com/doc/fb2174079.html,o=student_https://www.doczj.com/doc/fb2174079.html,o 运行结果代码: use Studb go execute student_grade go (2)创建并运行名为proc_exp的存储过程,要求实现如下功能:从student_course表中查询某一学生考试的平均成绩。 create procedure proc_exp @sname varchar(8) as begin select sname,AVG(score) from student join student_course on student.sno=student_course.sno where sname=@sname group by sname end 运行结果代码:

use Studb go execute proc_exp@sname='刘招香' go (3)修改存储过程proc_exp,要求实现如下功能:输入学生学号,根据该学生所选课程的平均成绩给出提示信息,即如果平均成绩在60分以上,显示“成绩合格,成绩为XX分”,否则显示“成绩不合格,成绩为XX分”;然后调用存储过程proc_exp,输入学号0705010131,显示成绩是否合格。 alter procedure proc_exp @student_sno varchar (20) as declare@avg varchar(20) set@avg=(select AVG(score) from student_course where sno=@student_sno) if@avg>=60 print'成绩合格,成绩为'+@avg+'分' else print'成绩不合格,成绩为'+@avg+'分' 运行结果代码: use Studb go declare@student_sno varchar (20) select@student_sno='0705010131' exec proc_exp@student_sno (4)创建名为proc_add的存储过程,要求实现以下功能:向student_course表中添加学生记录;然后调用存储过程proc_add,向student_course表中添加学生成绩记录。create procedure proc_add @sno char(10), @cno char(10), @score tinyint

SQLServer单科测试题(带答案)

选择题(每题2分,共计100分) 1.在SQL Server中,要防止大于100的数被保存到int类型的列,可以使用()。 -------------------------------------- 2.装-------------------------------------- 3. 4.订------------------------------ 5.线---------------------------------------- 6. 7. 8.A.主键约束 B.限制约束 C.外键约束 D.检查约束 在SQL Server中,下面关于数据完整性的描述正确的是()。[选两项] A.如果数据库中没有重复的数据,数据就是完整的 B.维护数据完整性就是保证数据的准确性 C.数据库中数据越详细越符合数据完整性 D.维护数据完整性可以保证数据的一致性,避免出现没有意义的数据 在SQL Server 2005中,有系统数据库和用户数据库,下列不属于系统数据库的是()。

A.master B.model C.msdb D.pubs 在SQL Sever 2005中,假设表users包含主键列id,那么执行”update users set id=20 whereid=30”,执行的结果可能有()。 A.如果表中含有id为30的记录,但不包含id为20的记录,则更新失败 B.执行出错,因为主键列不可以被更新 C.如果表中同时含有id为20和id为30的记录,则更新失败。 D.如果表中不包含id为20和id为30的记录,则更新一行记录 在SQLServer2005数据库中,使用update语句更新数据库表中的数据,以下说法正确的是()。 A.每次只能更新一行数据 B.每次可更新多行数据 C.如果没有数据项被更新,将提示错误消息 D.更新数据时,必须带有WHERE条件句子 关于数据完整性,以下说法正确的是()。[选两项] A.引用完整性通过主键和外键之间的引用关系实现 B.引用完整性通过限制数据类型、检查约束等实现 C.数据完整性是通过数据操纵者自身对数据的控制来实现的 D.如果两个表中存储的信息相互关联,那么只要修改了一个表,另外一个表也要做出相应的修改,则称该这两个表中的数据具备完整性

sqlserver实验报告—数据库和表的创建

评分 签名 日期 数据库实验报告 课程名称信息系统数据库技术 实验名称数据表的管理 专业班级 姓名 学号 实验日期 实验地点 2012—2013学年度第一学期

一、实验目的 1、掌握Microsoft SQL Server 2005 Express Edition的安装过程 2、熟悉SQL Server 2005 Express Edition的基本菜单功能,界面。 3、掌握SQL Server 2005的启动、服务器注册等功能。 二、实验内容 1、数据库的创建 2、数据库的修改 3、数据的导入 4、数据的导出 5、数据库的分离 三、实验环境 Windows XP操作系统,Microsoft SQL Server 2005 Express Edition。 四、相关知识 1、数据库命令规则取决于数据库兼容的级别,而数据库级别可以用存储过程sp_helpdb 来查询。注意:其一由于在T-SQL中,“@”表示局部变量,“@@”表示全局变量,“##”表示全局临时对象,所以不建议用这些符号作为数据库名称的开头;其二虽然在SQL Server 2005中,保留字区分大小写,但也不建议用改过大小写的保留字作为数据库名。 2、数据库文件:每个SQL Server 2005的数据库至少包含二个文件:一个数据文件(.mdf)和一个日志文件(.ldf)。 3、数据库的创建命令:CREATE DATABASE 4、数据库的修改命令:ALTER DATABASE 只有数据库管到员或具有CREATE DATABASE权限的数据库所有者才有权执行ATER DATABASE语句。在实际操作中,ALTER DATABASE一次只能修改一种参数 5、数据库的删除命令:DROP DATABASE 6、数据库的分离命令:SP_DETACH_DB 'filename' 7、数据库的附加命令:CREATE DATABASE…FOR ATTACH 8、数据的导入是指从其他数据源中把数据复制到SQL Server数据库中。 9、数据的导出是指从SQL Server数据库中把数据复制到其他数据源中。 2

SQLServer数据库期末复习试题试卷及答案

现有关系数据库如下: 数据库名:教学数据库(Teacher) 教师信息表(教师编号,姓名,性别,民族,职称,身份证号) 课程信息表(课程号,课程名,标准课时数) 任课信息表(教师编号,课程号,实际课时数) 一、用SQL语言实现下列功能 1.创建数据库。 要求:数据库名为Teacher,主数据文件名为Teacher_data.MDF,存放在C:\目录下,初始值大小为2MB,增长方式为按照10%的比例增长;日志文件名为Teacher_log.LDF,存放在C:\目录下,初始值大小为1MB,增长方式为按照1MB的增量增长。 2.创建教师信息表Teacherinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Teacher_Id char 6 主键教师编号 Teacher_Name nvarchar 8 不允许空姓名 Sex nchar 2 检查(男/女) 性别 Birth_Place nvarchar 20 默认值(汉族) 民族 Zhicheng nvarchar 20 不允许空职称 H_Id char 16 唯一身份证号 3.创建课程信息表Courseinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Course_Id char 5 主键课程号 Course_Name nvarchar 20 不允许空课程名 B_Hours Int 检查(0~200)标准课时数 4.创建任课信息表TCinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Id int 自动编号 Teacher_Id char 6 外键教师编号 Course_Id char 5 外键课程号 S_Hours Int 实际课时数 5.将下列课程信息添加到课程表中: 课号课程名称课时数 30001 SQL Server数据库 90 30002 数据结构 60 30003 VB程序设计 72

实验SqlServer的基本操作

§3.1实验一Sql Server2005的基本操作(2学时) 3.1.1 实验目的 1.熟悉SQL Server2005企业版的安装过程。 2.了解企业管理器的功能,掌握企业管理器的操作方法。 3.掌握数据库服务器的注册、配置、连接等操作。 3.1.2 实验内容和步骤 上机前先阅读本实验的详细内容,简要了解SQL SERVER2005,并完成以下操作: 1. SQL Server2005的安装 参考详细内容进行安装,在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库系统会有什么影响。 2.启动和停止服务 3.启动SQL Server Management Studio 4.查看数据库属性,了解数据文件、事务日志、权限 注意事项: 1.安装时选择混合方式登录; 2.赋予sa密码。

实验一Sql Server2005的基本操作(详解) 一、安装 下面以Windows xp平台为例,介绍如何安装SQL Server 2005个人开发版。 1.根据安装机器软硬件的要求,选择一个合适的版本,以下以开发版为例 2.将SQL Server 2005 DVD 插入DVD驱动器。如果DVD驱动器的自动运行功能无法启动安装程序无法启动安装程序,请导航到DVD的根目录然后启动splash.hta。 3.在自动运行的对话框中,单击“运行SQL Server 安装向导”。 4.在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。接受许可协议后即可激活“下一步”按钮。若要继续,请单击“下一步”若要结束安装程序,请单击“取消”。如下图: 5.在“SQL Server 组件更新”页上,安装程序将安装SQL Server 2005 的必需软件。有关组件要求的详细信息,请单击该页底部的“帮助”按钮。若要开始执行组件更新,请单击“安装”。更新完成之后若要继续,请单击“完成”。

SQLSERVER试题

**学院课程考试试卷 课程名称:《SQLServer:数据库设计和高级查询》(A)卷 年级:班级: 1. 授予用户teacher对Score表的插入和修改的权限,正确的授权语句是()。 A. GRANT INSERT,UPDATE TO TABLE Score ON teacher B. GRANT INSERT AND UPDATE TO TABLE Score ON teacher C. GRANT INSERT,UPDATE ON Score TO teacher D. GRANT INSERT AND UPDATE ON Score TO teacher 2. 建立如下数据库表: CREATE TABLE department ( DeptID int NOT NULL primary key, DeptName varchar (20) NOT NULL ) CREATE TABLE Employee ( EmployeeID int NOT NULL, DeptID int NOT NULL, Name varchar (20) NOT NULL ) 要想保证Employee表中每一个雇员(Employee)是唯一的,且只能属于在Department表中已经存在的部门,最佳的做法是()。 A. EmployeeID 和DeptID 设为组合主键 B. EmployeeID设为主键,同时在DeptID列上创建一个外键约束 C. EmployeeID设为主键,同时在DeptID列上创建一个检查约束 D. 在DepartmentID列上创建一个唯一约束,同时在DeptID列上创建一个外键约束 3. 建立一张员工表(employee),当向表中插入数据时,若不提供入职时间(beginTime),就把系统当前时间自动作为员工入职时间插入数据库中,以下说法正确的是()。 A. 约束中不能使用各种函数,所以只能使用触发器来实现 B. 可以使用CHECK约束实现,默认值采用日期函数getDate() C. 入职时间必须设为日期类型 D. 可以使用DEFAULT 约束实现,默认值采用日期函数getDate() 4. 为了加快对某表的访问速度,应对此表建立()。 A. 约束 B. 存储过程 C. 规则 D. 索引 5. 假设有表student的设计如下: ID(学号) Name(姓名) Address(家庭住址) Department(所在系) DepartmentHead(系主任) 该表最高满足第()范式。 A. 1NF B. 2NF C. 3NF D. 不满足任何范式 6. 为数据库中一个或多个表的数据提供另一种查看方式的逻辑表被称为()。

sqlserver实验报告

SQL Server实验报告 学院: 班级: 姓名: 学号:

实验1 SQL Server 2005 环境 1、目的与要求 (1)掌握SQL Server Management Studio 对象资源管理器的使用方法; (2)掌握SQL Server Management Studio查询分析器的使用方法; (3)对数据库及其对象有一个基本了解。 2、实验准备 (4)了解SQL Server 2005各种版本安装的软、硬件要求;(5)了解SQL Server 2005支持的身份验证模式; (6)对数据库、表及其他数据库对象有一个基本的了解。 3、实验内容 (1)SQL Server 2005 的安装。 检查软、硬件配置是否达到SQL Server 2005的安装要求,熟悉SQL Server 2005的安装方法。 (2)对象资源管理器的使用。 ①进入SQL Server Management Studio。 从“开始”中选择“程序”,再选择“Microsoft SQL Server 2005”单击进入,打开“连接到服务器”窗口,如图所示。 在此窗口中使用系统默认设置连接服务器,单击“连接”,系统显示

“SQL Server Management Studio”窗口。 ②了解系统数据库和数据库的对象。 在SQL Server 2005安装后,系统生成4个数据库:master、model、msdb和tempdb。 在对象资源管理器中右边显示的是4个系统数据库,如图所示。选择系统数据库master,观察SQL Server 2005对象资源管理器中数据库对象的组织方式。其中,表、视图在“数据库”节点下,储存过程、触发器、函数、类型、默认值、规则等在“可编辑性”中,用户、角色、架构等在“安全性”中。 ③试试不同数据库对象的操作方法。 展开系统数据库“master”,选择“”,单击右键。

基于VB及SQLSERVER的管理系统实训指导书

基于VB及SQLSERVER的管理系统 实训指导书 计算机软件技术专业适用 大连职业技术学院 信息技术系 计算机软件技术教研室

实验(训)一连接数据库及调用存储过程(15学时) 一、创建数据库及其表 1.新建个人信息管理系统数据库“Pinformation”。 2.建表Contacts、ContactPhones、Reminders表。 (1) Contacts(联系人表) 字段名字段数据类型主键标识列说明 ContactID Int Yes Yes 联系人编号Name Varchar(50) 联系人姓名 Address Varchar(100) 联系人所在城市 ZipCode Varchar(20) 邮编EmailAddress Varchar(50) 电子邮箱 ContactNote Varchar(50) 备注 (2) ContactPhones(联系人电话表) 字段名字段数据类型主键标识列说明ContactPhoneID Int Yes Yes 联系人电话编号ContactID Int 联系人编号 PhoneType Varchar(50) 电话类型 PhoneNumber Varchar(50) 电话号码 (3) Reminders(提示信息表) 字段名字段数据类型主键标识列说明ReminderID Int Yes Yes 联系人电话编号 AlarmOn Bit 报警标识 AlarmTime datetime 报警时间 ReminderNote Varchar(1000) 提示内容 二、在VB中查看数据库对象 新建工程,在VB界面中,执行“视图” 菜单的“数据视图窗口”菜单项,或者在ADO 控件属性中操作,创建数据库的连接。 1.在图一的属性页中选择“通用”选项 卡,选择“使用连接字符串”,点击“生成” 按钮,弹出图二。 2.在图二中选择“提供者”选项卡,选 择为SQL Server提供的数据驱动,点击“下 一步”按钮,弹出图三。(图一)

实验1SQLServer数据库基本操作

实验1 SQL Server数据库基本操作 一、实验目的 本实验主要了解Microsoft SQL Server 2012中各组件的主要功能和基本使用方法;了解SQL Server数据库的逻辑结构和物理结构;了解数据表的结构特点以及索引的基本概念。通过本实验,读者将学会在“企业管理器”中创建和修改数据库和数据表结构、对数据表进行数据的添加、删除和更新操作以及在数据表上创建字段索引的操作。 二、实验环境 Microsoft SQL Server 2012 SSMS 三、实验内容 1. 创建一个名称为Book的数据库,支持教材订购信息管理,要求: (1)将主数据库文件Book_放置在的D:\DBF文件夹中,文件大小为5MB,最大值为50MB,文件增量为2MB。 (2)将事务日志文件Book_放置在的D:\DBF文件夹中,文件大小为5MB,最大值为100MB,文件增量为1MB。 【实验步骤】 1)在D:\下创建DBF文件夹。 2)在SSMS中的对象资源管理器窗口右单击“数据库”,从快捷菜单中选择“新建数据库”命令,出现“数据库属性”对话框。 3)在“数据库属性”对话框中选择“常规”选项卡,在名称文本框中输入:Book; 4)在“数据库属性”对话框中选择“数据文件”选项卡,设置数据文件的位置、大小、

最大值和文件增量等属性; 5)在“数据库属性”对话框中选择“事务日志”选项卡,设置事务日志文件的位置、大小、最大值和文件增量等属性。 6)点击“确定”按钮,建立“Book”数据库,如下图所示: 2. 在上题所建数据库Book中建立5张数据表结构。 字段名称字段说明类型定义属性限定索引外键AcadCode 学院代码Char(2) Primary Key √ AcadName 学院名称Varchar (50) Not Null

SQLSERVER数据库实验

SQL SERVER 数据库应用技术 实验报告 选课序号: 班级: 学号: 姓名: 指导教师: 成绩:

目录 1.实验目的 (1) 2.实验内容 (1) 2.1创建数据库OrderDB(杂志订购数据库) (1) 2.2 T-SQL查询 (1) 2.3存储过程、自定义函数和触发器编程 (2) 3.实验步骤 (2) 3.1创建数据库OrderDB(杂志订购数据库) (2) 3.2 T-SQL查询 (5) 3.3存储过程、自定义函数和触发器编程 (5) 4.总结与体会 (8)

1.实验目的 (1)创建与使用数据库。了解数据库及其各类逻辑对象、数据库的文件与文件组的概念;实践数据库的设计、创建、查看和维护等的操作,。 (2)T-SQL查询。掌握SELECT查询命令,INSERT、UPDATE和DELETE等更新命令,及T-SQL对查询与更新命令的增强功能操作。 (3)自定义函数、存储过程与触发器。实践练习自定义函数、存储过程和触发器的使用方法。 2.实验内容 2.1创建数据库OrderDB(杂志订购数据库) 以下各表中的代码或编号列为char(6),名称或类别列为varchar(20),单价或金额列为numeric(10,2),数量列为int,订购日期为日期类型datetime,所在城市列为varchar(16)。(1)杂志表Magazine(杂志代码Mno,杂志名称Mname,杂志类别Mtype,出版商所在城市Mcity,进货单价Miprice,订购单价Moprice),其中,订购价格>进货价格,杂志类别:文学类、历史类、科技类。主键为(杂志代码Mno)。 (2)客户(杂志的订购单位信息)表Customer(客户代码Cno,客户名称Cname,客户所在城市Ccity,上级主管单位代码Sno,客户类别Ctype),客户(单位)类别:政府单位、事业单位、企业单位。主键为(客户代码Cno)。 (3)杂志订购情况主表OrderH(订单编号Ono,客户代码Cno,订购日期Odate,订单货款金额合计OMsum,订单盈利金额合计OPsum),主键为订单编号Ono。 (4)杂志订购情况明细表OrderList(订单编号Ono,杂志代码Mno,订购数量Onum,进货单价Miprice,订购单价Moprice,订购金额Omoney,盈利金额Oprofit),主键为(订单编号Ono,杂志代码Mno),订购金额=订购单价×订购数量,盈利金额=(订购单价-进货单价)×订购数量。 2.2 T-SQL查询 实现如下查询功能前,请向所有数据表添加足够多的演示数据。求年份的函数为year( ),返回类型为int,年份=year(订购日期Odate)。 (1)使用WITH公用表表达式查看客户名称为’珠江航运公司’在广州市的所有上级主管单

SQLServer2005考试试题

SQL Server 2005 考试试题 一单项选择(25分) 1 实体完整性要求属性不能取空值,这一点通常通过(C )B A 定义外键来保证 B 定义主键来保证 C 用户定义完整性来保证 D 关系系统自动保证 2 在概念设计阶段可用E-R图,其中矩形表示实体,(D )表示实体联系 A 圆形框 B 椭圆形框 C 箭头 D 菱形框 3 通过使用文件组,可以()。 A 提高存取数据的效率。B提高数据库备份与恢复的效率 C 简化数据库的维护 D ABC都可以。 4 下列四项中不属于数据库特点的是(C ) A 数据共享 B 数据完整性 C 数据冗余高 D 数据独立性高 5 不同实体间可以有(B )A A 只有一种联系 B 可以有多种联系 C 不能有联系 D 只有多对多联系 6 建立在计算机外部设备上的结构化的有联系的数据集合是(B )A A 数据库 B 数据库管理系统 C 数据结构 D 数据文件 7 实体间存在多种联系,下面那种数据模型可以描述实体间多对多的联系(B )C A 层次模型 B 网状模型 C 关系模型 D 对象模型 8 (C )是位于用户和操作系统之间的一层数据管理软件。数据库在建立,使用和维护时由其统一管理,统一控制。A A DBMS(数据库管理系统) B DB(数据库) C DBS(数据库系统) D DBA(数据库管理员) 9 SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示(C ) A 零个字符 B 1个字符串 C 多个字符串 D 以上都是 10 英文缩写DBA代表(B ) A 数据库管理系统 B 数据库管理员 C 数据定义语言 D 数据库操纵语言 11 以下不是SQL数据定义语言的是(C ) A CREATE B DROP C DELECT D ALTER 12 学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授

实验一《SQLServer环境》

《数据库原理》实验指导 实验1 SQL Server 2008环境 一、实验目的 SQL Server 2008是Mircosoft公司推出的关系型网络数据库管理系统,是一个逐步成长起来的大型数据库管理系统。 1、了解SQL Server 2008的安装过程中的关键问题; 2、掌握通过SQL Server Management Studio管理数据库服务器、操作数据库对象的方法;熟悉如何在SQL Server 2008图形环境下建立数据库和表,建立多个表的关系图及设置主码和外码,并在表中实现对记录的插入、修改和删除操作; 3、掌握数据库的还原与备份操作。 二、实验内容 2、启动SQL server服务 启动SQL Server 2008,选择开始菜单中的Microsoft SQL Server 2008下的“SQL Server配置管理器”,启动SQL Server服务,如图1-20、1-21所示。 图1-20

图1-21 3、建立数据库 选择开始菜单中的Microsoft SQL Server 2008下的SQL Server Management Studio,出现“连接到服务器”界面。如图1-22所示,如果以SQL Server身份登录,输入密码,点击“连接”按钮,进入SQL Server Management Studio主界面,如图1-23所示。 图1-22

图1-23 点击左边“对象资源管理器”树状控制栏的+/-号可以打开和关闭SQL Server组中的本地服务项目,在选中“数据库”后,单击鼠标右键,出现数据库的菜单,如图1-24所示。 图1-24 点击“新建数据库”,出现新建数据库窗口,如图1-25所示。输入数据库名称:Student,点击“确定”按钮。

SQLServer数据库试题九及答案.doc

SQL Server 数据库试题九及答案 一、选择题 (每题 2 分,共 30 分 ) 1、下面不属于数据定义功能的SQL 语句是:() A.CREAT TABLE B.CREAT CURSOR C.UPDA TE D.ALTER TABLE 2、 SQL 数据库中的视图与下列哪项是对应的()。 A. 关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是()。 A. 快照复制 B.差异复制 C.事务复制 D. 合并复制 4、下列说法错误的是 : ()。 A. 一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表 C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应 5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。 A . Echo B .Message C. Warn D . MsgBox 6、在 SQL Server 2000 中,索引的顺序和数据表的物理顺序相同的索引是()。 A. 聚集索引 B.非聚集索引 C.主键索引 D. 唯一索引 7. SQL Server 的字符型系统数据类型主要包括()。 A.Int 、 money、 char B. char、 varchar、 text C. datetime、 binary 、 int D. char 、 varchar、 int 8、以下选项中哪一项不是访问数据库系统的接口()。 A.ODBC B.OLE DB C.API D.ADO 9、在 SELECT 语句的 WHERE 子句的条件表达式中,可以匹配0 个到多个字符的通配符是() A.* B.% C.- D.? 10、 SELECT 语句中与HAVING 子句同时使用的是()子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15 题使用如下数据: 当前盘当前目录下有数据库db_stock, 其中有表stock 的内容是 : 股票代码股票名称单价交易所 600600 青岛啤酒7.48 上海 600601 方正科技15.20 上海 600602 广电电子10.40 上海 600603 兴业房产12.76 上海 600604 二纺机 9.96 上海 600605 轻工机械14.59 上海 000001 深发展 7.48 深圳 000002 深万科 12.50 深圳 11、有如下SQL 语句 create view stock_view as select * from stock where 交易所 =”深圳” 执行该语句后产生的视图包含的记录个数是() A.1 B.2 C.3 D.4 12、有如下SQL 语句

SqlServer实验报告一

河南工业大学实验报告 课程空间数据库实验名称实验一认识RDBMS SQL Server 系别信息学院地理信息系实验报告日期 2017-11-06 专业班级姓名学号 教师审批签字 一.实验目的 1.通过对某个商用DBMS的安装使用,初步了解DBMS的工作环境和系统架构。 2.熟悉熟悉SQL Server Management Studio(SSMS)的工作环境 3.掌握利用SSMS器建立数据库和基本表并录入数据 二.实验内容及要求 1.从网上下载SQLServer2014 Express相关软件(SQLServer2008版也可以),根据说 明安装数进行安装。 2.运行SQLServer,重点了解SQLServer2014的各项功能。 3.在SSMS中创建个人数据库(注:命名规则XXX_DB,XXX为姓名缩写),并观察 创建的步骤及选项。 4.在个人数据库内创建student表(参照课本41页),并手工录入5条纪录 三.实验结果 1.下载软件并安装: 进入微软官网,搜索SQLserver2016,下载简体中文版本。下载完成后启动:

进入安装界面,点击全新SQL server独立安装或向现有安装添加功能: 选择Express版本进行安装,同意许可,进行安装规则检查: 图3 进行安装规则检查

根据自己的需求选择启用安装的功能: 图4 功能选择及实例目录 采用混合模式(SQLserver身份验证和Windows身份验证),为系统管理员sa创建密码,并指定SQLserver管理员: 图5 数据库引擎配置

配置好相关功能以及路径,准备进入安装: 图6 准备安装 2.安装SQL Server Management Studio,运行SSMS(本实验个人电脑上安装的是 SQLserver2016,学校实验室安装的为SQLserver2008): 图7 SSMS连接数据库引擎

sqlserver实验

附件 D1: 实验讲义及指导书

前言 随着信息技术的迅速发展和广泛应用,数据库作为后台支持已成为信息管理中不可缺少的重要组成部分。SQL Server2000则是一个杰出的数据库平台、能够满足各种类型的构建网络数据库的需求,具有功能强大、安全可靠等特点,因此得到广泛应用。 我们根据多年实践教学经验,结合学生实际情况,编写了与教程配套的实验指导。适合河北软件职业技术学院所有高职高专的学生。根据教学特点,共分了十三个实验,每个实验包括“实验目的和要求”、“实验内容和步骤”和“分析和讨论”三项内容。“实验目的和要求”中指出了对内容的掌握程度及应达到的目标;“实验内容和步骤”中给出了具体的实验内容,详细的题解步骤引导学生学习和掌握内容;“分析和讨论”中进一步提出问题,对常见问题进行分析总结,更好的巩固所学知识。

第一部分上机实践 实验一 SQL Server 2000系统的安装及配置 一、实验目的和要求 1)熟练掌握SQL Server 2000系统的安装过程。 2)掌握SQL Server2000相关服务的启动、退出。 3)掌握企业管理器和查询分析器的使用。 4)掌握创建服务器组和注册服务器。 二、实验内容和步骤 1)安装SQL Server 2000系统。 2)分别使用SQL Server服务管理器和控制面板启动MS SQL Server服务。 3)练习企业管理器使用。 4)在企业管理器下创建一个服务器组group1,在此组下注册一个服务器。查看有哪些数据库及数据库中有哪些数据对象。 5)练习查询分析器的使用,在查询分析器中输入如下SQL语句,查看结果。 USE PUBS GO SELECT * FROM Authors GO 三、分析与讨论 1)了解安装Microsoft SQL Server2000的硬件要求、软件环境。 2)了解Microsoft SQL Server2000的不同版本。

相关主题
文本预览
相关文档 最新文档