数据库原理-实验2解答

数据库原理-实验2解答
数据库原理-实验2解答

(1)查询性别为“男”的所有学生的名称并按学号升序排列。

SELECT Sname

FROM Students

WHERE Ssex='男'

ORDER BY Sno

(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。考试成绩>=60 否则=0

SELECT Sno, Tno, https://www.360docs.net/doc/d118056911.html,o, Score, 'Point of Score',

CONVERT(FLOAT(1), (Score-60)*0.1*Ccredit+Ccredit)

FROM Courses, Reports

WHERE Score>=60 AND https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o

UNION

SELECT Sno, Tno, https://www.360docs.net/doc/d118056911.html,o, Score, 'Point of Score', 0

FROM Courses, Reports

WHERE https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o AND (Score < 60 OR Score IS NULL)

(3)查询学分是3或4的课程的名称。

SELECT Cname

FROM Courses

WHERE Ccredit IN('3','4')

(4)查询所有课程名称中含有“算法”的课程编号。

SELECT Cname

FROM Courses

WHERE Cname LIKE '%算法%'

/*查询得到算法分析与设计、数据结构与算法分析*/

(5)查询所有选课记录的课程号(不重复显示)。

SELECT DISTINCT Cno FROM Reports

(6)统计所有老师的平均工资。

SELECT AVG(Tsalary) FROM Teachers

(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。

SELECT Tno,AVG(Score)

FROM Reports

GROUP BY Tno

ORDER BY AVG(Score) DESC

(8)统计各个课程的选课人数和平均成绩。

SELECT Cno,COUNT(Sno),AVG(Score)

FROM Reports

GROUP BY Cno

(9)查询至少选修了三门课程的学生编号和姓名。

SELECT Sno,Sname

FROM Students

WHERE Sno IN

(

SELECT Sno

FROM Reports

GROUP BY Sno

HAVING COUNT(*)>=3

)

(10)查询编号S26的学生所选的全部课程的课程名和成绩。

SELECT https://www.360docs.net/doc/d118056911.html,ame,Reports.Score

FROM Courses,Reports

WHERE Reports.Sno='S26' AND https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o

(11)查询所有选了“数据库原理及其应用”课程的学生编号和姓名。

SELECT Sno,Sname

FROM Students

WHERE Sno IN

(

SELECT Reports.Sno

FROM Reports,Courses

WHERE https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o AND https://www.360docs.net/doc/d118056911.html,ame='数据库原理

及其应用'

)

(12)求出至少被两名学生选修的课程编号。

SELECT DISTINCT https://www.360docs.net/doc/d118056911.html,o

FROM Reports X,Reports Y

WHERE https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o AND X.Sno

(13)查询选修了编号S26的学生所选的某个课程的学生编号。

SELECT Y.Sno

FROM Reports X,Reports Y

WHERE https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o AND X.Sno='S26'

/*注:在本题中,如果要求是“查询选修了编号S26的学生所选的某个课程的其他学生编号”时,也就是不包含编号S26学生自身的情况时,在查询条件WHERE中,还需要加上条件X.Sno

(14)查询学生的基本信息及选修课程编号和成绩。

SELECT

Students.Sno,Students.Sname,Students.Semail,Students.Scred

it,Students.Ssex,https://www.360docs.net/doc/d118056911.html,o,Reports.Score

FROM Students JOIN Reports ON Students.Sno=Reports.Sno (15)查询学号S52的学生的姓名和选修的课程名称及成绩。

SELECT Students.Sname,https://www.360docs.net/doc/d118056911.html,ame,Reports.Score

FROM Students,Courses,Reports

WHERE Students.Sno=Reports.Sno AND https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o

AND Students.Sno='S52'

(16)查询和学号S52的学生同性别的所有学生资料。

SELECT *

FROM Students

WHERE Ssex=(

SELECT Ssex

FROM Students

WHERE Sno='S52'

)

(17)查询所有选课的学生的详细信息。

SELECT *

FROM Students

WHERE Sno IN

(

SELECT Sno

FROM Reports

)

(18)查询没有学生选的课程的编号和名称。

SELECT Cno,Cname

FROM Courses

WHERE Cno NOT IN

(

SELECT Cno

FROM Reports

)

(19)查询选修了课程名为C++的学生学号和姓名。

SELECT Sno,Sname

FROM Students

WHERE Sno IN

(

SELECT Sno

FROM Reports

WHERE Cno IN

(

SELECT Cno

FROM Courses

WHERE Cname='C++'

)

)

(20)找出选修课程UML或者课程C++的学生学号和姓名。

SELECT Sno,Sname

FROM Students

WHERE Sno IN

(

SELECT Sno

FROM Reports

WHERE Cno IN

(

SELECT Cno

FROM Courses

WHERE Cname='C++' OR Cname='UML'

)

)

(21)找出和课程UML或课程C++的学分一样课程名称。

SELECT Cname

FROM Courses

WHERE Ccredit=SOME

(

SELECT Ccredit

FROM Courses

WHERE Cname='UML' OR Cname='C++'

)

/*注:在本题中,将=SOME换成=ANY或IN都可行。*/(22)查询所有选修编号C01的课程的学生的姓名。

SELECT Sname

FROM Students

WHERE EXISTS

(

SELECT *

FROM Reports

WHERE https://www.360docs.net/doc/d118056911.html,o='C01' AND Reports.Sno=Students.Sno

)

(23)查询选修了所有课程的学生姓名。

SELECT Sname

FROM Students

WHERE NOT EXISTS

(

SELECT *

FROM Reports X

WHERE NOT EXISTS

(

SELECT *

FROM Reports Y

WHERE Y.Sno=Students.Sno AND https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o

)

)

(24)利用集合查询方式,查询选修课程C++或选择课程JAVA的学生的编号、姓名和积分。

SELECT Sno,Sname,Scredit

FROM Students

WHERE Sno IN

(

SELECT Sno

FROM Reports

WHERE https://www.360docs.net/doc/d118056911.html,o=

(

SELECT https://www.360docs.net/doc/d118056911.html,o

FROM Courses

WHERE https://www.360docs.net/doc/d118056911.html,ame='C++'

)

)

UNION

SELECT Sno,Sname,Scredit

FROM Students

WHERE Sno IN

(

SELECT Sno

FROM Reports

WHERE https://www.360docs.net/doc/d118056911.html,o=

(

SELECT https://www.360docs.net/doc/d118056911.html,o

FROM Courses

WHERE https://www.360docs.net/doc/d118056911.html,ame='JAVA'

)

)

(25)实现集合交运算,查询既选修课程C++又选修课程JAVA的学生的编号、

姓名和积分。

SELECT Sno,Sname,Scredit

FROM Students

WHERE Sno IN

(

SELECT X.Sno

FROM Reports X,Reports Y

WHERE(https://www.360docs.net/doc/d118056911.html,o=(

SELECT Cno

FROM Courses

WHERE Cname='C++'

)AND https://www.360docs.net/doc/d118056911.html,o=(

SELECT Cno

FROM Courses

WHERE Cname='JAVA'

)

)AND X.Sno=Y.Sno

)

