08计科《数据库原理》实验6
数据库原理实验教案

数据库原理实验教案第一篇:数据库原理实验教案《数据库原理》课程实验实验1 创建数据库和数据表一、实验目的熟悉SQL Server Management Studio界面;掌握通过图形化向导和执行Transact-SQL语句创建数据库的方法。
二、实验环境Windows XP操作系统,SQL Server 2005软件。
三、实验课时2课时。
四、实验内容SQL Server中的一个数据库必须至少包含一个数据文件和一个事务日志文件,所以创建数据库就是建立主数据文件和日志文件。
在SQL Server 2005中创建数据库的方法主要有两种:一是在SQL Server Management Studio窗口中使用可视化界面,通过方便的图形化向导创建,二是通过执行Transact-SQL语句创建。
(一)向导方式创建1、从“开始”菜单选择“所有程序”→“Microsoft SQL Server 2005”,打开“SQL Server Management Studio”窗口,使用Windows或SQL Server身份验证建立连接。
2、在“对象资源管理器”窗格中展开服务器,选择“数据库”节点右击,从弹出的快捷菜单中选择“新建数据库”命令,打开“新建数据库”窗口。
3、该窗口中有3个页,分别是“常规”、“选项”和“文件组”,完成这3个页的内容即可完成数据库的创建。
这里,我们仅设置“常规”的相应内容,其他2个页的内容按照默认设置即可。
(1)“数据库名称”文本框中输入数据库的名称,如“sample_st”,再输入该数据库的所有者,这里使用默认值即可。
(也可以通过单击文本框右边的“浏览”按钮选择所有者。
(2)“数据库文件”列表中包括两行,一个是数据文件,一个是日志文件。
通过单击下面相应的按钮可以添加或删除相应的数据文件。
λ逻辑名称:指定该文件的文件名。
λ文件类型:用于区别当前文件是数据文件还是日志文件。
λ文件组:显示当前数据库文件所属的文件组。
程杨杨20082567数据库原理实验报告

计算机与信息学院数据库原理实验报告专业班级:计算机科学与技术08-2班学号:20082567姓名:程杨杨实验一数据库平台及交互式SQL的使用一、实验目的1、掌握数据库平台SQL Server 2000的使用;2、掌握基本SQL语句的使用;3、理解视图的作用并掌握其应用。
二、实验内容1、在SQL Server 2000中创建(删除)数据库、数据表;2、定义三类完整性约束条件;3、利用查询分析器实现数据的更新操作;4、利用查询分析器实现数据查询;5、视图的定义与使用三、实验环境PC机一台、Windows 2000/XP操作系统、SQL Server 2000数据库管理系统四、实验步骤及结果(1)创建/删除数据库,数据表(S,SC,C)和定义3类完整性的条件在查询分析器中输入以下语句并执行:create database xskc --创建学生课程数据库create table s --创建学生表(Sno char(8) primary key,Sname char(20) not null,Ssex char(2) check (Ssex in('男','女')),Sage smallint check (Sage>=15 and Sage<=45),Sdept char(20));create table c --创建课程表(Cno char(4) primary key,Cname char(40) not null,Cpno char(4),Ccredit smallint);create table sc --创建选课表(Sno char(8),Cno char(4),Grade smallint check (Grade>=0 and Grade<=100),primary key (Sno,Cno),foreign key (Sno) references S(Sno),foreign key (Cno) references C(Cno));(2)利用查询分析器实现数据的更新操作1.插入数据1)向学生表中插入数据insert into s values('20083838','周星','男',21,'计算机科学与技术'); insert into s values('20081111','刘华','男',20,'信息安全');insert into s values('20082448','徐昕','男',20,'计算机科学与技术'); insert into s values('20082447','金勇','男',19,'计算数学');insert into s values('20082468','鲁明','男',21,'英语');insert into s values('20082457','梁磊','男',21,'车辆工程');insert into s values('20082438','李寻','男',22,'计算机科学与技术'); insert into s values('20082400','李勇','男',21,'计算机科学与技术'); insert into s values('20083333','刘晨','女',18,'通信工程');insert into s values('20084444','王敏','女',19,'通信工程');2)向课程表中插入下列数据insert into c values('6','数据处理',null,2);insert into c values('7','PASCAL语言','6',4);insert into c values('5','数据结构','7',5);insert into c values('1','数据库原理','5',4);insert into c values('4','操作系统','6',4);insert into c values('2','高等数学',null,6);insert into c values('3','信息系统','1',4);3) 向sc表中插入数据insert into sc values('20082448','1',92);insert into sc values('20082448','2',85); insert into sc values('20082448','3',88); insert into sc values('20082447','1',92); insert into sc values('20082447','2',93); insert into sc values('20082447','3',98);2.删除数据删除“信息系统”这门课delete from cwhere cname=’信息系统’;(3)利用查询分析器实现数据查询1.单表查询查询所有学生的信息Select * from s;结果如下图:2.连接查询查询每个学生及其选修课的情况select s.*,sc.*from s,scwhere s.sno=sc.sno;结果如下图:3.嵌套查询查询与徐昕在一个系的学生select sdept,sno,sname from swhere sdept in( select sdeptfrom swhere sname='徐昕');结果如下图:(4)视图的定义和使用1.视图的定义建立计算机科学与技术系学生的视图,语句如下:create view CS_studentasselect Sno,Sname,Sage,Ssex from swhere sdept='计算机科学与技术'2.查询视图在计算机科学与技术系学生的视图中找出年龄<=21岁的学生select sno,sname,sagefrom CS_studentwhere sage<=21;结果如下图:3.更新视图将计算机科学与技术系学生视图CS_student中学号为20083838的学生姓名改为周星,语句如下:update IS_studentset sname=’周星’where sno=’ 20083838’五、实验小结通过本次实验,我初步掌握了SQL Server 2000的基本使用。
数据库原理与应用实验6(二版)

