08计科《数据库原理》实验8
- 格式:doc
- 大小:47.00 KB
- 文档页数:4
数据库原理实验教案第一篇:数据库原理实验教案《数据库原理》课程实验实验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)“数据库文件”列表中包括两行,一个是数据文件,一个是日志文件。
通过单击下面相应的按钮可以添加或删除相应的数据文件。
λ逻辑名称:指定该文件的文件名。
λ文件类型:用于区别当前文件是数据文件还是日志文件。
λ文件组:显示当前数据库文件所属的文件组。
计算机与信息学院数据库原理实验报告专业班级:计算机科学与技术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的基本使用。
数据库原理实验教案一、实验目的与要求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语言进行基本表结构的创建。
数据库原理实验报告实验⼀熟悉SQL Server 2008环境及SQL 语⾔实验内容和步骤:1.⼿动建库:打开SQL Server 2008企业管理器,建⽴1个名为StudentDB1,数据⽂件名为StudentDB1_data、⼤⼩为10M,⽇志⽂件名为StudentDB1_log、⼤⼩为5M的新数据库;2. ⼿动建表:为数据库StudentDB1创建四个表,教师T、课程C、学⽣S、选课SC,其结构为:Ø 教师表T(教师号T#,教师名字TNAME,职称TITLE);Ø 课程表C(课程号C#,课程名称CNAME,教师号T#);Ø 学⽣表S(学号S#,学⽣姓名SNAME,年龄AGE,性别SEX);Ø 选课表SC(学号S#,课程号C#,成绩,GRADE)。
将 S# C# 设置为外键3.通过SQL语句建库:在企业管理器中,使⽤SQL语句建⽴名为StudentDB2,数据⽂件名为StudentDB2_data、⼤⼩为10M,⽇志⽂件名为StudentDB2_log、⼤⼩为5M的新数据库;(要求每个同学建⽴的数据库的名称为⾃⼰的学号,替换StudentDB2,注意全为数字名称的数据库在SQL语句中的⽤法)create database[201811040806]--数据库名on primary(name ='201811040806_data',--数据⽂件名filename ='E:\数据库\数据库实验\201811040806_data.mdf',--地址size=10,--初始⼤⼩maxsize=50,--最⼤⼤⼩filegrowth=1--增长速率)log on(name ='201811040806_log',--⽇志⽂件名filename ='E:\数据库\数据库实验\201811040806_log.ldf',size=5,maxsize=12,filegrowth=10%)4.利⽤SQL语句,按照列表中的字段名(英⽂)、类型建⽴如下四个表结构:Ø 教师表T(教师号T#,教师名字TNAME,职称TITLE);use[201811040806]--调⽤数据库create table T(T# char(10) NOT NULL,--char 类型数据为固定长度,不满⾃动补空格TNAME nvarchar(5) NOT NULL,--varchar 类型数据为可变长度,不满不会⾃动补空格;若有中⽂,前⾯ + nTITLE nvarchar(5),primary key (T#)--设置主键);Ø 课程表C(课程号C#,课程名称CNAME,教师号T#);use[201811040806]create table C(C# char(10) NOT NULL,CNAME nvarchar(10) NOT NULL,T# char(10) NOT NULL,primary key(C#),foreign key(T#) references T(T#)--设置外键);Ø 学⽣表S(学号S#,学⽣姓名SNAME,年龄AGE,性别SEX);use[201811040806]create table S(S# char(10) NOT NULL,SNAME nvarchar(5) NOT NULL,AGE int NOT NULL,SEX bit NOT NULL,primary key(S#));Ø 选课表SC(学号S#,课程号C#,成绩,GRADE)。
数据库原理实验报告目录一、实验目的 (2)1. 熟悉数据库的基本概念和原理 (2)2. 掌握数据库的设计方法和技巧 (3)3. 学会使用SQL语言进行数据操作和管理 (5)二、实验内容 (6)1. 数据库基本概念 (7)2. 数据库设计 (9)3. SQL语言基础 (9)4. SQL语句练习 (11)5. 数据库管理与维护 (12)三、实验步骤与结果 (13)1. 数据库基本概念 (15)数据库的定义和特点 (16)关系型数据库的基本结构 (17)数据库管理系统(DBMS)的功能和组成部分 (19)2. 数据库设计 (20)需求分析 (22)概念模型设计 (23)逻辑模型设计 (25)物理模型设计 (26)3. SQL语言基础 (27)SQL语言的基本语法 (28)SQL语句的分类和功能 (30)SQL语句的操作对象 (31)4. SQL语句练习 (32)5. 数据库管理与维护 (34)数据库备份与恢复 (35)数据库优化与调整 (36)数据库安全与权限管理 (38)四、实验总结与展望 (39)1. 本实验的主要收获和体会 (40)2. 在实际工作中遇到的困难和问题及解决方法 (41)3. 对未来学习和工作的展望 (42)一、实验目的本次数据库原理实验的主要目的是加深对数据库管理系统原理的理解,掌握数据库的基本操作,并学会使用SQL语言进行数据库的查询、插入、更新和删除等操作。
通过实际操作,培养学生的数据库设计能力和解决实际问题的能力,为后续的数据库课程学习和职业生涯打下坚实的基础。
实验还旨在提高学生的动手实践能力和团队协作精神,为未来的学习和工作积累宝贵的经验。
1. 熟悉数据库的基本概念和原理数据库是存储数据的集合,这些数据可以是关于企业、组织或个人的信息。
它提供了一个有组织的数据存储环境,可以高效、有序地存储和管理大量的数据。
在现代信息技术中,数据库管理系统(DBMS)作为支持数据存储和操作的核心软件工具发挥着至关重要的作用。
实验八:数据库的完整性约束答案
一、实验目的
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
六、出现问题及解决办法
如:某些操作无法执行,如何解决?。