《数据库原理及应用》数据操纵功能的实现与视图索引的创建实验报告
- 格式:doc
- 大小:263.00 KB
- 文档页数:7
第1篇一、实验目的1. 理解数据库系统的基本概念和原理。
2. 掌握数据库的创建、修改、删除和查询等基本操作。
3. 熟悉SQL语言,并能够运用SQL语言进行数据库的操作。
4. 了解数据库的安全性和完整性控制方法。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:Visual Studio Code三、实验内容1. 数据库的创建与修改2. 数据表的创建与修改3. 数据的插入、删除和查询4. 视图的创建与修改5. 存储过程的创建与调用6. 数据库的安全性与完整性控制四、实验步骤1. 数据库的创建与修改(1)创建数据库```sqlCREATE DATABASE mydb;``````sqlALTER DATABASE mydb CHARACTER SET utf8;```2. 数据表的创建与修改(1)创建数据表```sqlCREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT,gender CHAR(1));```(2)修改数据表```sqlALTER TABLE students ADD COLUMN email VARCHAR(50);```3. 数据的插入、删除和查询(1)插入数据```sqlINSERT INTO students (id, name, age, gender) VALUES (1, '张三', 20, '男');``````sqlDELETE FROM students WHERE id = 1; ```(3)查询数据```sqlSELECT FROM students;```4. 视图的创建与修改(1)创建视图```sqlCREATE VIEW student_info AS SELECT id, name, age, genderFROM students;```(2)修改视图```sqlALTER VIEW student_info ASSELECT id, name, age, gender, email FROM students;```5. 存储过程的创建与调用(1)创建存储过程```sqlDELIMITER //CREATE PROCEDURE get_student_info(IN student_id INT)BEGINSELECT FROM students WHERE id = student_id;END //DELIMITER ;```(2)调用存储过程```sqlCALL get_student_info(1);```6. 数据库的安全性与完整性控制(1)设置用户权限```sqlGRANT SELECT, INSERT, UPDATE, DELETE ON mydb. TO 'username'@'localhost' IDENTIFIED BY 'password';```(2)设置数据完整性```sqlALTER TABLE students ADD CONSTRAINT chk_age CHECK (age >= 18);```五、实验结果与分析1. 数据库创建成功,字符集设置为utf8。
数据库索引实验总结一、实验目的本次实验旨在通过实际操作,深入理解数据库索引的工作原理及优化方法。
通过创建、修改和删除索引,观察查询性能的变化,从而更好地在实际应用中选择和设计合适的索引。
二、实验内容1. 创建索引:在数据库表上创建不同类型的索引,如单列索引、复合索引等。
2. 索引查询性能测试:对带有索引的表进行查询,观察查询性能的提升。
3. 索引维护:更新、删除索引,观察其对查询性能的影响。
4. 索引优化:根据查询需求,优化索引设计,提高查询效率。
三、实验过程1. 创建索引:选择合适的表和列,创建单列索引和复合索引。
使用相应的SQL语句,例如`CREATE INDEX index_name ON table_name (column_name);`。
2. 查询性能测试:使用SELECT语句对带有索引的表进行查询,并记录查询时间。
与未带索引的表查询时间进行对比,观察查询性能的提升。
3. 索引维护:更新、删除索引,观察查询性能的变化。
例如,使用`ALTER TABLE table_name DROP INDEX index_name;`删除索引。
4. 索引优化:根据查询需求和数据量,调整索引设计。
例如,添加或删除列、调整索引类型等。
观察优化后的查询性能。
四、实验结果通过实验,我们发现创建索引可以有效提高查询性能。
单列索引适用于在某列上频繁进行查询的情况,而复合索引适用于多列同时进行查询的情况。
同时,我们也发现不合理的索引设计可能会降低性能,因此需要根据实际需求进行优化。
五、实验总结通过本次实验,我们深入了解了数据库索引的工作原理及优化方法。
在实际应用中,应根据查询需求和数据量合理选择和设计索引,以提高数据库的查询效率。
同时,需要注意避免过度索引和不合理的设计,以免降低数据库性能。
数据库视图实验报告一、实验目的本次实验的主要目的是深入理解数据库视图的概念、特点和用途,并通过实际操作掌握如何创建、修改和使用视图来优化数据库的查询和管理。
二、实验环境本次实验使用的数据库管理系统为 MySQL 80,操作系统为Windows 10。
三、实验原理1、视图的定义视图是一种虚拟表,它是从一个或多个基本表(或视图)导出的表。
视图本身并不包含数据,而是根据定义从基本表中动态获取数据。
2、视图的优点提供数据的逻辑独立性:当基本表的结构发生变化时,只要视图的定义不变,用户通过视图所得到的数据仍然是一致的。
简化数据查询和操作:可以将复杂的查询定义为视图,使用户能够更方便地获取所需的数据。
增强数据安全性:可以通过视图限制用户对敏感数据的访问,只展示用户有权查看的部分数据。
四、实验内容与步骤1、创建视图使用以下语句创建一个名为`student_info_view` 的视图,该视图包含学生表`students` 中的学号、姓名、年龄和专业信息:```sqlCREATE VIEW student_info_view ASSELECT student_id, student_name, age, majorFROM students;```2、查询视图通过以下语句查询创建的视图:```sqlSELECT FROM student_info_view;```3、修改视图修改视图的定义,增加一个成绩列`grade` ,语句如下:```sqlALTER VIEW student_info_view ASSELECT student_id, student_name, age, major, gradeFROM students;```4、删除视图使用以下语句删除视图:```sqlDROP VIEW student_info_view;```五、实验结果与分析1、创建视图成功后,通过查询视图能够获取到预期的学生信息,证明视图的定义和数据提取是正确的。
7-1编程在teaching 数据库中的student 表的sname 列上创建唯一索引IDX_sname。
USE teachingGOCREATE UNIQUE INDEX IDX_sname ON student(sname)7-2 编程在teaching数据库中的student表的studentno和classno列上创建组合索引IDX_sc。
USE teachingIF EXISTS(SELECT name FROM sysindexes WHERE name='IDX_sc')DROP INDEX student.scGOCREATE INDEX IDX_sc ON student(studentno,classno)7-3 重新组织teaching 数据库中student 表上的IDX_sc 索引。
USE teachingALTER INDEX IDX_sc ON dbo.student REORGANIZE7-4 重新生成teaching 数据库中student 表上的IDX_sname 索引,设置填充索引,将填充因子设置为80%,设置将中间排序结果存储在tempdb中。
USE teachingALTER INDEX IDX_sname ON dbo.studentREBUILD WITH(PAD_INDEX =ON,FILLFACTOR= 80,SORT_IN_TEMPDB =ON)7-5 重新生成teaching 数据库中student 表上的C_studentno 索引,将其修改为聚集唯一索引,并指定该索引的叶级页的填充度为70%。
USE teachingGOCREATE UNIQUE CLUSTERED INDEX C_studentnoON dbo.student(studentno)WITH(PAD_INDEX =ON,FILLFACTOR= 70,DROP_EXISTING =ON)7-6 删除teaching 数据库中student 表上的聚集索引C_studentno 和非聚集索引UC_classno。
第一篇:数据库SQL 视图的创建及使用实验报告《数据库基础》实验报告班级__计算机111__学号__xxxxxxxx__姓名__xxx___完成日期____6.20___实验室__理工楼310_ 指导老师xxx成绩____100______实验四、视图的创建及使用(一)实验目的(1)加深对视图的理解。
(2)掌握使用管理工具创建和使用视图的方法。
(3)掌握使用SQL创建和使用视图的方法。
(二)实验内容(1)使用“图书借阅”数据库,在管理工具中创建视图“借阅_计算机图书”,包含借阅类别为“计算机”的图书的信息:(读者编号,姓名,书号,书名,借阅日期)。
(2)直接使用SQL定义(1)中要求的视图并对其进行查询。
(3)在管理工具中建立各类视图(如单表视图、多表视图、分组视图、基于视图的视图等)。
(4)尝试使用insert、update、delete更新视图。
(三)实验具体步骤(1)使用“图书借阅”数据库,在管理工具中创建视图“借阅_计算机图书”,包含借阅类别为“计算机”的图书的信息(读者编号,姓名,书号,书名,借阅日期)。
create view 借阅_计算机图书(Duno,Duname,Shuno,Shuname,JYtime)asselect Duzhe.Duno,Duname,Tushu.Shuno,Shuname, JYtime from Tushu,Duzhe,Jieyue whereDuzhe.Duno=Jieyue.Duno and Tushu.Shuno,=Jieyue.Shuno and Liebie='计算机'(2)直接使用SQL定义(1)中要求的视图并对其进行查询。
select * from 借阅_计算机图书(3)在管理工具中建立各类视图用管理工具建立:在管理工具中,打开图书借阅数据库,右击视图,新建视图,然后依照要求建立各种视图。
《数据库基础》实验报告SQL语句:create view 单表视图asselect Shuname,Shuno,Zuozhe from Tushucreate view 多表视图asselect Shuname,Shuno,Zuozhefrom Tushu,Jieyuewhere Tushu.Shuno,=Jieyue.Shunocreate view 分组视图(Shuno,Duno)asselect Shuno,Duno from Jieyue group by Shunocreate view 基于视图的视图asselect Duno,Duname,Danwei from 单表视图where Sex = '男'(4)尝试使用insert、update、delete更新视图。
天津商业大学学生实验报告开课实验室: 403 机房开课时间 2014年 3月 24日实验报告 2014年5月 6日一、实验目的通过实验,使学生深刻理解数据库中有关视图的各种概念,熟练使用SQL语句来创建所需要的视图,对视图进行查询等操作。
二、实验内容1、利用SQL SERVER管理平台创建、查看和删除视图。
2、利用SQL语句创建、查询和删除数据库视图。
三、实验要求本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。
开始实验前,必须进行预习,实验过程中,先集中由老师进行具体要求和注意事项的讲解,然后各自独立在机器上完成实验。
实验过程中出现问题,在实验指导老师帮助下解决。
四、实验准备复习视图的概念,写出实验中创建视图对象的SQL语句。
五、实验原理、方法和手段1、创建视图的基本操作1)启动SQL SERVER管理平台,选择要创建视图的数据库文件夹“学生管理”数据库,选择其中的“视图”对象,单击鼠标右键。
2)选择“新建视图”命令,打开SQL SERVER视图设计窗口。
创建一张选修了3号课程成绩在70分以上的学生信息视图。
3)打开“添加表”窗口,添加学生关系表和成绩表。
4)在“视图建立”窗口,选择“学生”表中的学号和姓名,“成绩”表中的课程号和成绩,作为视图的显示列。
设置视图中各属性列的名称。
5)单击工具栏“执行”按钮,完成视图的创建。
2、查看和修改视图视图创建好后,就可以利用它进行查询信息了。
如果发现视图的结构不能很好地满足要求,还可以在企业管理器中对它进行修改。
3、删除视图删除视图的方法是:首先要在企业管理器中,将鼠标指针指向数据库中的视图文件夹,单击右键。
在随后出现的弹出菜单中,选择“删除”项,会出现删除视图对话框。
选中欲删除的视图,单击“全部移出”按钮,被选中的视图就会从视图中被移出。
六、实验步骤1、利用SQL SERVER管理平台创建以下视图。
1)创建一个计算机系学生信息的视图VIEW1,在实验报告中给出操作步骤和执行视图的结果。
《数据库原理及应用》实验报告创建数据库和表题目:创建数据库和表学生姓名:XXXX1(《数据库原理及应用》实验报告一、实验目的在了解SQL Server 数据库的逻辑结构,物理结构,基本数据类型,以及表的结构特点的基础上,学会在“对象资源管理器”中创建数据库和表,重点学会使用T-SQL语句创建数据库和表。
二、实验内容按照题目要求创建一数据库,并按要求在该数据库内创建相应数据表。
在创建过程中需分别使用界面方式创建和命令方式创建。
实验题目创建用于企业管理的员工管理数据库YGGL,其逻辑文件初始大小10MB,最大50MB,自动增长,按5%比例增长,日志文件初始大小2MB,最大5MB,按1MB增长,数据库和事务日志的逻辑文件名和物理文件名采用缺省值,另在该数据库内创建3个数据表,Employees表,Departments表,Salary表,具体表结构见课本P-283页所给出三个表格。
实验准备首先明确创建数据库的用户必须是系统管理员或者是被授予使用CREATEDATABASE语句的用户;其次创建过程中必须确定数据库名,所用者,数据库大小和存储其文件;最后根据表的结构按要求创建表;三、实验程序使用T-SQL语句创建数据库YGGL:CREATE DATABASE YGGL ON (NAME='YGGL_Data',FILENAME='C:\\Program Files\\Microsoft SQLServer\\MSSQL.1\\MSSQL\\Data\\YGGL.mdf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=10% ) LOG ON (NAME='YGGL_Log',FILENAME='C:\\Program Files\\Microsoft SQLServer\\MSSQL.1\\MSSQL\\Data\\YGGL_Log.ldf', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB ) GO使用T-SQL语句创建Employees表:USE YGGL GOCREATE TABLE Employees( EmployeeID char(6)NOT NULL PRIMARY KEY, Name char(10)NOT NULL, Education char(4)NOT NULL, Birthday datetime NOT NULL, Sex bit NOT NULL DEFAULT 1,2WorkYear tinyint NULL, Address varchar(40)NULL, PhoneNumberchar(12)NULL, DepartmentID char(3)NOT NULL, ) GO使用T-SQL语句创建Departments表:USE YGGL GOCREATE TABLE Departments( DepartmentID char(3)NOT NULL PRIMARY KEY, DepartmentName char(20)NOT NULL, Note char(100)NULL ) GO使用T-SQL语句创建Salary表:USE YGGL GOCREATE TABLE Salary( EmployeeID char(6)NOT NULL PRIMARY KEY, InCome float NOT NULL, OutCome float NOT NULL ) GO四、实验结果实验通过编写程序最终获得一新的数据库以及在该库内的三个空表如下图:Employees表Departments表Salary表3五、实验总结这学期是第一次接触SQL Server,在最初的学习过程中对SQL Server环境不是很熟悉,在课堂上学习了有关它的基本的数据类型,空值的概念,数据库的基本概念以及和数据表的相关知识,在未进行上机实验之前主要对理论知识进行掌握,但感觉不是很明白,当开始进行上机实验后,按照老师课上讲的基本操作在结合课本的相关知识,能在老师和同学的帮助下完成实验内容,我感觉很充实。
数据库原理及实验报告金融0901 薛骏翔0807090132实验6 视图实验目的:1)掌握交互式创建、删除视图的方法2)掌握使用SQL创建、删除视图的方法3)掌握交互式更新视图的方法4)掌握使用SQL更新视图的方法实验内容6.1实验题目:创建视图实验过程:1)交互式创建视图VIEW_S2)交互式创建成绩视图VIEW_SCORETABLE3)使用SQL创建课程表视图VIEW_CTABLE 实验结果:6.2实验题目:修改视图实验过程:1)使用交互式方法把视图VIEW_S中的字段SNO删掉2)使用SQL为视图VIEW_CTABLE增加一个课时字段CT tiny int实验结果:6.3实验题目:通过视图修改数据库数据实验过程:1)交互式通过修改视图VIEW_S中的数据来实现对其基本表S中数据的修改2)对视图VIEW_S执行INSERT语句,查看此视图的基本表S中数据的变化3)修改视图VIEW_S的定义,使其包含表S中的主键,再执行插入操作4)用SQL语句对视图VIEW_S执行DELETE操作,查看此视图的基本表S中数据的变化实验结果:6.4实验题目:删除视图实验过程:1)交互式删除视图VIEW_S2)使用SQL删除视图VIEW_CTABLE实验结果:实验目的:1)掌握从简单到复杂的各种数据查询。
包括,单表查询、多表连接查询、嵌套查询、集合查询。
2)掌握用条件表达式表示检索结果。
3)掌握用聚合函数计算统计检索结果。
实验内容:7.1 实验题目:单表查询实验过程:1)指定或全部列查询。
2)按条件查询及模糊查询。
3)对查询结果排序。
4)使用聚集函数的查询。
5)分组统计查询。
实验结果:7.2 实验题目:连接查询实验过程:1)连接查询,查询所有选课学生的学号、姓名、选课名称及成绩。
查询每门课程的课程号、任课教师姓名及其选课人数。
2)自身连接,查询所有比刘伟工资高的的教师的姓名、工资及刘伟的工资。
查询同时选修了程序设计和微机原理的学生的姓名、课程号。
数据库原理实验报告一、实验目的本实验旨在通过实践操作了解数据库的基本原理和操作方法,并掌握实例数据库的创建与管理技巧。
二、实验设备与材料1.电脑;2.MySQL数据库软件;3. Apache服务器软件;4.PHP编程语言。
三、实验内容1.数据库的创建与管理:通过MySQL创建并管理一个实例数据库。
2.数据表的设计与操作:设计数据库表结构,并完成数据的插入、查询、修改和删除操作。
3.字段约束与数据完整性:了解字段约束的概念,设置主键、外键、唯一约束等,并测试数据完整性。
4.数据库的备份与还原:学习如何进行数据库的备份与还原操作,以保证数据的安全性和可靠性。
四、实验步骤1.安装MySQL数据库软件,并启动数据库服务。
2.通过MySQL命令行工具或图形界面工具创建一个新的数据库。
3.创建数据表,并定义表结构,设置字段的数据类型和约束。
4.插入测试数据至数据表中。
5.使用SQL语句进行数据的查询、修改和删除操作,检验数据的有效性。
6.进行字段约束的测试,包括主键、外键、唯一约束等,确保数据的完整性。
7.学习并实践数据库备份与还原操作,保证数据的安全性和可靠性。
五、实验结果通过以上步骤,我们成功创建了一个实例数据库,并进行了基本的数据表设计与操作。
我们学习并运用了字段约束和数据完整性的相关知识,对SQL语句的使用和数据库备份与还原操作有了更深入的了解。
最终,我们实现了数据的有效管理和保护。
六、实验心得通过本次实验,我们全面了解了数据库的基本原理和操作方法,培养了我们的数据库管理能力。
我们学会了如何创建和操作数据库,设计和管理数据表,以及保证数据的完整性和安全性。
数据库在现代社会中扮演着重要的角色,我们对数据库的认识和掌握将有助于我们在今后的工作中更好地处理和管理大量的数据信息。
总结起来,数据库原理的实验是建立在对数据库基本概念和操作知识的理解之上的,通过实践操作,我们更加深入地理解了数据库的工作原理和操作方法,提升了我们的实际能力。
《数据库原理及应用》数据操纵功能的实现与视图索引的创建实验报告
三、实验过程与结论:(经调试正确的源程序(核心部分)和程序的运行结果)
1.将学生、课程、选课三张表中的全部记录复制到student、course、xuanke三张表中;select*into student from学生
select*from student
select*into course from课程
select*from course
select*into xuanke from选课
select*from xuanke
2.用SQL语句将适量数据分别插入student、course、xuanke三张表中;
insert into student values('012','陈阳','20','男','数学');
insert into student values('013','李东','20','男','计算机');
insert into course values('c06 ','网店推广','网店运营');
insert into course values('c07','网店美工','网店运营');
insert into xuanke values('016','c06','90');
insert into xuanke values('017','c07','85');
3.将平均成绩低于70的学生信息存放在低于70分平均成绩表中;
select*into低于70分平均成绩from学生
where学号=some
(select学号from选课
group by学号
having avg(成绩)<70)
4.借助student、course、xuanke三张表,删除“计算机”系全体学生的选课记录及学生记录;delete from xuanke
where学号in(
select学号from student
where所在系='计算机')
delete from student
where学号in(
select学号from student
where所在系='计算机')
5.借助student、course、xuanke三张表,删除学号为“001”的相关信息(包括选课信息及
学生信息);
delete from xuanke
where学号in(
select学号from student
where学号='001')
delete from student
where学号in(
select学号from student
where学号='001')
6.将student表中学号为“002”的学生的学号修改为“S002”;
update student set学号='S002'
where学号='S002'
7.把平均成绩大于80分的男同学的学号和平均成绩存入另一个表S_Grade(Sno,AVG_Grade);create table S_Grade
(Sno char(5),AVG_Grade int)
insert into S_Grade
select学号,avg(成绩)平均成绩from xuanke
group by学号
having avg(成绩)>'80'and学号in(
select学号from student
where性别='男')
8.把选修了课程名为“数据结构”的学生的成绩提高10%;
update xuanke set成绩=成绩*1.1
where课程号in(
select课程号from course
where课程名='数据结构')
9.把选修了“c02”号课程,且成绩低于该门课程的平均成绩的学生的成绩提高5%;update xuanke set成绩=成绩*1.05
where课程号='C02'and成绩<(
select avg(成绩)from xuanke
where课程号='C02')
10.把选修了“c02”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;delete from选课
where课程号='C02'and成绩<
(select avg(成绩)from选课
where课程号='C02')
11.求C01和C04课程成绩为80分以上的学生的学号及姓名;
select姓名,学生.学号from学生,选课
where学生.学号=选课.学号and课程号in('C01','C04')
and成绩>80
12.求选修了C1课程又选修了C2课程的学生的学号;
select学号from选课
where课程号='C01'and学号in
(select学号from选课
where课程号='C02')
13.求每个系的平均年龄,并要求将结果存入数据库中;
create table系平均年龄
(系别varchar(20),平均年龄int)
insert into系平均年龄
select所在系,avg(年龄)from学生
group by所在系
select*from系平均年龄
14.建立“计算机系”的学生基本情况视图ies_student_view,该视图包括计算机系所有学生
的相关信息;
create view ies_student_view
as
select*from学生
where所在系='计算机'
15.执行ies_student_view视图并观察结果;
select*from ies_student_view
16.建立课程C01(课编号)的学生名册的视图,该名册包括学生的学号、姓名、所在系名称
和这门课的成绩;并查询结果;
go
create view学生名册
as
select学生.学号,姓名,所在系,成绩from学生,选课
where学生.学号=选课.学号and课程号='C01'
go
select*from学生名册
17.建立统计不及格情况的视图,列出不及格学生的学号、姓名和不及格的课程代码。
执行视
图并观察结果;
create view统计不及格情况
as
select学生.学号,姓名,课程号from学生,选课
where学生.学号=选课.学号and学生.学号in(
select学号from选课
where成绩<'60')
go
select*from统计不及格情况
18.修改视图ies_student_view,使该视图包括所有学生的学号、姓名、所在系。
执行
ies_student_view视图并观察结果;
alter view ies_student_view
as
select学生.学号,姓名,所在系from学生
go
select*from ies_student_view
19.删除视图ies_student_view。
并查询结果;
go
drop view ies_student_view
20.在student_course表(学生选课表)的学生学号(s_no)列上创建索引sc_sno_index;
通过SQL语句查看运行结果。
create index sc_sno_index on选课(学号)
exec sp_helpindex选课
四、实验总结:(实验中遇到的问题及解决方法,心得体会等)
在创建视图时会出现错误,没有掌握视图的机制,在编写时操作语言编写会出现错误。
不会的视图表的操作语言和同学讨论学习。
向老师询问关于视图的基本操作,改正在编写过程中遇到的错误。
在本次实验中,对数据库表的操作语言掌握的更熟悉了,了解到了视图是由数据库的基本表中选出来的数据组成的逻辑窗口,是基于表的数据组成,视图是一个虚表。