(26)实现集合减运算,查询选修课程C++而没有选修课程JAVA的学生的编号。

基本的语句模式如下:

SELECT Sno FROM Reports

WHERE Cno='C01'

AND Sno NOT IN(SELECT Sno FROM Reports WHERE Cno='C03')本题具体的SQL语句

SELECT * FROM Students

WHERE Sno IN

( SELECT Sno FROM Reports

WHERE Cno=(SELECT Cno FROM Courses WHERE Cname='C++')

AND Sno NOT IN (SELECT Sno FROM Reports WHERE

Cno=(SELECT Cno FROM Courses WHERE Cname='JAVA'))) (28)求平均成绩在75分以上的课程名

select https://www.360docs.net/doc/d118056911.html,ame,avg(Score) as pjcj

from COURSE, Reports

where https://www.360docs.net/doc/d118056911.html,om= https://www.360docs.net/doc/d118056911.html,o

group by https://www.360docs.net/doc/d118056911.html,o

having avg(Score)>75

(29) 检索“张三”同学不学的课程的课程号

SELECT distinct cno

from Courses

where cno not in (select https://www.360docs.net/doc/d118056911.html,o

from Students, Reports

where Students.sno= Reports.sno

and Students.sname='张三' )

(注:范文素材和资料部分来自网络,供参考。请预览后才下载,期待你的好评与关注。)