数据库原理与应用实验6(二版)实验六 T-SQL数据库单表查询一、实验目的及要求本实验主要目的是让学生通过本实验掌握基于一个表的SELECT语句的使用语法及使用规则,并能运用各种常用的查询方式及其形式。
●掌握SELECT语句的基本语法结构。
●掌握SQL语句中基于一个表的SELECT语句的使用规则和方式。
●能正确设置各种常用查询条件。
●掌握分组汇总查询的使用。
●要求学生不但写出语句,而且要执行语句,得到结果。
二、实验原理及背景知识1、了解SQL中SELECT语句的基本使用方式。
详情参考第一篇第三章。
2、理解关系代数中投影运算和选择运算的概念及原理。
简单来讲,SELECT实现的是投影,where实现选择运算。
3、实验前需要了解所使用的数据库中表的结构。
4、实验前需要在stuManag数据库中输入模拟数据。
三、实验内容及步骤Ⅰ:基本实验内容(一)输入下面的查询语句,执行后验证实验结果1、查询100165专业的学生的学号、姓名、性别和出生年月信息SELECT sno,sname,ssex,sbirthFROM studentWHERE mno=‘100165’2、查询职称不是教授的所有教师的全部信息SELECT *FROM teacherWHERE trank< >‘教授’3、查询不姓陈的学生学号和姓名信息SELECT sno,snameFROM studentWHERE sname NOT LIKE ‘陈%’4、查询100165专业中1991年之前出生的学生的学号、姓名、性别及出生年月信息SELECT sno,sname,ssex,sbirthFROM studentWHERE (mno=‘100165’) AND (sbirth <‘1991/01/01’)5、查询所有学生的序号、姓名及年龄信息,其中年龄由出生年月转换得到SELECT sno,sname,CAST((GETDATE()-sbirth)AS int)/365 AS ‘年龄’FROM student6、查询所有学生的学号、姓名、性别及出生年月信息,按照专业号升序、出生年月降序排列SELECT sno,sname,Ssex,sbirth,mnoFROM studentORDER BY mno,sbirth DESC7、查询091650102同学的所有课程的平均分、最高分和最低分SELECT AVG(grade) AS 平均分,MAX(grade) AS 最高分,MIN(grade) AS 最低分FROM skcWHERE sno=‘091650102’(二)输入下面查询语句,然后运行,根据结果思考并记录其功能1、SELECT *FROM skcWHERE Grade between 80 and 85功能:_________________________________________________2、SELECT count(*) as ‘0916501班人数’FROM studentWHERE sno like ‘0916501%’功能:_________________________________________________3、SELECT COUNT(*) AS ‘信管专业女学生人数‘FROM studentWHERE mno=‘100165’ AND ssex=‘女’功能:_________________________________________________4、SELECT DISTINCT SUBSTRING(sname,1,1)FROM student功能:_________________________________________________5、SELECT sno,sname,ssex,mnoFROM studentWHERE mno IN (‘100165’,’201148’,’100838’)功能:_________________________________________________6、SELECT sno,snameFROM studentWHERE sname LIKE ‘[陈李]%’功能:_________________________________________________7、SELECT kno,avg(Grade ) as ‘平均分’from skcWHERE sno like ‘09165%’GROUP BY kno功能:_________________________________________________(三)阅读并分析下面查询语句,根据其功能,补全语句之后进行验证1、查询0916502班超过5人选修的课程选修人数及平均分。
《数据库原理》学生实验报告

