当前位置:文档之家› 数据库原理实验2数据查询

数据库原理实验2数据查询

数据库原理实验2数据查询
数据库原理实验2数据查询

课程名称数据库原理

实验序号 2

实验项目数据查询

实验地点

实验学时实验类型验证性

指导教师实验员

专业班级

学号姓名

年月日

成绩:A

教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。

四、实验过程(实验步骤、记录、数据、分析)

实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。

一、简单的选择与投影查询

1、无条件查询

1.1查询全体学生的详细记录。这是一个无条件的选

择查询,其命令为:

其命令为:

select * from students

运行结果如右图,显示整张表的内容。

1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系

(dno)。这是一个无条件的投影查询,其命令为:

select sname,ssex

from students

运行结果如右图,显示了表中的三列。

1.3查询全体学生的姓名(Sname)、出生年份及学号

(Sno)。其命令为:

select sno,sname,2017-sage as birth from students

运行结果如右图,显示了三列内容。

1.4查询全体学生的姓名、出生年份和学号,要求用小写

字母表示学号中的字母。其命令为:

select sname,'birth:' title,YEAR(GETDATE())-sage

birthyear,LOWER(sno) lsno

from students

运行结果如右图,显示了四列内容。

1.5查询选修了课程的学生学号。其命令为:

select distinct sno

from reports

运行结果如右图,distinct短语是为了消去查询结果中的重复值。

2、条件查询

(1)比较条件

1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。其命令为:

select sno,sname

from students

where dno='d03'

运行结果如右图,显示了d03系的全体学生姓名与学号。

1.2查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为:

select sno,sage

from students

where sage >= 18 and sage <=20

运行结果如右图,共有5名在18岁到20岁的学生。

(2)谓语条件

2.1查询年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为:

select sno,sage

from students

where sage between 18 and 20

运行结果如右图,结果与比较条件的结果一样。

2.2查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)。其

命令为:

select sno,sage

from students

where sage not between 18 and 20

运行结果如右图,共有2个人不在18岁到20岁之间。

2.3查询系别编号为d01、d02、d03学生的学号(Sno)、姓名(Sname)

和性别(Ssex)。其命令为:

select sno,sname,ssex

from students

where dno='d01' or dno='d02' or dno='d03'

运行结果如右图,共有6个人。

2.4查询系别编号既不是d01、d02,也不是d03的学生的姓名(Sname)

和性别(Ssex)。其命令为:

select sname,ssex

from students

where dno not in('d01','d02','d03')

运行结果如右图,因为没有其他系别的学生,因此查询出来的是空表。

2.5查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。其

命令为:

select sname,sno,ssex

from students

where sname like '刘%'

运行结果如右图,只有一个人姓刘。

2.6查询姓“刘”而且全名不多于3个汉字的学生的姓名(sname)和所在

系(dno),其命令为:

select sname,dno

from students

where sname like '刘__'

运行结果如右图,在英文系统中下横线“_”代表一个英文字符,但在支持汉字的数据库系统中下横线“_”也代表一个汉字,所以匹配串“刘”的后面只需要跟2个“_”(下横线)

2.7查询所有不姓刘的学生姓名(Sname)和年龄(Sage)。其命令为:

select sname,sage

from students

where sname not like '刘%'

运行结果如右图,5个人不姓刘。

2.8查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)。其命令为:

select cno,credits

from courses

where cname like 'DB\_设计' escape '\'

运行结果如右图,ESCAPE‘\’短语表示\为换码字符,这样匹配串中紧跟在\后面的字符“_”不再具有通配符的含义,转义为普通的“”字符。

2.9查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。其命令为:

select *

from courses

where cname like 'DB\_设_' escape '\'

运行结果如右图,这里的匹配串为“DB\_%设_。第1

个“_”前面有换码字符“\”,所以它被转义为普通的“_”字符。由于“%”和“设”字后面的下横线“_”的前面均没有换码字符“\”,所以它们仍作为通配符。

2.10假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。试查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)。其命令为:

select sno,cno

from reports

where grade IS NULL

