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

数据库原理实验教案第一篇:数据库原理实验教案《数据库原理》课程实验实验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的基本使用。
《数据库原理》学生实验报告

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)掌握数据库的创建、操作和管理方法;(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程序操作学生信息管理系统。
数据库原理实验报告

数据库原理实验报告数学与计算机学院数据库原理实验课程编号:课程名称:数据库原理实验英⽂名称:Principle of Database学分:1学时:18适⽤年级专业(学科类):计算机科学与技术、⽹络⼯程、软件⼯程、信息与计算等专业⼀、课程概述(⼀)课程性质《数据库原理实验》是计算机科学与技术、⽹络⼯程、软件⼯程、信息与计算等专业的专业必修课程。
《数据库原理》课程的实践环节。
通过上机实验,使学⽣真正深层次了解数据库系统的体系结构,掌握数据库系统的基础理论、技术和⽅法,掌握主流数据库管理系统SQL Server 2000的应⽤技术及数据库应⽤系统的设计、开发能⼒。
该课程的学习可以很好地帮助学⽣理解、掌握理论课所学的理论知识,提⾼学⽣处理实际问题的能⼒,培养并提⾼学⽣的专业素质。
本课程实验采⽤实验教学和学⽣实验相结合⽅式,使学⽣真正领会、理解、掌握理论课教学中讲解的数据库原理的基础知识和基本⽅法,正确灵活地运⽤学到知识,提⾼学⽣解决实际问题的能⼒。
(⼆)教学⽬标与要求通过实践环节使学⽣理解、掌握课堂教学内容,重点理解并掌握数据库系统的基本概念、基本原理和基本⽅法。
要求学⽣通过实验课程的学习,重点掌握构建信息管理系统的⽅法、步骤。
培养学⽣应⽤所学知识处理具体问题的能⼒,为学⽣将来从事相关⼯作奠定坚实的基础。
(三)重点和难点教学重点:1.数据库、表、视图、索引、主键的建⽴;2.SELECT语句进⾏各种查询;教学难点:触发器及存储过程。
(四)与其他课程的关系本课程是计算机科学与技术等相关专业的专业程,要求有数据结构和程序设计等基础知识。
(五)教材及教学参考书1.《数据库系统概论》(第4版),萨师煊王珊主编,⾼等教育出版社,2006;2.《数据库系统原理》,李建中,电⼦⼯业出版社,2004;3.《数据库系统原理教程》,王珊,陈红,清华⼤学出版社, 2005;4.《数据库系统教程》,施伯乐著,⾼等教育出版社,2003;5.《数据库系统原理与应⽤教程》,闪四清编著,清华⼤学出版社,2001。
数据库原理实验

实训一数据库和表的创建实训目的(1) 掌握数据库和表的基础知识。
(2) 掌握使用企业管理器和Transact-SQL语句创建数据库和表的方法。
(3) 掌握数据库和表的修改、查看、删除等基本操作方法。
实训内容和要求1.数据库的创建、查看、修改和删除(1) 使用企业管理器创建数据库创建成绩管理数据库Grademanager,要求见表10-1。
表10-1 Grademanager数据库参数表(2) 查看与修改数据库属性①在企业管理器中查看创建后的grademanager数据库,查看grademanager_data.mdf、grademanager_log.ldf两个数据库文件所处的文件夹。
②使用企业管理器更改数据库。
更改的参数见表10-2。
表10-2 要更改的参数表(3) 使用企业管理器删除该数据库- 1 -(4) 使用Transact-SQL命令创建上述要求的数据库(5) 使用Transact-SQL命令查看和修改上述要求的数据库(6) 使用Transact-SQL命令删除该数据库2.表的创建、查看、修改和删除(1) 在Grademanager数据库中创建如表10-3、表10-4和表10-5所示结构的表。
表10-3 Student表的表结构表10-4 Course表(课程名称表)的表结构表10-5 SC表(成绩表)的表结构(2) 向表10-3、表10-4和表10-5输入数据记录,见表10-6、表10-7和表10-8。
23 表10-6 学生关系表Student表10-7课程关系表Course表10-8 成绩表SC(3) 修改表结构。
① 向student 表中增加“入学时间”列,其数据类型为日期时间型。
② 将student 表中的sdept 字段长度改为20。
③ 将student 表中的Speciality 字段删除。
(4) 删除student 表。
思考题(1) SQL Server 的数据库文件有几种?扩展名分别是什么?(2) SQL Server 2000中有哪几种整型数据类型?它们占用的存储空间分别是多少?取值范围分别是什么?(3) 在定义基本表语句时,NOT NULL 参数的作用是什么? (4) 主码可以建立在“值可以为NULL ”的列上吗?实训二 单表查询实训目的(1) 掌握SELECT 语句的基本用法。
《数据库原理》所有实验

《数据库原理》所有实验实验1、数据定义1.1实验目的熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。
1.2实验内容●用企业管理器创建数据库University_Mis●使用CREATE语句创建基本表.●更改基本表的定义:增加列,删除列,修改列的数据类型。
●创建表的升、降序索引。
●删除基本表的约束、基本表的索引或基本表。
1.3实验步骤(1)用企业管理器创建数据库University_Mis(2)在查询分析器中用SQL语句创建关系数据库基本表:学生表Students(Sno,Sname, Semail,Scredit,Sroom);教师表Teachers(Tno,Tname,Temail,Tsalary);课程表Courses(Cno,Cname,Ccredit);成绩表Reports(Sno,Tno,Cno, Score);其中:Sno、Tno、Cno分别是表Students、表Teachers、表Courses的主键,具有唯一性约束,Scredit具有约束“大于等于0”; Reports中的Sno,Tno,Cno是外键,它们共同组成Reports的主键。
(3)更改表Students:增加属性Ssex(类型是CHAR,长度为2),取消Scredit“大于等于0”《数据库原理》所有实验约束。
把表Courses中的属性Cname的数据类型改成长度为30。
(4)删除表Students的一个属性Sroom。
(5)删除表Reports。
(6)为Courses表创建按Cno降序排列的索引。
(7)为Students表创建按Sno升序排列的索引.(8)创建表Students的按Sname升序排列的唯一性索引。
(9)删除Students表Sno的升序索引。
实验2、SQL的数据查询2.1实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
数据库原理实验

附录:实验指导书实验一熟悉数据库管理系统环境一、实验目的:1.了解SQL Server2008的基本安装和配置。
2.掌握SQL Server2008常用工具的基本操作方法。
3.了解SQL SERVER2008数据库及其表对象的建立方法。
二、实验内容和主要步骤:1.参照相关文档进行SQL Server 2008的安装和配置;2.打开SQL Server 2008 SSMS工具,进行简单操作;3.在SQL Server 2008 SSMS工具的目录树中展开数据库文件夹,新建一个test数据库,然后展开tesst数据库图标,则列出数据库的所有对象;4.选中test下的“表”图标,则列出数据库的所有表(里面是空的)。
5.利用SSMS建立如下三个表,按下面的列表中的字段名(英文)、类型和宽度建立:(注意主键、外键的建立,并输入数据体会实体完整性和参照完整性规则,部分列可以尝试用户定义的完整性规则)表1s t u d e n t(学生)字段名字段说明类型字段大小小数位数s n o学号C h a r8s n a m e姓名V a r c h a r8s s e x性别C h a r2s d e p t系别Varchar 20s a g e年龄I n t整型表2c o u r s e(课程)字段名字段说明类型字段大小小数位数c n o课程号C h a r3c n a m e课程名称V a r c h a r20C r e d i t学分N u m e r i c1C p n o系别c h a r3表3s c(选修)字段名字段说明类型字段大小小数位数s n o学号C h a r8c n o课程号C h a r3G r a d e成绩n u m e r i c16.向三个表中输入数据;7.备份数据库及数据,以备后面实验使用;三、实验要求:1.独立完成SQL Server 2008数据库常用操作2.写出实验报告(在实验系统上完成)实验二数据定义一、实验目的:1.熟练掌握SQL语言进行基本表结构的创建。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八:数据库的完整性约束答案
一、实验目的
1.掌握主键约束、外键约束及及check约束的用法;
2.掌握默认值约束的应用;
3.了解规则、触发器的使用。
二、实验环境
已安装SQL Server 企业版的计算机;
具有局域网环境,有固定IP;
三、实验学时
2学时
四、实验要求
1.熟悉数据库完整性相关概念及约束;
2.了解约束、默认值及规则;
3.完成实验报告;
五、实验内容及步骤
以系统管理员身份登录到SQL Server服务器,并使用T-SQL语句实现以下操作;
1.请用至少2种方法定义stu数据库中student表的主键sno;
○1------列级定义------
create database stu;
create table student
(sno char(12) primary key
)
○2------表级定义------
create database stu;
create table student
(sno char(12)
primary key (sno)
)
2.将数据库stu的表course的cno字段定义为主键,约束名称为cno_pk;
alter table course
add constraint cno_pk primary key(cno)
3.为表course中的字段cname添加唯一值约束;
alter table course
add constraint cname_pk unique (cname)
4.将数据库stu的表sc的sno及cno字段组合定义为主键,约束名称为
sc_pk;
alter table sc
add constraint sc_pk primary key (sno,cno)
5.对于数据表sc的sno、cno字段定义为外码,使之与表student的主码
sno及表course的主码cno对应,实现如下参照完整性:
1)删除student表中记录的同时删除sc表中与该记录sno字段值相同
的记录;
2)修改student表某记录的sno时,若sc表中与该字段值对应的有若
干条记录,则拒绝修改;
3)修改course表cno字段值时,该字段在sc表中的对应值也应修改;
4)删除course表一条记录时,若该字段在在sc表中存在,则删除该
字段对应的记录;
5)向sc表添加记录时,如果该记录的sno字段的值在student中不存
在,则拒绝插入;
alter table sc
add constraint sc_fk foreign key (sno)references student(sno) on delete cascade on update no action,
foreign key (cno)references course(cno)on delete cascade on update cascade
go
6.定义check约束,要求学生学号sno必须为9位数字字符,且不能以0
开头,第二三位皆为0;
alter table student
add constraint sno_ck
check(sno like'[1-9]00[0-9][0-9][0-9][0-9][0-9][0-9]')
7.定义stu数据库中student表中学生年龄值在16-25范围内;
alter table student
add constraint sage_ck
check(sage between 16 and 25)
8.定义stu数据库中student表中学生姓名长度在2-8之间;
alter table student
add constraint sname_ck
check (len(sname) between 2 and 8)
9.定义stu数据库中student表中学生性别列中只能输入“男”或“女”;
alter table student
add constraint ssex_ck
check(ssex in('男','女'))
10.定义stu数据库student表中学生年龄值默认值为20;
alter table student add constraint s_age
default 20 for sage
11.修改student表学生的年龄值约束可以为15-30范围内;
alter table student
drop constraint sage_ck
go
alter table student
add constraint sage_ck
check(sage>=15 and sage<=30)
12.删除上述唯一值约束、外键约束及check约束;
alter table course
drop constraint cname_pk
go
alter table sc
drop constraint sc_fk
go
alter table student
drop constraint sno_ck,sage_ck,sname_ck,ssex_ck
13.思考题:定义规则对象,用于保证course表中cno字段值为5个数字字
符;(可选做)
create rule c_cno
as @a like '[0-9][0-9][0-9][0-9][0-9]'
go
exec sp_bindrule 'c_cno','o'
14.思考题:向sc表中插入或修改一条记录时,通过触发器检查记录sno
字段的值在student表中是否存在,若不存在,则取消插入或修改操作;
(可选做)
create trigger abc on sc
for insert,update
as
if (select sno from inserted) not in(select sno from student)
begin
rollback transaction
end
15.思考题:删除student表中一条记录的同时删除其在sc表中对应的记录;
(参照完整性、触发器均可实现)
create trigger de_stu on student
for delete
as begin
delete from sc where sno in(select sno from deleted)
end
六、出现问题及解决办法
如:某些操作无法执行,如何解决?。