Char(15)
班级
班级的编号,参照表Class
StuAddr
Char(20)
住址
Birthday
Datetime
出生年月
Height
Int
身高
以厘米为单位表示学生的身高
代码:
B、Class表结构
字段名
类型
中文名
备注
Clsno
Char(15)
班号
主键
Clsname
Char(16)
班名
对班级的描述信息
4.将计算机科学系全体学生的成绩置零。
5.删除学号为20100250的学生记录
6.删除计算机科学系所有学生的选课记录
实验3数据库的查询和视图
一实验目的
1、通过Select的使用,掌握Select语句的结构及其应用
2、掌握创建索引、和删除索引的SQL语句
3、掌握创建、查询、更新、修改和删除视图的SQL语句
7.查询学生的学号、姓名、选修的课程及成绩
8.求选修课程号为‘0003’且成绩在90以上的学生学号、姓名和成绩
9.查询每一门课程的间接先修课(即先修课的先修课)
二、索引
1.利用查询分析器为学生student表创建一个基于height的非聚集索引,创建一个基于sno的聚集索引,创建一个基于sname的唯一索引,其中按height按升序排列,sno按降序排列,sname按升序排列
2.删除所建立的非聚集索引
三、视图的创建、查询、修改和删除
1.为学生student表创建一个视图V_student,以显示学生的学号、姓名、出生年份等基本信息
2.创建一个视图V_SCG,以显示0001号课程的学生成绩信息,如学号、姓名、课程名称、成绩和学分等。
数据库原理综合实验报告

