当前位置:文档之家› 实验七创建和操作数据库对象

实验七创建和操作数据库对象

实验七创建和操作数据库对象
实验七创建和操作数据库对象

实验报告

课程:数据库原理与实用技术实验

实验7 创建和操作数据库对象

实验7-1 存储过程

1、使用不带参数的存储过程

(1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系

create proc my_proc as select学号,姓名,性别,年龄,所在院系from学生表

where所在院系='计算机'and性别='女'

(2)执行存储过程

(3)修改存储过程,使其能够查询计算机系女生的所有基本信息

alter proc my_proc as select*from学生表

where所在院系='计算机'and性别='女'

2、带输入参数的存储过程

(1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系

create proc my_procsex @sex char(2) as

select学号,姓名,性别,年龄,所在院系from学生表where性别=@sex

(2)执行存储过程

exec my_procsex @sex='男'

3、带输入/输出参数的存储过程

(1)创建一个存储过程my_procage,使其能够根据学生姓名,查询学生年龄。(考虑当学生不存在时给出提示信息)

create proc my_procage @name char(10),@age int OUTPUT as

if not exists(select*from学生表where姓名=@name) return-155

select年龄from学生表where姓名=@name

(2)执行存储过程

declare @once_age int, @status int

exec @status=my_procage @name='陈忠刚',

@age=@once_age output

if @status=-155

print'对不起,您输入的名字查找失败!'

print'the output data is:'+convert(varchar(10),@once_age)

declare @once_age int, @status int

exec @status=my_procage @name='李涛',

@age=@once_age output

if @status=-155

print'对不起,您输入的名字查找失败!'

print'the output data is:'+convert(varchar(10),@once_age)

4、返回状态值的存储过程

(1)创建一个存储过程my_procstatus,使其能够根据学生姓名,查询学生的选课信息。(如果没有输入学生姓名,返回状态码55;如果输入的学生姓名不存在,则返回状态码-155)alter proc my_procstatus @name char(10)as if @name =''

return 55

else if not exists(select*from学生表where姓名=@name)

return-155

select学号,课程号from成绩表where学号in(select学号from学生表where姓名=@name)(2)执行存储过程:接收存储过程返回的状态码,如果返回的状态码为55则输出提示信息“没有输入名字!!”;如果返回的状态码为-155,则输出“没找到!!”。

declare @status int

exec @status=my_procstatus @name=’’

if @status=55

print=’没有输入名字!’

else if @status=-155

print’没有找到!’

declare @status int

exec @status=my_procstatus @name=’陈忠刚’

if @status=55

print=’没有输入名字!’

else if @status=-155

print’没有找到!’

(3)删除存储过程

5、在存储过程中使用临时表,不指定题目,请理解全局临时表与局部临时表的区别

1、局部临时表(#开头)只对当前连接有效,当前连接断开时自动删除。

2、全局临时表(##开头)对其它连接也有效,在当前连接和其他访问过它的连接都断

开时自动删除。

3、不管局部临时表还是全局临时表,只要连接有访问权限,都可以用drop table

#Tmp(或者drop table ##Tmp)来显式删除临时表

6、使用存储过程对规则进行绑定与解除绑定操作

(1)修改“学生管理数据库”中的“学生情况表”,添加属性“入学日期”。将规则

Enter_University_date_rule与入学日期进行绑定

查看执行结果

(3)解除绑定,再次插入该数据,查看执行结果。

7、使用存储过程对默认进行绑定与解除绑定操作

(1)将默认对象“Time_default”和“Age_default”与上表中的“入学日期”和“年

查看执行结果

(2)解除绑定,再次插入该数据,查看执行结果。

实验7-2 视图的创建与使用

1.创建一个名为stud_view1的视图,从“学生管理数据库”的学生表中查询出性别为男的所有学生的学号,姓名,性别,班级,家庭住址,入学时间和出生年月。

create view stud_view1 as select学号,姓名,性别,班级,入学日期from学生where性别='男'

2.创建一个名为stud_view2的视图,查询出选修了《高等数学》的所有同学的选课信息,包括学号,姓名,成绩。

create view stud_view2 as select学生表.学号,学生表.姓名,成绩表.成绩

from成绩表join学生表on成绩表.学号=学生表.学号

where课程号in(select课程号from课程表where课程名='高等数学')

3.从视图stud_view1中查询出软件2班肖一竹的资料。

4.向视图stud_view2中插入一行数据:学号为9940210,姓名为钱丽,成绩为71,结果是什么

5.修改视图stud_view1,将9940201号同学的性别更改为女。然后再次查询学生表和视图stud_view1,看结果有何改变,为什么

结果便是变为了显示从“学生管理数据库”的学生表中查询出性别为女的所有学生的学号,姓名,性别,班级入学日期。应为建立视图的时候,from后面只跟了一张表,所以可以对视图进行更新。

6. 完成教科书457页如下习题:

[]a:三条SQL语句都不合法,因为它们的创建视图语句中的from后面都跟了多张表,所以创建的视图不是可更新视图。

[]b:create view agentview as select*from agents

where [percent]<=10 and [percent]>=0 with check option

[]c:

[]d:create view vproducts as select pid,pname,city,quantity from products;

[]:违反了规则5,不能够含有salary1+salary2这种列,这样的话,如果我们对视图进行更新以后就无法使原始表进行同步的更新,因为知道salary1+salary2的值,无法知道salary1与salary2人别的值。

[]:

[]a:

[]b:

update returns set discant=10 where cid='c001'

[]c:

[]d:create view profits as

select ordno,cid,aid,pid,*qty*price-([percent]/100)*(discnt/100)**qty*price as profits

from returns

数据库原理上机实验指导

数据库原理上机实验指导 一、实验目的和要求 1.实验目的 力图通过本实践课程的学习,使学生掌握数据库管理系统的基本概念、操作方法和管理方法,能够根据用户应用需求设计出合理的数据库应用系统逻辑模型方案,并且实现之。 2.实验要求 本实践课程主要介绍Microsoft SQL Server 2000系统的基本概念、基本知识;讲述数据库管理系统的安装、操作、设计、管理等基本概念及其操作方法;学习如何创建和管理数据库系统的步骤,为承担DBA角色作好准备。重点要求掌握Transact-SQL语言,学会数据库应用系统逻辑模型的设计和实现。 要求学生实验前认真准备,实验后提供实验报告,给出详细实验结果以及设计依据。 实验报告的格式应采用统一封面,统一的实验报告纸。封面应包括:课程名称、实验序号、名称、专业、班级、姓名、同组实验者、实验时间。实验报告内容应包括:实验名称、目的、内容、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。 二、实验环境介绍 1.硬件设备要求 微型计算机,最好具有局域网环境 2.软件设备要求 Windows 2000或Windows XP操作系统; MS SQL Server 2000数据库管理系统。 三、实验内容和学时分配 1.实验内容 实验1:服务器管理 实验2:创建和管理数据库 实验3:Transact-SQL语言——数据查询 实验4:Transact-SQL语言——数据定义与数据更新 实验5:数据库安全与保护——用户管理和权限管理 实验6:数据库安全与保护——数据完整性 实验7:数据库安全与保护——数据库的一致性和并发性 实验8:数据库安全与保护——数据库的备份与恢复 实验9:存储过程和触发器 实验10:嵌入式SQL的使用

数据库原理实验报告

数据库原理 实验报告 系别电子信息系 专业计算机科学与技术班级学号4080522 姓名龚敏 指导教师李爱英

一.概要设计 1.教学数据库各表的关系模式:(加下线的属性为主键) 学生 (学号,姓名,性别, 出生日期,所在系) 英文缩写对照:student(s_no,s_name,s_sex,s_age,s_birthday,s_department) 课程 (课程号,课程名,学分) 英文缩写对照:course(c_no,c_name,c_score) 教师 (职工号,姓名,性别,职称) 英文缩写对照:teacher(t_no,t_name,t_sex,t_duty) 选课 (学号,课程号,成绩) 英文缩写对照:choice(s_no,c_no,score) 讲授 (职工号,课程号) 英文缩写对照:teaching(t_no,c_no) 2.教学数据库E-R 图: 实体:课程,学生,选课 联系:选课(学生同课程之间多对多的联系m:n),讲授(教师同课程之间多对多的联系m:n)。 二.逻辑设计 代码: use master go create database stu go use stu go n m m n 课程 教师 讲授 选课 学号 姓名 性别 出生日期 成绩 职工号 姓名 性别 职称 学分 课程号 课程名 学生

create table student (s_no char(8) not null primary key, s_name char(8) not null , s_sex varchar(8) not null, s_birthday smalldatetime not null, s_department varchar(13) not null) drop table student use stu go create table teacher (t_no char(8) not null primary key, t_name char(8) not null, t_sex varchar(8) not null, t_duty char(8) not null) create table course (c_no char(8) not null primary key, c_name char(8) not null, c_score varchar not null) create table choice( s_no char(8) not null primary key, c_no char(8) not null primary key, score varchar not null) create table teaching( t_no char(8) not null primary key, c_no char(8) not null primary key) insert student values('101','袁敏','女','1982-2-3','机电') insert student values('102','李志强','男','1983-4-5','计算机') insert student values('103','张亮','男','1984-10-9','建筑') insert student values('104','李平','女','1984-5-6','计算机') insert student values('105','王丽','女','1983-2-1','机电') insert student values('106','刘明耀','男','1982-4-16','计算机') select* from student insert course values('1011','C语言','6') insert course values('1012','数据结构','4') insert course values('1013','微机原理','6') insert course values('1014','数字电路','5') insert course values('1015','高等数学','6') select* from course insert teacher values('0511','张大维','男','副教授') insert teacher values('0512','林楠','女','讲师') insert teacher values('0513','韩晓颖','女','副教授') insert teacher values('0514','李辉','男','讲师') insert teacher values('0515','孙丽','女','助教') select* from teacher insert choice values('101','1011','82.5') insert choice values('101','1012','79') insert choice values('102','1012','92.5') insert choice

数据库原理实验报告

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验一SQL Server 2005常用服务与实用工具实验 所在院(系):数学与信息技术学院 班级:14软工5班 学号:14551204 14551206 姓名:花元凯罗文波 1.实验目的 (1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。 (2)了解SQL Server 2005的主要组件、常用服务和系统配置。 (3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。 2.实验要求 (1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。 (2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。 (3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获得 所感兴趣的相关产品主题/技术文档。

(4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL查 询语句。 (5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。 (6)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 (1) 简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能(BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。目前最新版本是SQL SERVER 2014。 1,SQL Server 2005学习版当保护和管理应用系统内外部的信息变得至关重要时,通过提供一套免费、易于使用和健壮的数据库,学习版帮助开发人员建立强健的和可靠的应用系统。

数据库原理实验报告分析

2013级数据库原理实验报告 专业:_______计算机___ 班级:________________ 学号:______________ 姓名:_______________ 2015年5月

实验一 SQL Server 2005基本操作 一、实验目的 了解SQL Server 2005组件; 了解SQL Server数据库组成; 掌握SQL Server 2005界面基本操作。 二、实验内容 (1)开始->程序->Microsoft SQL Server 2005-> SQL Server Management Studio,打开后进入到SQL Server 2005主体界面 (2)点击?数据库?前面的?+?,可以展开查看数据库,并且可以继续展开下级目录,查看数据库中的表、视图等。 (3)了解SQL Server 2005菜单栏的一些主要工具的使用。 (4)学生动手操作SQL Server 2005,打开数据库,打开表,打开查询界面;查看数据库的属性、表的属性等。 三、实验总结 进行这次实验有遇到什么问题?怎么解决的? 答:此次实验我们一步一步按照实验内容操作的,基本上没有遇到问题。

实验二数据定义 一、实验目的 掌握SQL Server 2005的数据库创建; 掌握SQL Server数据定义语言; 掌握SQL Server 2005数据定义的SQL语言定义与管理器定义两种方式。 二、实验内容 (1)创建、修改、删除数据库。 创建要求:数据库Employee中包含一个数据库文件Empdat1.mdf和一个日志文件Emplog.ldf。其中,数据文件大小为10MB,最大为50MB,以5MB速度增长;日志文件大小为5MB,最大为25MB,以5%速度增长。 修改要求:增加第二个数据库文件Empdat2.ndf,其中,数据文件大小为5MB,最 大为25MB,以2MB速度增长。 (2)利用SQL创建人员表person、月薪表salary及部门表dept。 见上页图 要求:按表2-1、表2-2及表2-3中的字段说明创建。

《数据库原理》实验7

实验七:数据库的安全性 一、实验目的 1.掌握Windows NT认证模式下数据库用户帐号的建立与取消方法; 2.掌握混合模式下数据库用户帐号的建立与取消方法; 3.掌握数据库用户权限的设置方法; 4.熟悉数据库数据库用户帐号的权限分配、回收等方法; 5.了解数据库角色的分类、作用及使用方法。 二、实验环境 已安装SQL Server 2005 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SQL Server 2005系统安全; 2.熟悉数据库用户、服务器角色及数据库角色的用法; 3.完成实验报告; 五、实验内容及步骤 以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现以下操作,并独立写出部分题目的程序代码; 1.在当前计算机中增加一个用户zhang和cheng,密码为secret。使此用户通 过winows nt模式下登录SQL Server服务器,登录名分别为zhang和cheng; 2.新建以混合模式登录SQL Server服务器的用户登录名为stu1、stu2和stu3, 登录密码为secret,默认登录数据库为stu; 3.将帐号zhang添加为数据库stu的用户,用户名为zhang; 4.在数据库stu中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2 和stu3; 5.给数据库用户zhang赋予创建数据库的权限; 6.给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限; 7.给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查 询sc的操作权限,并允许再授权给其他用户; 8.收回数据库用户stu2对student表和course表的删除操作的权限; 9.若一个小组共5个成员,他们对数据库stu具有相同的操作权限,具体权限 如下: 1)对于student、course表只能进行数据查询;

《数据库原理》实验讲义

《数据库原理》实验讲义 SQL Server版 龚安 中国石油大学(华东)计算机科学系 2011年12月

目录 实验一文件管理 (1) 实验二DBMS软件的安装、卸载及认识 (3) 实验三SQL练习1 (35) 实验四SQL练习2 (41) 实验五SQL练习3 (44) 实验六其它数据库对象的管理 (47) 实验七安全机制 (50) 实验八数据库应用编程 (61)

实验一文件管理 一、实验目的 1.了解数据管理技术之文件系统管理数据的特点; 2.掌握应用程序存取数据文件的方法; 3.通过实际体会与比较,为后面感受数据库系统管理数据的优点做准备。 二、实验学时 2学时 三、实验内容 设有一个学生-课程数据库,包括学生表student,课程表course 和选修表sc,如下表所示:

用C或C++语言编写应用程序,建立3个数据文件分别保存学生信息、课程信息和选修信息,并且完成以下任务: 1.编写数据插入功能模块,将以上各个数据表的数据分别插入到对应的数据文件中,并显示输出各个数据表的数据信息; 2.编写数据修改功能模块,将所有学生的年龄增加1岁,并显示输出所有学生的信息; 3.编写数据删除功能模块,删除学号为95004的学生记录,并显示输出所有学生的信息。 4.编写数据查询功能模块,查询选修了课程名为“信息系统”的学生学号和姓名。 四、实验报告 提交源程序(加必要的注释)和数据文件,并将程序的每个任务的输出结果附上。

实验二DBMS软件的安装、卸载及认识一、实验目的 1.了解SQL Server 2005的安装环境配置; 2.掌握SQL Server 2005的安装方法与过程; 3.掌握SQL Server 2005的卸载方法与过程; 4.了解SQL Server 2005的系统数据库、系统表及系统存储过程; 5.掌握SQL Server 2005的SQL Server管理控制台、SQL Server 配置管理器的使用。 二、实验学时 2学时 三、实验准备 1.SQL Server 2005安装环境的配置 在安装SQL Server2005前,需做好两项准备工作: ?保证计算机的硬软件环境能满足SQL Server 2005的需要。 ?依据所需的用途和计算机的软硬件环境选择合适的版本和部件。 (1) SQL Server 2005的版本 ①企业版(Enterprise Edition) 企业版分为支持32位和支持64位两个版本。企业版达到支持超大型企业进行联机事务处理(OLTP)、高度复杂的数据分析、数据仓库系统和网站所需的性能水平。其全面商业智能和分析能力,以及高可用性功能,使它可以处理大多数关键业务的企业工作负荷。企业版是最全面的SQL Server 版本,适用于超大型企业,能够满足最复杂的要求。 ②标准版(Standard Edition) 标准版分为支持32位和支持64位两个版本。这是适用于中小型企业的数据管理和分析平台。其包括电子商务、数据仓库和业务流解决方案所

《数据库原理》实验6

实验六:数据库综合查询 一、实验目的 1.掌握SELECT语句的基本语法和查询条件表示方法; 2.掌握查询条件种类和表示方法; 3.掌握连接查询的表示及使用; 4.掌握嵌套查询的表示及使用; 5.了解集合查询的表示及使用。 二、实验环境 已安装SQL Server 2000 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SELECT语句的基本语法格式和执行方法; 2.了解连接查询的表示及使用; 3.了解嵌套查询的表示及使用; 4.了解集合查询的表示及使用; 5.完成实验报告; 五、实验内容及步骤 以数据库原理实验5数据为基础,请使用T-SQL 语句实现进行以下操作: 1.查询以‘DB_’开头,且倒数第3个字符为‘s’的课程的详细情况; 2.查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名; 3.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修 课程号及成绩; 4.查询缺少成绩的所有学生的详细情况; 5.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息; 6.查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成 绩; 7.按照?学号,姓名,所在院系,已修学分?的顺序列出学生学分的获得情况。 其中已修学分为考试已经及格的课程学分之和; 8.列出只选修一门课程的学生的学号、姓名、院系及成绩; 9.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号; 10.只选修?数据库?和?数据结构?两门课程的学生的基本信息;

11.至少选修?数据库?或?数据结构?课程的学生的基本信息; 12.列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩; 13.查询只被一名学生选修的课程的课程号、课程名; 14.检索所学课程包含学生‘张向东’所学课程的学生学号、姓名; 15.使用嵌套查询列出选修了?数据结构?课程的学生学号和姓名; 16.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和 院系; 17.使用ANY、ALL 查询,列出其他院系中比CS系所有学生年龄小的学生; 18.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息; 19.使用集合查询列出CS系的学生以及性别为女的学生名单; 20.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集; 21.使用集合查询列出选修课程1的学生集合与选修课程2的学生集合的交集; 22.思考题:按照课程名顺序显示各个学生选修的课程(如200515001 数据库数 据结构数学); 六、出现问题及解决办法 如:某些查询操作无法执行,如何解决?

《数据库原理与应用》实验报告书修改版(1)答案

《数据库原理与应用》 实验报告书 (2011—2012学年第二学期) 班级: 学号: 姓名: 教师:郑先容 医药信息工程学院·数据决策 2012年2月

目录 实验一利用ACCESS创建数据库及熟悉SQL Server开发环境 (2) 实验三数据库、表的创建 (6) 实验五连接查询和嵌套查询 (12) 实验七数据的插入、修改、删除 (18) 实验九SQL Server数据库的安全性控制 (21) 实验十一熟悉Power Designer数据库设计软件 (24) 实验十三Transact-SQL编程 (27) 实验十五存储过程的使用 (30) 第十章数据库的恢复技术作业 (33)

实验一利用ACCESS创建数据库及熟悉SQL Server开发环境 一、实验目的 1、熟知机房用机安全规则和实验报告的书写。 2、掌握SQL Server 2005的安装,卸载以及相关服务的启动、退出。 3、熟悉SQL Server Management Studio环境。 4、掌握创建服务器组合注册服务器。 5、初步了解数据库的概念; 6、初步了解SQL Server联机丛书的使用。 7、用ACCESS创建数据库,体会数据库的功能。 注意:每次实验的指导视频,上课所需要的软件、数据库还有ppt。都可以在ftp://10.81.40.222的“数 据决策”->“数据库”->“2011-2012(2)”文件夹下找到,以后每次实验相关的文件和数据库,老师上课的课 件,sql2005安装环境,都可以在这个ftp上寻找。 二、实验内容 1、上网搜索能够正常安装的SQL Server2005的软件。或者在ftp上下载,有条件的同学,课后可在个人电脑上安装SQL Server2005,建议XP操作系统安装个人版,Server操作系统安装企业版。SQL Server2005的安装说明见《SQL Server 2005精简版的安装》或上网搜索相应电子教程。安装过程请参看实验指导或者相关视频。 2、观看视频“数据库概念.swf”,了解数据库的相关概念。 3、参看实验指导或者视频“使用SQL Server Management Studio.swf”,通过实践初步了解使用SQL Server Management的使用。 4、观看视频“SQL Server联机丛书.swf”,了解如何通过系统本身来学习使用SQL Server。 请根据联机丛书查询如何“创建数据库”,查询内容包括创建数据库前的准备工作,创建数据库的命令,以及数据库文件的组成。请把你的结果写在下面。

数据库原理实验一

电子信息工程学系实验报告 课程名称: 《数据库原理》 实验项目名称:表的创建和管理 实验时间: 班级: 姓名: 学号: 实 验 目 的: (1)了解SQL Server 的基本数据类型。 (2)学会在企业管理器中创建数据库及表。 (3)学会使用T-SQL 语句创建数据库及表。 (4)学会在企业管理器中修改表的定义。 (5)学会使用SQL 语句修改表的定义 实 验 环 境: winXP +Sql server 2000 实 验 内 容 及 过 程: (1)用企业管理器,建立的数据库SCHOOL ,建立如书本75页的P,S,J,SPJ 四张表,并添加数据。 (2)用企业管理器删除所建立的SPJ 和J 两张表。 (3)在查询分析器中用sql 语句删除表S 和表P,S ,删除数据库SPJ 。 (4)在查询分析器中用sql 语句创建数据库SPJ ,用SQL 语句创建各书本75页的P,S,J,SPJ 四张表,用insert 命令分别向四张表里面添加如75页所示的数据。 (5)将以上用到的SQL 命令以 “实验一.SQL ”文件的形式保存。 (6)用企业管理器备份数据库SPJ 到备份文件SPJ.bak 。 实 验 结 果 及 分 析: (1)

(2) (3) DROP TABLE P; DROP TABLE S; DROP DA TABASE SPJ; (5)

实验心得: 附录: CREATE DATABASE SPJ ON ( NAME=pSPJ, FILENAME='H:\SQL\MSSQLDATA\mydb.mdf',SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1 MB ) LOG ON ( NAME=logSPJ, FILENAME='H:\SQL\MSSQLDATA\mydb.ldf',SIZE=100MB,MAXSIZE=1000MB,FILEGROWTH= 10MB ) go use SPJ CREATE TABLE S( Sno CHAR(2) NOT NULL, --供应商代码不能为空 Sname V ARCHAR(20), Status int , City V ARCHAR(20) , CONSTRAINT S_pk PRIMARY KEY(Sno) --应商代码为主键 ); CREATE TABLE P( Pno CHAR(2) NOT NULL, --零件代码不能为空

数据库原理实验报告(2)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验二数据库的创建、管理、备份及还原实验 所在院(系):信息工程学院 班级: 学号: 姓名:

1.实验目的 (1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改 数据库的基本方法; (2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。 (3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方 法。 2.实验要求 (1)使用SQL Server Management Studio创建“教学管理”数据库。 (2)使用SQL Server Management Studio修改和删除“教学管理”数据库。 (3)使用Transact-SQL语句创建“教学管理”数据库。 (4)使用Transact-SQL语句修改和删除“教学管理”数据库。 (5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server Management Studio对数据库“教学管理”进行备份和还原。 (6)SQL Server 2005数据库文件的分离与附加。 (7)按要求完成实验报告 3.实验步骤、结果和总结实验步骤/结果 (1) 总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。 创建 使用SQL Server Management Studio 创建数据库的步骤如下: 1.在磁盘上新建一个目录,如在C盘中新建“MyDB”目录。 2.在Windows系统“开始”菜单中,依次选取“程序→Microsoft SQL Server 2005→SQL Management Studio”,打开SQL Server Management Studio并连接到SQL Server 2005服务。 3.在“对象资源管理器”中找到“数据库”,右键单击,在弹出的快捷菜单上选择“新建数据库”选项,如下图所示。 4.在打开的“新建数据库”对话框中输入数据库名称“教学管理”;在该窗口中的“数据库文件”设置部分可以修改数据文件和日志文件的文件名、初始大小、保存路径等,通过点击

数据库原理B实验报告完整版4-6

实验四完整性日期 2011-4-6 一实验目的 1. 熟悉通过SQL对数据进行完整性控制。 2. 深入理解数据库系统的完整性概念。 二、实验原理 为维护数据库的完整性,DBMS必须: 1.提供定义完整性约束条件的机制 2.提供完整性检查的方法 3.违约处理 Create table 语法中包含了对完整性的定义。 CREATE TABLE [ database_name.[ owner ] .| owner.] table_name ( { < column_definition > | column_name AS computed_column_expression | < table_constraint > ::= [ CONSTRAINT constraint_name ] } | [ { PRIMARY KEY | UNIQUE } [ ,...n ] ) [ ON { filegroup | DEFAULT } ] [ TEXTIMAGE_ON { filegroup | DEFAULT } ] < column_definition > ::= { column_name data_type } [ COLLATE < collation_name > ] [ [ DEFAULT constant_expression ] | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ] ] [ ROWGUIDCOL] [ < column_constraint > ] [ ...n ] < column_constraint > ::= [ CONSTRAINT constraint_name ] { [ NULL | NOT NULL ] | [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor ] [ON {filegroup | DEFAULT} ] ] ] | [ [ FOREIGN KEY ] REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ] ] | CHECK [ NOT FOR REPLICATION ]

数据库原理实验1

实验一数据库与数据表定义 1 实验目的与要求 (1)掌握数据库的建立、删除和修改操作。 (2)理解基本表之间的关系,掌握表结构的建立、修改和删除操作,创建模式导航图。 2 实验内容与结果 实验内容: (1) 创建一个BookDB数据库,要求至少一个数据文件和一个日志文件。 (2) 创建图书管理相关4张关系表,表结构如图3-1至图3-4所示。 图3-1图书分类表BookClass 图3-2 图书表Book 图3-3读者表Reader

图3-4 借阅表Borrow (3) 表结构的修改,要求: ①修改图书表结构,要求出版社名称和入库时间不允许为空。 ②修改读者表结构,要求读者身份证号不允许为空。 实验结果如下: 创建数据库: CREATE DATABASE BookDB48 ON PRIMARY (NAME='BookDB', FILENAME='C:\数据库文件\BookDB48.mdf', SIZE=3, MAXSIZE=20, FILEGROWTH=1 ) LOG ON ( NAME='BookDB_LOG', FILENAME='C:\数据库文件\BookDB48_log.ldf', SIZE=3, MAXSIZE=20, FILEGROWTH=1) 脚本如下:(创建的四个表) CREATE TABLE BookClass48( classNo char(3)NOT NULL,--图书分类号 className varchar(20)NOT NULL,--图书分类名称 CONSTRAINT BookClass48PK PRIMARY KEY(classNo) ) CREATE TABLE Book48( bookNo char(10)NOT NULL,--图书编号 classNo char(3)NOT NULL,--图书分类号 bookName varchar(40)NOT NULL,--图书名称 authorName varchar(8)NOT NULL,--作者名字 publishingName varchar(20)NULL,--出版社名称 publishingNo char(17)NULL,--出版社编号 publishingDate datetime NULL,--出版社日期 price numeric(7,2)NULL,--单价 shopDate datetime NULL,--入库时间 shopNum datetime NULL,--入库数量 CONSTRAINT Book48PK PRIMARY KEY(bookNo), CONSTRAINT Book48FK FOREIGN KEY(classNo)REFERENCES BookClass48(classNo) )

数据库原理与使用技术原理实验六

云南大学软件学院 实验报告 课程:数据库原理与实用技术实验任课教师:包崇明,朱艳萍 姓名:冉荣华学号:20121070074 专业:数字媒体技术成绩: 实验6 数据库完整性 实验6-1 完整性约束 1、在学生表上面创建下列约束 (1)创建入学日期约束“Enter_University_date_rule”,假定该学校于1923年4月30日创建。要求:入学日期必须大于等于学校创建日期,并且小于等于当前日期 alter table学生表 add constraint Enter_University_date_rule check (入学日期>'1923-04-30'and入学日期15 and年龄<30) (3)创建学生性别约束“Sex_rule”。要求:性别只能为“男”或“女” alter table学生表 add constraint Sex_rule check (性别='男'or性别='女') (4)创建学生成绩约束“Score_rule”。要求:学生成绩只能在0~100之间 alter table成绩表 add constraint Score_rule check (成绩>=0 and成绩<=100)

(5)用图形方法查看学生成绩约束“Score_rule”,截图为: 2、删除约束Enter_University_date_rule alter table学生表 drop constraint Enter_University_date_rule 3、创建声明式默认约束:在创建表的过程中创建声明式默认约束 (1)创建表“default_example”,表中包含字段pid、name、sex、age。要求设定sex的默认值为“男”、age的默认值为18。 创建语句: create table default_example ( 编号int, 姓名char(12), 性别char(5)constraint sex_default default'男', 年龄int constraint age_default default 18) insert into default_example(编号,姓名,性别) values(101,'苏晴','女') insert into default_example(编号,姓名,年龄) values(201,'马拯山','20') 执行结果为:查看:select*from default_example 表(图形查看)的结果

数据库原理实验三

实验三、数据库的简单查询和连接查询实验 班级:学号:姓名:日期:12月18日1. 实验目的 了解SQL Server 查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。掌握表的数据简单查询、数据排序和数据联结查询的SQL 表达和查询分析操作方法。 2. 实验内容 1)简单查询实验 用SQL表达简单查询操作,包括投影、选择条件表达、数据排序和使用临时表等,通过SQL Server查询分析器输入,并显示正确结果。 2)连接查询实验 用SQL表达连接查询操作,包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等,通过SQL Server查询分析器输入,并显示正确结果。 3. 实验要求 1)简单查询实验 在学生选课库中,用Transact-SQL语句表示下列操作,并通过查询分析器实现其数据查询操作: 1、求数学系学生的学号和姓名。 2、求选修了课程的学生学号。 3、求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。 4、求选修课程C1且成绩在80~90之间的学生学号和成绩,将成绩乘以系数0.8输出。 5、求数学系或计算机系姓张的学生的信息。 6、求缺少了成绩的学生的学号和课程号。 2)连接查询实验 在学生选课库中,用Transact-SQL语句表示下列数据连接查询操作,并在查询

分析器中实验。 1、查询每个学生的情况以及他(她)所选修的课程。 2、求学生的学号、姓名、选修的课程名及成绩。 3、求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。 4、查询每一门课的间接先行课(即先行课的先行课)。 4. 实验步骤及结果: (1)简单查询实验 1)求数学系学生的学号和姓名。 T-SQL语句:SELECT 学号,姓名FROM 学生 WHERE 所在系='数学' 查询结果: 图1 运行界面图(1) 2)求选修了课程的学生学号。 T-SQL语句:SELECT DISTINCT 学号FROM 选课查询结果:

数据库原理与应用实验6(二版)

实验六 T-SQL数据库单表查询 一、实验目的及要求 本实验主要目的是让学生通过本实验掌握基于一个表的SELECT语句的使用语法及使用规则,并能运用各种常用的查询方式及其形式。 ●掌握SELECT语句的基本语法结构。 ●掌握SQL语句中基于一个表的SELECT语句的使用规则和方式。 ●能正确设置各种常用查询条件。 ●掌握分组汇总查询的使用。 ●要求学生不但写出语句,而且要执行语句,得到结果。 二、实验原理及背景知识 1、了解SQL中SELECT语句的基本使用方式。详情参考第一篇第三章。 2、理解关系代数中投影运算和选择运算的概念及原理。 简单来讲,SELECT实现的是投影,where实现选择运算。 3、实验前需要了解所使用的数据库中表的结构。 4、实验前需要在stuManag数据库中输入模拟数据。 三、实验内容及步骤 Ⅰ:基本实验内容 (一)输入下面的查询语句,执行后验证实验结果 1、查询100165专业的学生的学号、姓名、性别和出生年月信息 SELECT sno,sname,ssex,sbirth FROM student WHERE mno=‘100165’ 2、查询职称不是教授的所有教师的全部信息 SELECT * FROM teacher WHERE trank< >‘教授’ 3、查询不姓陈的学生学号和姓名信息 SELECT sno,sname FROM student WHERE sname NOT LIKE ‘陈%’ 4、查询100165专业中1991年之前出生的学生的学号、姓名、性别及出生年月信息 SELECT sno,sname,ssex,sbirth FROM student WHERE (mno=‘100165’) AND (sbirth <‘1991/01/01’)

《数据库原理》实验4

实验四:数据库综合查询 一、实验目的 1.掌握SELECT语句的基本语法和查询条件表示方法; 2.掌握查询条件种类和表示方法; 3.掌握连接查询的表示及使用; 4.掌握嵌套查询的表示及使用; 5.了解集合查询的表示及使用。 二、实验环境 已安装SQL Server 2008 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SELECT语句的基本语法格式和执行方法; 2.了解连接查询的表示及使用; 3.了解嵌套查询的表示及使用; 4.了解集合查询的表示及使用; 5.完成实验报告; 五、实验内容及步骤 以数据库原理实验2数据为基础,请使用T-SQL 语句实现进行以下操作: 1.查询以‘DB_’开头,且倒数第3个字符为‘s’的课程的详细情况; 2.查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名; 3.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修 课程号及成绩; 4.查询缺少成绩的所有学生的详细情况; 5.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息; 6.查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成 绩; 7.按照?学号,姓名,所在院系,已修学分?的顺序列出学生学分的获得情况。 其中已修学分为考试已经及格的课程学分之和; 8.列出只选修一门课程的学生的学号、姓名、院系及成绩; 9.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号; 10.只选修?数据库?和?数据结构?两门课程的学生的基本信息;

11.至少选修?数据库?或?数据结构?课程的学生的基本信息; 12.列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩; 13.查询只被一名学生选修的课程的课程号、课程名; 14.检索所学课程包含学生‘张向东’所学课程的学生学号、姓名; 15.使用嵌套查询列出选修了?数据结构?课程的学生学号和姓名; 16.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和 院系; 17.使用ANY、ALL 查询,列出其他院系中比CS系所有学生年龄小的学生; 18.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息; 19.使用集合查询列出CS系的学生以及性别为女的学生名单; 20.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集; 21.使用集合查询列出选修课程1的学生集合与选修课程2的学生集合的交集; 22.思考题:按照课程名顺序显示各个学生选修的课程(如200515001 数据库数 据结构数学); 六、出现问题及解决办法 如:某些查询操作无法执行,如何解决? 1、查询以‘DB_’开头,且倒数第三个字符为‘s’的课程的详细情况 select * from course where cname like 'DB\_%s__' 2、查询名字中第二个字为“阳”的学生姓名和学号及选修的课程号、课程名 select student.sno ,student.sname ,https://www.doczj.com/doc/42760308.html,o,cname from student,course,sc where sname like '_阳%'and student.sno=sc.sno and https://www.doczj.com/doc/42760308.html,o=https://www.doczj.com/doc/42760308.html,o 3、列出选修了‘数学’或‘大学英语’的学生学号、姓名、 select student.sno,sname,sdept,https://www.doczj.com/doc/42760308.html,o,cname,grade from student,sc,course where student.sno=sc.sno and https://www.doczj.com/doc/42760308.html,o=https://www.doczj.com/doc/42760308.html,o and sc.sno in(select sc.sno from sc,course where (cname='大学英语'or cname='数学')and https://www.doczj.com/doc/42760308.html,o=https://www.doczj.com/doc/42760308.html,o group by sc.sno) select student.sno,sname,sdept,cno,grade from student,sc where Cno in (select Cno from course where cname='数学'or cname='大学英语')and sc.sno=student.sno 4、查询缺少成绩的所有学生的详细情况; select * from student,sc where Grade is null and student.sno=sc.sno 5、查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息; select * from student where sage <>(select sage from student where sname='张力') 6、查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩 select student.sno,sname,平均成绩=A VG(grade) from student ,sc

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