运行结果如右图,没有缺少成绩的学生,因此查询结果为空。IS不能用等号“=”代替,否则不能得

到正确的查询结果。

2.11查询所有有成绩的学生学号(Sno)和课程号(Cno)。其命令为:

select sno,cno

from reports

where grade is not NULL

运行结果如右图,

3、查询结果排序

3.1查询选修了C03号课程的学生的学号(Sno)和成绩(Grade),并按成绩降序排列。其命令为:

select sno,grade

from reports

where cno='c03'

order by grade desc

运行结果如右图,查询并降序排列。

3.2查询全体学生情况,查询结果按所在系的系别编号(dnot)升序排列,同一系中的学生按年龄(Sage)

降序排列。其命令为:

select *

from students

order by dno,sage desc

运行结果如右图

3、集函数的使用

4.1查询学生总人数。其命令为:

select COUNT(*) renshu

from students

运行结果如右图,学生总人数为6人。

4.2查询选修了课程的学生人数。其命令为:

select COUNT( distinct sno) renshu

from reports

运行结果如右图,为了避免重复,必须在函数中使用distinct短语。

4.3计算选修C01号课程的学生平均成绩。其命令为:

select A VG(grade) 平均成绩

from reports

where cno='c01'

运行结果如右图

4.4查询选修C01号课程的学生最高分数。其命令为:

select max(grade) 最高分

from reports

where cno='c01'

运行结果如右图

4、查询结果分组

5.1求各个课程号(Cno)及相应的选课人数。其命令为:

select cno,count(sno) cntsno

from reports

group by cno

运行结果如右图

5.2查询选修了3门或3门以上课程的学生学号(Sno)。其命令为:

select sno

from reports

group by sno

having COUNT(cno) >=3

运行结果如右图

二、连接查询

1、不同表之间的连接查询

1.1查询每个学生及其选修课程的情况。

本查询实际上是涉及Students与Reports两个表的连接操作。这两个表之间的联系是通过公共属

性Sno实现的,因此,其操作命

令为:

select students.*,reports.*

from students,reports

where students.sno=reports.sno

运行结果如右图

1.2查询每个学生的学号(Sno)、姓名(Sname)、选修的课程名(Cname)及成绩(Grade)。

本查询涉及到三个表的连接操作,完成

该查询的SQL语句如下:

select students.sno,sname,cname,grade,dname

from students,reports,courses,depts

where students.sno = reports.sno and

https://www.doczj.com/doc/3c11554275.html,o = https://www.doczj.com/doc/3c11554275.html,o

and students.dno = depts.dno

运行结果如右图

2、自身连接

2.1查询每一门课的间接先修课(即先修课的先修课)。

在Courses表关系中,只有每门课的直接先修课信息,而没

有先修课的先修课。要得到这个信息,必须先对一门课找到

其先修课,再按此先修课的课程号,查找它的先修课程。这

就需要要将Courses表与其自身连接。为方便连接运算,这

里为Courses表取两个别名分别为A,B。则完成该查询的

SQL语句为:

select https://www.doczj.com/doc/3c11554275.html,o,https://www.doczj.com/doc/3c11554275.html,ame,B.Pre_Cno

from courses A,courses B

WHERE A.Pre_Cno = https://www.doczj.com/doc/3c11554275.html,o

运行结果如右图

3、外连接

把连接查询中1.2中的等值连接改为

左连接。该左连接操作在SQL Server 2000

中的命令格式为:

select

students.sno,sname,ssex,sage,dno,cno,grade

from students,reports

where students.sno =reports.sno

运行结果如右图

三、嵌套查询

1、带谓词IN的嵌套查询

1.1查询选修了编号为“C02”的课程的学生姓名(Sname)和所在系别编号(dno)。其命令为:

select sname,dno

from students

where sno in

(select sno

from reports

where cno='c02')

运行结果如右图,在本例中的“select sno from reports where cno=‘c02’"称为子查询,“select sname,dno from students where sno in(…)”称为外层查询或父查询。SQL语言允许多层嵌套查询。需要特别指出的是,子查询的SELECT语句中不能使用ORDERBY子句。