实验六数据库原理综合实验1实验目的(1)运用所学的数据库设计技术,针对一个具体的应用系统,完成系统数据库的概念模型、逻辑模型和物理模型的设计。
以巩固理论课程上所学的知识,更好地掌握数据库设计技术方法。
(2)对前面章节所学的知识加以综合应用。
2实验内容给定一个应用环境,如学生选课系统、超市管理系统、某企业库存管理系统、学校图书管理系统、学校综合积分管理系统等等。
(同学们课从上述选定一个题目,也可以选取一个自己较熟悉的应用环境)。
完成下面的工作2.1 数据库概念模型设计(1)进行需求分析。
-对系统的语义进行描述(包括功能、所需的数据及他们之间的关系和处理方法)(2)识别系统中的实体及实体的属性,分析实体之间的联系。
(3)设计数据库概念模型,画出E-R图。
2.2 数据库逻辑模型设计(1)根据数据库概念模型设计数据库的逻辑模型。
-将E-R模型转化到逻辑模型(2)根据应用需要和规范化理论对逻辑模型进行优化。
2.3 数据库物理模型设计(1)针对某种DBMS,设计数据库物理模型,包括表空间、表和索引等于物理存储有关的设计。
(2)优化物理模型(3)生成某种DBMS的SQL语句,创建数据库及其表。
2.4 装载数据(1)收集真实数据或者生成模拟数据。
(2)批量加载数据到数据库中。
(3)设计一系列SQL语句,尤其是连接查询、嵌套查询等SQL语句,以测试数据库性能。
3实验要求(1)可以借助POWERDESIGNER等系统分析与设计辅助工具进行数据库设计,也可以使用WORD文件直接生成各种设计文档。
(2)选择的数据库应用系统应该规模适中,不宜太大太复杂,可能做不完;也不宜太小太简单,甚至仅有三两个表组成。
(3)要设计良好的数据库完整性约束。
(4)思考题:数据库设计通常由哪些辅助工具?各有哪些优缺点?4实验步骤4.1 数据库概念模型设计(1)进行需求分析。
学生需要有学号、姓名、性别、年龄、专业等信息。
选课需要有学号、课号、成绩等信息课程需要有课程号、课程名、先修课、学分等信息(2)设计数据库概念模型,画出E-R图。
《数据库原理》实验讲义

-《数据库原理》课程设计讲义一、开设本课程设计的目的本课程是计算机专业中一门重要的专业理论课。
为配合《数据库原理》课程的教学,通过模拟DBMS的实现,更深刻地领会DBMS的工作原理和实现方法,从而具有初步开发系统软件的实际能力,特开设此课程设计。
二、课程设计的题目用高级程序设计语言实现《DBMS原型设计与实现》。
三、课程设计的主要内容通过模拟DBMS的实现,使学生系统地掌握关系代数语言的运算功能;了解DBMS的DDL、DML、DCL等功能的实质含义;掌握结构化设计方法;了解大型软件的设计技术。
四、课程设计的具体内容和要求1、创建数据库(DDL)功能模拟在熟悉和掌握某一关系数据库语言的基础上,用高级程序设计语言创建数据库。
具体包括:(1)建立“建库”功能的总体菜单,包括建立库结构、输入数据、显示数据库结构和内容、退出等功能。
(2)实现建立数据结构的功能。
要求:①能输入任意库名(即关系名)②字段个数、名称任意给定(包括字段名、字段类型、长度任意)。
(3)实现输入数据库记录的功能。
(4)实现显示数据库结构和内容(最好以表格形式显示)(5)实现对主关键字的索引功能。
(6)实现建立视图的功能。
(7)建立数据字典保存三级模式中有关视图、基本表、存储文件的定义。
2、关系代数运算(DML)功能模拟将关系代数语言的选取、投影、连接运算公式进行等价变换,以便输入计算机,被计算机接受和识别。
(1)用高级程序设计语言做工具,实现关系代数语言中集合(2)采用索引的方式,用高级语言实现数据库系统中选取运算的功能。
包括带有“与”、“或”条件的查询,并以表格形式显示的运算结果。
(3)用高级语言实现数据库系统中投影运算的功能。
并以表(4)采用索引的方式,用高级程序语言实现关系代数语言自然连接、等值连接等运算功能。
并以表格形式显示的运算结果。
3、关系演算(DML)功能模拟(1)系统掌握DBMS中关系演算语言的功能,以QUEL语言为样本,用C语言实现对用规定符号表达的简单查询命令行进行识(2)熟悉QUEL语言的查询功能,用高级语言模拟实现对含有“与”、“或”、“非”符号的命令行进行识别,并以表格形式显示4、关系数据库系统的查询优化掌握关系数据库的查询优化技术,用高级语言实现启发式关系代数优化算法以及启发式关系演算优化算法。
数据库原理实验教案