数据库原理实验报告

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验一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

数据库原理实验报告(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中的字段说明创建。

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

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 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的查

数据库原理实验报告二.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

数据库原理B实验报告完整版1-3

实验一 认识DBMS系统 日期 2011-3-23一、实验目的 1.通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。 2.熟悉对DBMS的操作 3.搭建今后实验的平台 二、实验原理 企业管理器是SQL Server中最主要的工具,使用它基本上可完成SQL Server的所有管理操作,如数据库的创建和管理、数据表的创建和管理、数据库安全管理等,在本书第五课中将对其作详细介绍。 查询分析器主要用于创建和执行SQL命令,以完成数据库的查询和管理工作。查询分析器和企业管理器是SQL Server的两大主要工具。 服务管理器主要用于启动、暂停、停止和检查本地服务的状态。SQL Server提供如下服务: SQL Server服务:该服务提供管理服务器中的所有数据库、执行T-SQL程序、执行存储过程、处理分布式查询等服务。必须启动该服务,用户才能通过客户端访问SQL Server服务器中的数据。 SQL Server Agent服务:该服务用于执行作业、监视SQL Server以及激发警报。SQL Server Agent允许自动执行某些管理任务的服务,所以必须启动SQL Server Agent 服务,才能使本地或多服务器的管理任务自动运行。 Microsoft Search服务:提供SQL Server全文检索功能。 Distributed Transaction Coordinator服务:提供Microsoft分布式事务处理功能。 MSSQL Server OLAP Service服务:支持Analysis Services的各项功能,该服务在安装了支持Analysis Services才有。 三、实验仪器和设备 1. 计算机 2. SQL Server 2000 四、预习要求 复习已经讲过的SQL Server 2000的基本工具使用方法。

数据库原理实验报告(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”数据库中补充设计以下各表结构:

数据库原理实验一

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

《数据库原理》实验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.360docs.net/doc/d118056911.html,o,cname from student,course,sc where sname like '_阳%'and student.sno=sc.sno and https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o 3、列出选修了‘数学’或‘大学英语’的学生学号、姓名、 select student.sno,sname,sdept,https://www.360docs.net/doc/d118056911.html,o,cname,grade from student,sc,course where student.sno=sc.sno and https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.html,o and sc.sno in(select sc.sno from sc,course where (cname='大学英语'or cname='数学')and https://www.360docs.net/doc/d118056911.html,o=https://www.360docs.net/doc/d118056911.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

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

实验内容、步骤以及结果 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 昙否否否二

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

数据库原理实验三

实验三、数据库的简单查询和连接查询实验 班级:学号:姓名:日期: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 选课查询结果:

数据库原理实验报告

《数据库原理》实验报告 姓名学号日期2014-9-27 实验室152 指导教师设备编号 实验题目实验单元2 表创建和管理、数据更新操作 一、实验目的 1)掌握T-SQL语句创建表的写法,掌握数据类型和约束的知识; 2)掌握SQL 语句管理表的方法。 3)掌握T-SQL语句向表中插入、修改、删除数据的写法; 二、实验内容 以下所有操作使用T-SQL语句来实现: (一) 数据定义 1)创建数据库MyStudent数据库,该数据库主要文件为MyStudent.mdf,日志文件为 MyStudent.ldf,它们都位于d:\myDB目录下。