嵌套查询一般的求解方法是由里向外处理,即先执行子查询,后执行父查询。子查询的结果用于建立父查询的查找条件。嵌套查询可以使用多个简单查询构成复杂的查询,从而增强SQL的查询能力。以层层嵌套的方式来构造程序正是SQL中“结构化”的含义所在。

1.2查询与“李伟”在同一个系学习的学生学号(Sno)、姓名(Sname)和系别编号(dno)。

该查询可构造嵌套查询实现,其SQL语句如下:

select sno,sname,dno

from students

where dno in

(select dno

from students

where sname='李伟')

运行结果如右图,DBMS求解该查询时先执行子查询,找出“李伟”所在的系别编号(dno),然后查询在该系学习的学生学号和姓名。

1.3查询选修了课程名为“数据结构”的学生学号(Sno)和姓名(Sname)。

本查询涉及学号、姓名和课程名(Cname)三个属性。学号和姓名存放在Students表中,课程名的存放在Courses表中,但Students与Courses两个表之间没有公共属性,必须通过Reports表建立它们之间的联系。所以本查询实际上涉及三个关系的连接操作。

select sno,sname

from students

where sno in

(select sno

from reports

where cno in

(select cno

from courses

where cname ='数据结构'))

运行结果如右图。

2、带有比较运算符的嵌套查询

2.1将嵌套查询中的1.2改为带有比较运算符的嵌套查询。

由于一个学生只可能在一个系学习,因此子查询的结果是一

个值,因此可以用=代替IN,其SQL语句如下:

select sno,sname,dno

from students

where dno =

(select dno

from students

where sname='李伟')

运行结果如右图,和1.2的查询结果一样。

3、带谓词ANY或ALL的嵌套查询

3.1查询系别编号为d01系的学生,而且年龄不超过d01系所有学生的年龄的学生学号(sno)、姓名(Sname)、性别(ssex)、系别编号(dno)和年龄(Sage)。其查询命令为

select sno,sname,ssex,sage,dno

from students

where dno<>'d01'

and sage<=all (select sage

from students

where dno ='d01')

运行结果如右图

4、带谓词EXISTS的嵌套查询

4.1 查询所有选修了编号为“C01”课程的学生姓名(Sname)和所在系

别编号(dno)。其查询命令为:

select sname,dno

from students

where exists

(select *

from reports

where sno=students.sno and cno='c01')

运行结果如右图

4.1将嵌套查询中的1.3改为带谓词EXISTS的查询,其SQL语句如下

select sno,sname,dno

from students a

where exists

(select *

from students b

where b.dno=A.dno and b.sname ='李伟')

运行结果如右图

4.3询选修了所有课程的学生姓名(Sname)和所在系别编号(dno)。其命令为

select sname,dno

from students

where not exists