数据库原理实验教案一、实验目的与要求1. 实验目的(1)了解数据库的基本概念和原理;(2)掌握数据库的创建、操作和管理方法;(3)培养实际操作数据库的能力。
2. 实验要求(1)熟悉计算机操作系统和数据库管理系统;(2)了解SQL语言的基本用法;(3)具备一定的编程基础。
二、实验环境与工具1. 实验环境(1)操作系统:Windows 10;(2)数据库管理系统:MySQL 8.0;(3)编程语言:Python 3.8。
2. 实验工具(1)MySQL数据库客户端;(2)Python编程环境;(3)文本编辑器或集成开发环境(IDE)。
三、实验内容与步骤1. 实验内容(1)创建数据库和表;(2)插入、查询、更新和删除数据;(3)数据库备份与恢复;(4)数据库安全与权限管理;(5)使用Python编程语言操作数据库。
2. 实验步骤(1)打开MySQL客户端,连接到数据库服务器;(2)创建数据库和表,定义字段和约束;(3)使用SQL语句插入、查询、更新和删除数据;(4)进行数据库备份和恢复操作;(5)设置数据库用户权限和安全策略;(6)使用Python编程语言连接数据库,实现数据操作。
四、实验注意事项1. 实验过程中,要严格遵守实验室规定,保持安静,爱护设备;2. 实验操作前,仔细阅读实验指导书,确保掌握实验内容;3. 遇到问题,应及时请教老师或同学,共同探讨解决方法;五、实验评价与反馈1. 实验评价(1)数据库创建和表设计的合理性;(2)SQL语句的正确性和效率;(3)Python编程语言操作数据库的能力;(4)实验报告的完整性、准确性和条理性。
2. 实验反馈(2)同学互评:相互评价,相互学习,共同进步;(3)教师评价:对学生的实验成果进行点评,给予指导和建议。
六、实验案例与分析1. 案例一:创建学生信息管理系统(1)设计数据库和表结构;(2)使用SQL语句实现数据的插入、查询、更新和删除;(3)编写Python程序操作学生信息管理系统。
数据库原理实验指导书(含触发器及存储过程)范文