2)基本表的定义: 要求使用命令定义如下3个表:Student, Course,SC,要求为每张表合理建立主码外码约束。字段名称类型及长度说明备注 Sno CHAR(12) 学号 Sname CHAR(20) 姓名非空 Ssex CHAR(2) 性别可为空 Sbirthday DATETIME 出生日期可为空 Sdept CHAR(40) 所在院系可为空 Saddress CHAR(50) 籍贯可为空 字段名称类型及长度说明备注 Cno CHAR(6) 课程编号 Cname CHAR(30) 课程名称非空 Cpno CHAR(6) 先修课号可为空 Ccredit INT 学分可为空 字段名称类型及长度说明备注 Sno CHAR(12) 学号 Cno CHAR(6) 课程编号 Grade INT 成绩可为空

3)给student表增加一个memo(备注)字段,类型为varchar(200)。

4)将memo字段的类型修改为varchar(300)。 5)删除memo 字段。

《数据库原理》实验1

实验一:管理SQL Server数据库 一、实验目的 1.了解数据库常用对象及组成; 2.熟悉SQL的基本概念和特点; 3.熟练掌握T-SQL 语句中的数据库定义的使用方法; 4.熟悉在SQL Server 2008中创建及编辑数据库; 5.熟练掌握SQL的数据定义子句的使用方法。 二、实验环境 已安装SQL Server 2008企业版的计算机; 具有局域网网络环境,有固定ip地址; 三、实验学时 2学时 四、实验要求 1.熟练使用Management Stuio界面方式创建及编辑数据库; 2.熟练使用T-SQL 语句创建及编辑数据库; 3.完成实验报告。 五、实验准备知识(也可参考SQL Server联机丛书) 1.数据库相关属性 1)逻辑名称:数据文件和日志文件名称 2)文件类型:数据文件及日志文件 3)文件组:各个数据文件所属的文件组名称 4)初始大小:文件的最原始大小 5)自动增长:文件按指定的大小增长,也可限制到最大容量。 6)路径:存放文件的物理目录 7)文件名:显示数据文件和日志文件的物理名称 2.默认数据库属性 1)主数据文件为xx.mdf ,日志文件为xx_log.ldf; 2)只有一个文件组Primary; 3)主数据文件初始大小为3MB,增量为1MB; 4)日志文件初始大小为1MB,增量为10%; 5)主数据文件和日志文件都存放在C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\DATA目录下,文件分别为xx.mdf 和xx_log.ldf 。 3.使用界面创建数据库步骤

【SQL Server Management Studio】→【对象资源管理器】→【数据库】→【新建数据库】→设置数据库相关属性(名称、大小、位置) 4.启动SQL Server 2005查询分析器 【SQL Server Management Studio】→【新建查询】 5.命令方式下创建数据库 CREATE DATABASE database_name [ON [PRIMARY] [ [,…n]] [, [,…n]] ] [LOG ON { [,…n]}] [FOR LOAD|FOR ATTACH] ::=([NAME=logical_file_name,] FILENAME=‘os_file_name’ [,SIZE=size] [,MAXSIZE={max_size|UNLIMITED}] [,FILEGROWTH=growth_increment] ) [,…n] 例如: CREATE DATABASE STUDENT2 ON PRIMARY (NAME = 'STUDENT2_DATA', /*数据文件逻辑文件名 FILENAME = ‘e:\ DATA\STUDENT2_DATA.MDF' , /*数据文件物理文件名SIZE = 5MB, /*初始大小 MAXSIZE = 20MB, /*最大值 FILEGROWTH = 20%)/*文件增长百分比 LOG ON /*日志文件 (NAME ='STUDENT2_LOG', /*日志文件逻辑文件名 FILENAME = ‘e:\DATA\ STUDENT2_LOG. LDF', /*日志文件逻辑文件名 SIZE = 5MB, /*以下为日志文件属性 MAXSIZE = 10MB, FILEGROWTH = 2MB) 六、实验内容及步骤 1、假设SQL Server服务已启动,并以Administrator身份登录计算机(文件名称自定);请分别使用Management界面方式和T-SQL语句实现以下操作: 1)在本地磁盘D上以学号为名字建立一文件夹。 2)要求在本地磁盘D创建一个学生-课程数据库(名称为student),只有

相关文档
最新文档