(select *

from courses

where not exists

(select *

from reports

where sno=students.sno and cno=https://www.doczj.com/doc/3c11554275.html,o))

运行结果如右图,因为没有学生选修了所有的课程,因此查询结果为空。

五、集合查询

1.查询系别编号为d02的学生或年龄不大于20岁的学生信息。其命令为

from students

where dno='d02'

union

select *

from students

where sage<=20

运行结果如右图

2.查询系别编号为d03的学生且年龄不大于20岁的学生的交集,这实际上就是查询d03系中年龄不

大于20岁的学生。其命令为

select *

from students

where dno='d03' and sage<=20

运行结果如右图

3.查询系别编号为d03的学生与年龄不大于18岁的学生的差集。其命令为

select *

from students

where dno='d03' and sage>18

运行结果如右图

五、测试/调试及实验结果分析

实验结果与分析如上所述

六、实验结论与体会

通过本次实验,经过一步一步地调试与分析,把课堂所学知识应用于实际操作中,锻炼了自己的耐心,使我基本掌握了数据查询的整个过程,能够熟练地使用select语句进行查询语句,对简单查询、连接查询、嵌套查询的操作方法也有更深的理解。

年月日

西北工业大学数据库实验报告

1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分) ●数据库和表的要求(第五版教材第二章习题 6 要求的数据库) 数据库名:SPJ,其中包含四张表:S表, P表, J表, SPJ表 ●完成以下具体操作: (1)创建SPJ数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方 式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名和物理文件名均采用默认值。 (2)在SPJ数据库中创建如图2.1-图2.4的四张表(只输入一部分数据示意即可)。 S表: P表: J表: SPJ表:

(3)备份数据库SPJ(第一种方法):备份成一个扩展名为bak的文件。(提示: 最好先删除系统默认的备份文件名,然后添加自己指定的备份文件名) (4)备份数据库SPJ(第二种方法):将SPJ数据库定义时使用的文件(扩展名为 mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。 原位置: 新的位置: (5)删除已经创建的工程项目表(J表)。 (6)删除SPJ数据库。(可以在系统默认的数据存储文件夹下查看此时SPJ数据 库对应的mdf,ldf文件是否存在) 删除过后文件不存在 (7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。(还原数据库)

(8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。(附加) (9)将SPJ数据库的文件大小修改为100MB。 (10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类 型。 2.利用SQL语言创建和删除数据库和数据表(50分,每小题5分) ●数据库和表的要求 数据库名:Student,其中包含三个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。 ●完成以下具体操作: (1)用SQL语句创建如图2.5-图2.7要求的数据库Student,初始大小为20MB, 最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初

数据库原理实验报告

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验一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学习版当保护和管理应用系统内外部的信息变得至关重要时,通过提供一套免费、易于使用和健壮的数据库,学习版帮助开发人员建立强健的和可靠的应用系统。

数据库原理实验报告-实验三-数据完整性与安全性控制

一、实验内容、步骤以及结果 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1)非空约束:为出生日期添加非空约束。 非空约束:取消表S中sbirth的勾。可能需要重建表。 (2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。 设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命 令-->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’ -->保 存 (3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。 唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加--> 是否唯一改为‘是’-->名称改为‘us_sname’ -->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。 设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存

(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查 条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表 和C表,外键名称分别为fk_sno,fk_cno。 2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint) 删除约束:单击数据库Student-->表-->单击S-->展开键、约束。一一删除即可。

数据库原理实验报告

数据库原理 实验报告 系别电子信息系 专业计算机科学与技术班级学号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

数据库实验报告2

理工大学信息工程与自动化学院学生实验报告 (2011 —2012 学年第 1 学期) 课程名称:数据库系统教程开课实验室:信自楼445 2011 年11月 27日 一、上机目的及容 1.上机容: SQL的数据查询,查询、插入、删除、修改 2.上机目的: 掌握数据查询语句,并能熟练应用 二、实验原理及基本技术路线图(方框原理图或程序流程图) 在SQL server 2008软件中的查询中,输入SQL代码 三、所用仪器、材料(设备名称、型号、规格等或使用软件) 1台PC及SQL server 2008软件 四、实验方法、步骤(或:程序代码或操作过程) 1)select查询 单表查询:查询全体学生的学号及: SELECT SNO,SNAME FROM S;

查询全体学生的全部信息: SELECT*FROM S; 2)查询经过计算值 (SELECT子句的<目标列表达式>为表达式,表达式可以是:算术表达式、字符串常量、函数、列别名等) 查全体学生的学号、及其出生年份: SELECT SNO,SNAME,2012-AGE FROM S;

查询全体学生的、出生年份和所属系: SELECT SNO,SNAME,2012-AGE,SDEPT FROM S; 查询选修了课程的学生学号: SELECT SNO FROM SC,C WHERE https://www.doczj.com/doc/3c11554275.html,O=https://www.doczj.com/doc/3c11554275.html,O; 为了避免这种不合题意的情况,我们用distinct用了去除重复的元组。所以上例中的执行语句为: SELECT DISTINCT SNO FROM SC;

SELECT DISTINCT SNO FROM SC,C WHERE https://www.doczj.com/doc/3c11554275.html,O=https://www.doczj.com/doc/3c11554275.html,O; 查询选修课程的各种成绩: SELECT CNO,GRADE FROM SC; SELECT DISTINCT CNO,DISTINCT GRADE FROM SC; SELECT CNO,DISTINCT GRADE FROM SC; SELECT DISTINCT CNO,GRADE FROM SC;

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

南京晓庄学院 《数据库原理与应用》课程实验报告 实验一 SQL Server 2005常用服务与实用工具实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

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主要版本类别与主要功能特性。

数据库原理实验报告分析

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中的字段说明创建。

数据库原理实验报告二.pdf

LIAOCHENG UNIVERSITY 计算机学院实验报告 【2015 ~2016 学年第 2 学期】 【一、基本信息】 【实验课程】数据库原理与应用 【设课形式】独立□非独立【课程学分】 【实验项目】实验二、SQL数据操作及查询 【项目类型】基础综合□设计□研究创新□其它[ ]【项目学时】4【学生姓名】傅雪晨【学号】59 【系别专业】电子商务 【实验班组】 【同组学生】 【实验室名】综合实验楼 【实验日期】【报告日期】 【二、实验教师对报告的最终评价及处理意见】 实验成绩:(涂改无效) 指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管理中心备案

【三、实验预习】 实验条件(实验设备、软件、材料等): 实验2 SQL数据操作及查询 实验目的: 1. 向实验1建立的表中添加数据(元组), 掌握INSERT语句的用法; 2. 修改基本表中的数据, 掌握UPDATE语句的用法; 3. 删除基本表中的数据,掌握DELETE语句的用法; 4. 体会数据完整性约束的作用, 加深对数据完整性及其约束的理解。 5. 熟练掌握SELECT语句,能够运用该语句完成各种查询。 实验内容: 1.使用INSERT语句将教材P82表中的数据添加到数据库STUDENTDB中. 2. Insert into student59 select'1','李勇','男','20','CS','',''union select'2','刘晨','女','19','CS','',''union select'3','王敏','女','18','MA','',''union select'5','张立','男','19','IS','','' select*from student59 select*from course59 select*from sc59 alter table course59NOCHECK Constraint fk_cpno Insert into course59 select'1','数据库','5','4'union select'2','数学','','2'union select'3','信息系统','1','4'union select'4','操作系统','6','3'union select'5','数据结构','7','4'union select'6','数据处理','','2'union select'7','PASCAL语言','6','4' alter table course59CHECK Constraint FK_course59_course59 Insert into sc59 select'1','1',92 union select'1','2',85 union select'1','3',88 union select'2','2',90 union select'2','3',80 alter table sc59CHECK Constraint fk_S_c alter table sc59NOCHECKConstraint fk_S_c

数据库原理实验报告(数据查询)

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 1.掌握SQL的单表查询操作

2.掌握SQL的连接查询操作 3.掌握SQL的嵌套查询操作 4.掌握SQL的集合查询操作 二、[实验内容] 本实验的主要内容是: 1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。 2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 4.组合查询与统计查询。 (1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 (2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。 (3)组合查询实验。 (4)计算和分组计算查询的实验。 三、[实验方法] 1.将查询需求用Transact-SQL语言表示。 2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。 3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5 查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 图5- 错误!未定义书签。SQL Server 2000查询分析器 查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查

数据库实验报告2

数据库原理实验报告 姓名:学号:班级: 实验日期:03/30/2017 实验名称:数据库创建与管理 实验二数据库创建与管理 一、实验目的 1.熟练掌握界面方式创建和管理数据库。 2.熟练掌握查询编辑器T-SQL语句创建和管理数据库。 3.熟练掌握备份和还原数据库。 二、实验器材 1、接入Internet的计算机主机; 三、实验内容 1、界面方式创建和管理数据库 (1)创建数据库 (2)修改数据库

(3)删除数据库(使用右键) 2、利用企业管理器备份和还原数据库(1)备份数据库 (2)还原数据库(操作->右键)

(1)创建SPJ数据库:“新建查询”,输入以下语句并运行 CREATE DATABASE SPJ ON (NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' , SIZE = 3, MAXSIZE = 10, FILEGROWTH = 10%) LOG ON (NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,

SIZE = 1, FILEGROWTH = 10%) (2)修改SPJ数据库:在查询分析器中输入以下语句并运行 ALTER DATABASE SPJ MODIFY FILE (NAME='SPJ_Data', SIZE=4, MAXSIZE=UNLIMITED) ALTER DATABASE SPJ ADD FILE (NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1, MAXSIZE=10, FILEGROWTH=10%) (3)删除SPJ数据库:DROP DA TABASE SPJ

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与 管理实验 南京晓庄学院 《数据库原理与应用》 课程实验报告 实验三数据表的创建与管理实验 所在院(系): 数学与信息技术学院班级: 学号: 姓名: 1.实验目的 (1) 理解SQL Server 20xx常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2) 熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构,插入及更新数据的方法。 (3) 熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方 法。 2.实验要求 基本实验:

(1) 在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2) 依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据 库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3) 依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验 使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4) 找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5) 按要求完成实验报告。 扩展实验: (1) 在“TM”数据库中补充设计以下各表结构:

数据库实验报告二

《数据库原理》实验报告 实验三: 数据库完整性与安全性控 制 实验四: 视图与索引 学号姓名 班级日期 2013302534 杨添文10011303 2015.10.1 7 实验三:数据完整性与安全性控制 一、实验内容 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1)非空约束:为出生日期添加非空约束。 (2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。 (3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。 (4)缺省约束:为性别(ssex)添加默认值,其值为“男”。 (5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查 条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表为分别是S 表和C表,外键名称分别为fk_sno,fk_cno。 2.在图形用户界面中删除上小题中已经创建的各种约束,用SQL语言分别重新创建第1小题中的(2)-(6)小题。(15分,每小题3分,提示:alter table add constraint)(2)alter table s add constraint pk_sno primary key(sno) (3)alter table s add constraint uk_sname unique(sname) (4)alter table s add constraint a default('男')for ssex (5) alter table sc add constraint ck_grade check(grade between 0 and 100) (6) alter table sc add constraint fk_sno foreign key(sno)references s(sno) alter table sc add constraint fk_cno foreign key(cno)references c(cno)

数据库原理实验一

电子信息工程学系实验报告 课程名称: 《数据库原理》 实验项目名称:表的创建和管理 实验时间: 班级: 姓名: 学号: 实 验 目 的: (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, --零件代码不能为空

数据库实验报告实验二

湘潭大学 数据库实验报告 实验名称SQL操作 班级软件工程一班 指导老师郭云飞(老师)学生姓名汤能武 系(院)信息工程学院实验时间2011年12月

SQL操作 一、实验目的 1.了解和掌握MS SQL Server 工具的使用; 2.熟悉掌握SQL' 3.训练学生设计与编写过程,函数与触发器的能力; 二、实验环境 1. 硬件:数据库服务器,客户机,局域网; 2.软件:MS SQL Server 2008 ,建模软件; 三、实验内容 根据给定的问题建立数据库模型,在MS SQL Management Studio 中建立该数据库,并利用SQL语句建立表格与视图,录入数据,进行查询,插入,删除,修改等操作,编写过程,函数,触发器等; 给定问题如下: 1.一个学校有若干教学楼和若干班; 2.一个教室有若干教室和若干管理人员; 3.一间教室只有一个管理人员,但一个管理人员可以管理若干个教室; 4.每周7天,每周上午,下午,晚上都可以安排上课,每周的课表都不变; 5.一间教室或班在一段时间内只能安排一堂课,但可以是合班上课;

四、实验准备 1.理论知识预习及要求 ①使用SQL语句建立数据库; ②使用SQL语句进行查询,修改等操作; ③使用SQL语句建立过程,函数,触发器等; ④使用SQL创建数据表; 2.实验指导书预习及要求 上机前先预习数据库原理指导书的实验,理解和掌握SQL语言的常用操作。 五、实验原理或操作要点简介 注意服务器要先启动,才能与服务器建立连接。 使用SQL命令,完成预定功能。 六、实验步骤 1. 分析给定问题,设计E-R 模型;

2.根据E-R图设计出该问题的关系数据模型,分析数据模型并规范之;关系模型

数据库原理实验报告_实验三_数据完整性与安全性控制

实验内容、步骤以及结果 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1) 非空约束:为出生日期添加非空约束。 非空约束:取消表S中sbirth的勾。可能需要重建表。 (2) 主键约束:将学号(sno)设置为主键,主键名为pk_sno。 设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择修改命令-->对话框中右击sno-->选择设置主键'>修改主键名为pk_sno '-->保存

(3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname 。 唯一约束:单击数据库Student-->单击表--> 单击S-->右击sname-->选择修改’ 命令T右击 sname-->选择索引和键命令--> 打开索引和键框图--> 添加--> 是否唯一改为是--> 名称改为us sname '-->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为男 设默认约束:单击数据库Student宀单击表宀单击右击sno^选择修改命令宀单击cno-->在默认值栏输入男’保存

D62.s1udent - Diagram_0* D62.sludent - dbo.S* SQLQuery5.sql - D... (D62\A^m i n (52J)* 列容 埶据类型 允祥值 Q 5TI0 Ctiar(lO) n sname nvarchar (20) a 卜:S5SX nchai ■⑵ 團 sbirtti date □ adept nv ar char (20) sPhoneNo ctiar(LQ) @] 数捐类型 允傑Mdl 值 曰表设计器 RowGuid E 标识魁 不用于复制 大小 (5) CHECK 约束:为SC 表的成绩(grade)添加CHECK 约束,约束名为ck grade ,其 检查条件为:成绩应该在0-100之间。 ffin har 妊 2 Nnrh 昙否否否二

SQL数据库实验报告 实验二

实验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 DA TABASE创建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数据库。 3.实验思考 (1)数据库中的日志文件是否属于某个文件组? (2)数据库中的主数据文件一定属于主文件组吗? (3)数据文件和日志文件可以在同一个文件组吗?为什么? (4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库? (5)能够删除系统数据库吗?

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

实验一SQL Server2005常用服务与实用工具实验 所在院(系):信息工程学院 班级:13软件工程转本1班 学号:13131151 姓名:薛伟

1.实验目的 (1)了解Microsoft关系数据库管理系统SQL Server的发展历史及其特性。 (2)了解SQL Server2005的主要组件、常用服务和系统配置。 (3)掌握Microsoft SQL Server Management Studio图形环境的基本操作方法。了解使用“SQL Server2005联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。 2.实验要求 (1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server2005主要版本类别和主要功能特性。 (2)使用SQL Server配置管理器查看和管理SQL Server2005服务。 (3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获 得所感兴趣的相关产品主题/技术文档。 (4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL 查询语句。 (5)查看Microsoft SQL Server2005模板,了解模板的使用方法。 (6)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 (1)简要总结SQL Server系统发展历史及SQL Server2005主要版本类别与主要功能特性。SQL Server系统发展历史 1988SQL Server由微软与Sybase共同开发,运行于OS/2平台。 1993SQL Server4.2桌面数据库系统,功能较少。与Windows集成并提供了易于使用界面。1994Microsoft与Sybase在数据库开发方面的合作中止。 1995SQL Server6.05重写了核心数据库系统。提供低价小型商业应用数据库方案。 1996SQL Server6.5 1998SQL Server7.0重写了核心数据库系统,提供中小型商业应用数据库方案,包含了初始的Web支持。SQL Server从这一版本起得到了广泛应用。 2000SQL Server2000企业级数据库系统,其包含了三个组件(DB,OLAP,English,Query)。丰富前端工具,完善开发工具,以及对XML的支持等,促进了该版本的推广和应用。2005SQL Server2005最新版本,历时5年的重大变革。 2007SQL Server2008(Katmi)即将发布。 2008SQL Server2008发布。 -SQL Server2005主要版本类别及功能特性 SQL Server2005Enterprise Edition(32位和64位) Enterprise Edition是最全面的SQL Server版本,是超大型企业的理想选择,能够满足最复杂的要求。 注:没有任何限制,包含所有功能和特性。 SQL Server2005Standard Edition(32位和64位) SQL Server2005Standard Edition是适合中小型企业的数据管理和分析平台。 它包括电子商务、数据仓库和业务流解决方案所需的基本功能。

数据库原理实验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) )

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