数据库原理实验指导实验 1 SQL Server2000管理工具的使用一、目的与要求1.掌握SQL Server服务器的安装2.掌握企业管理器的基本使用方法3.掌握查询分析器的基本使用方法4.掌握服务管理器的基本使用方法5.对数据库及其对象有一个基本了解6.掌握用企业管理器和查询分析器创建数据库,修改数据库和删除数据库的方法。
二、实验准备1.了解SQL Server各种版本安装的软、硬件要求2.了解SQL Server支持的身份验证模式3.了解SQL Server各组件的主要功能4.对数据库、表和数据库对象有一个基本了解5.了解在查询分析器中执行SQL语句的方法三、实验内容1.安装SQL Server 2000 根据软硬件环境,选择一个合适版本的SQL Server 2000。
2.利用企业管理器访问系统自带的pubs数据库。
(1)启动SQL Server服务管理器。
通过“开始=>程序=>Microsoft SQL Server=>服务管理器”打开“SQL Server服务管理器”,启动“SQL Server服务管理器”,并记录当前运行的服务器名。
图1.1 启动SQL Server服务管理器(2)启动企业管理器。
通过“开始=>程序=>Microsoft SQL Server=>企业管理器”打开“SQL Server Enterprise Manager”图1.2 启动企业管理器(3)在企业管理器的树形目录中展开数据库,找到pubs并展开,则列出该数据库的所有对象,如表、视图、存储过程、默认和规则等。
(4)选中“表”,将列出pubs数据库的所有表(包括系统表和用户表),在此以用户表publishers为例,选中该表,单击鼠标右键,弹出快捷菜单,执行“打开表—返回所有行”菜单项,打开该表,查看其内容。
(5)在表的尾部插入记录(9943,zhang,Beijing,null,china)和记录(1408,li,shanghai,null,china)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六:关系图、索引和视图的定义及维护答案
一、实验目的
1.掌握创建关系图的方法。
2.掌握创建、查看和删除索引的操作和方法。
3.理解视图的含义,能使用SQL Server企业管理器创建视图并对其进行管
理。
二、实验环境
已安装SQL Server 企业版的计算机(120台);
具有局域网环境,有固定IP;
三、实验学时
2学时
四、实验要求
1.索引和视图的创建和管理也可以用查询分析器实现,参照课本上的相关
Transact-SQL命令,写出对应的Transact-SQL实现代码。
2.将视图的创建、修改、删除过程与实验二中表的创建、修改、和删除进
行对照,看看有什么相同点和不同点。
3.完成实验报告;
五、实验内容及步骤
以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现第1题操作,其余题目用SQL Server2005界面及T-SQL 语句实现:
1.使用创建数据库关系图向导为学生选课数据库中的Student表,Course
表,SC表创建关系图。
2.为Student表创建一个基于Sname(姓名)的按降序排列的聚簇索引
Stusname。
create clustered index stusname on student(Sname desc)
3.为学生—课程数据库中的Student,Course,SC 3 个表建立索引。
其中
student按学号升序建唯一索引,course按课程号升序建唯一索引,SC
按学号升序和课程号降序建唯一索引,索引名称分别为
Stusno,Coucno,Scno。
create unique index stusno on student(sno)
create unique index coucno on course(cno)
create unique index scno on sc(Sno,cno desc)
4.删除 Student表中的Stusname索引。
DROP INDEX Student.Stusname
5.创建信息系男学生基本信息视图stu_is,包括学生的学号、姓名及年龄,
并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。
CREATE VIEW stu_is
AS
SELECT Sno,Sname,Sage FROM Student
WHERE Sdept='IS' AND Ssex='男'
WITH CHECK OPTION
6.建立信息系选修了1号课程的学生视图stu_is_c1(学号,姓名,成绩)。
CREATE VIEW stu_is_cl(学号,姓名,成绩)
AS
SELECT Student.Sno,Sname,Grade FROM Student,SC
WHERE Sdept='IS' AND Student.Sno=SC.Sno AND Cno='1'
7.建立信息系男同学年龄在19岁以上学生信息的视图stu_is_age。
(使用
第5题的视图)
CREATE VIEW stu_is_age
AS
SELECT * FROM stu_is WHERE Sage>19
8.查询信息系男同学年龄在19岁以上的学生信息。
SELECT * FROM stu_is_age
9.查询信息系选修了1号课程且成绩大于 80的学生成绩信息。
Select * from stu_is_c1 where grade>80
10.向视图stu_is中插入一个新的学生记录,学号为200515027,姓名为王
唔,年龄为20。
INSERT INTO stu_is VALUES('200515027','王唔',20)
11.向视图stu_is_c1中插入一个新的学生记录,学号为200515027,姓名
为王唔,成绩为60。
INSERT INTO stu_is_cl VALUES('200515027','王唔',60)
12.将视图stu_is中学号为“200515004”的学生姓名改为“张珊”。
UPDATE stu_is
SET Sname='张珊'
WHERE Sno='200515004'
13.将视图stu_is_c1中学号为“200515006”的学生成绩改为75。
update stu_is_c1
set 成绩=75
where 学号='200515006'
14.删除视图stu_is中学号为“200515020”的学生记录。
DELETE FROM stu_is
WHERE Sno='200515020'
15.将stu_is视图修改为只包含信息系学生学号、姓名及年龄。
ALTER VIEW stu_is
AS
SELECT Sno,Sname,Sage FROM Student
16.同时删除视图stu_is和stu_is_age。
DROP VIEW stu_is,stu_is_age
思考题:1.考虑一下视图的作用,在什么样的情况下需要建立视图?
2.索引、视图和基本表有什么不同 ?
六、出现问题及解决办法
如:某些操作无法执行,如何解决?。