data数据库实验五视图创建与使用

合集下载

数据库实验五:视图的应用

数据库实验五:视图的应用

数据库实验五:视图的应用一、实验目的与要求:1.实验目的(1)理解视图的概念;(2)掌握视图的使用方法。

(3)理解视图和基本表的异同之处。

2.实验要求(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。

2)基于单个表按选择操作定义视图。

3)基于单个表按选择和投影操作定义视图。

4)基于多个表根据连接操作定义视图。

5)基于多个表根据嵌套操作定义视图。

6)定义含有虚字段的视图。

(2)分别在定义的视图设计一些查询(包括基于视图和基本表的连接或嵌套查询)。

(3)在定义的视图上进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。

(4)在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。

二、实验内容1、实验原理(1)视图是用SQL SELECT查询定义的,创建视图命令格式如下:CREATE VIEW <视图名> AS <SELECT-查询块>(2)删除视图的命令格式如下:DROP VIEW <视图名>2、实验步骤与结果(1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。

(2)输入自己编好的程序。

(3)检查已输入的程序正确与否。

(4)运行程序,并分析运行结果是否合理和正确。

在运行时要注意当输入不同的数据时所得到的结果是否正确。

(5)输出程序清单和运行结果。

(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。

create view v asselect教师编号,姓名from教师create view v_order asselect*from教师where职称='教授'3)基于单个表按选择和投影操作定义视图。

create view v_cuss asselect教师编号,姓名,职称from教师where职称='教授'4)基于多个表根据连接操作定义视图。

数据库视图的创建与应用技巧

数据库视图的创建与应用技巧

数据库视图的创建与应用技巧数据库是现代信息系统中不可或缺的组成部分,而视图是数据库中一个重要的概念和工具。

视图是一个虚拟的表,它是基于查询的结果集,可以将多个表中的数据按照特定的逻辑组织起来。

本文将介绍数据库视图的创建与应用技巧,帮助读者更好地理解和应用视图。

一、数据库视图的创建1. 了解视图的定义:视图是一个虚拟的表,它是基于查询的结果集。

视图可以理解为是对多个表的抽象和封装,通过对数据库中的表进行关联和筛选,得到一个逻辑上的数据集,方便用户进行查询和统计分析。

2. 确定视图的目的:在创建数据库视图之前,需要明确视图的目的和使用场景。

是为了简化复杂查询语句、隐藏敏感数据、提供数据访问的安全性,还是为了减少数据冗余,不同的目的可能涉及到不同的表和字段。

3. 编写视图的查询语句:视图的创建需要编写查询语句,查询语句是基于数据库中的表进行关联和筛选得到的。

可以使用数据库的查询语言,如SQL语句,写出满足需求的查询语句。

在编写查询语句时,需要考虑数据的完整性和一致性,避免出现逻辑错误。

4. 创建视图:在数据库管理系统中,可以使用CREATE VIEW语句来创建视图。

CREATE VIEW语句的基本语法是:CREATE VIEW 视图名 AS 查询语句;其中,视图名是指定的视图名称,查询语句是用来创建视图的查询语句。

二、数据库视图的应用技巧1. 简化复杂查询语句:视图可以简化复杂的查询语句,将多个表的关联和筛选抽象成一个视图,从而减少了查询语句的复杂性。

例如,如果我们需要从多个表中查询某个特定属性的数据时,可以将这些表进行关联和筛选得到一个视图,然后在实际查询中直接使用该视图。

2. 提高数据访问安全性:视图可以对数据进行过滤和权限控制,提高了数据访问的安全性。

例如,我们可以创建一个视图,将敏感数据屏蔽起来,并设置只有特定用户才能访问该视图。

通过视图控制数据的可见性,可以有效地保护数据的安全性。

3. 减少数据冗余:视图可以减少数据冗余,实现数据的逻辑集成和管理。

数据库实验5 视图操作

数据库实验5 视图操作

实验五视图操作(2学时)【实验目的】1. 学会使用SQL语句创建和使用视图,加深对视图和SQL Server基表作用的理解。

2. 了解数据库安全控制的机制,以及自主存取控制方法。

【实验要求】1.掌握创建、修改视图的SQL语句的用法。

2.掌握使用企业管管理器创建、修改视图的方法。

3.掌握查看视图的系统存储过程的用法。

4.掌握视图的使用方法。

5.掌握SQL有关用户、角色及操作权限的管理方法。

【实验内容】一、视图操作(一)定义视图以Student 、Course表为基础完成以下视图定义。

1.定义计算机系学生基本情况视图V_Computer。

2.将Student Course 和Student_course表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。

3.将各系学生人数,平均年龄定义为视图V_NUM_AVG。

4.定义一个反映学生出生年份的视图V_YEAR。

5.将各位学生选修课程的门数及平均成绩定义为视图V_A VG_S_G。

6.将各门课程的选修人数及平均成绩定义为视图V_A VG_C_G。

(二)使用视图1. 查询以上所建的视图结果。

2. 查询平均成绩为90分以上的学生学号、姓名和成绩。

3. 查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩。

4. 按系统计各系平均成绩在80分以上的人数,结果按降序排列。

(三)修改视图1. 通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM” 并查询结果。

2. 通过视图V_IS,新增加一个学生记录('S12','YAN XI',19,'IS'),并查询结果。

3. 通过视图V_IS,新增加一个学生记录('S13','YAN XI',19,'MA'),并查询结果。

4. 通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果。

数据库实验数据更新和视图的建立与使用

数据库实验数据更新和视图的建立与使用

实验五实验名称:数据更新和视图的建立与使用一、实验目的1.熟练使用INSERT/DELETE/UPDATE语句进行表的更新操作。

2. 理解视图的定义、视图的优点与视图的工作原理。

掌握在企业管理器和查询分析器中创建、修改及删除视图。

能够熟练掌握利用视图向表中插入、删除和修改数据。

二、实验原理1.数据更新操作只能针对一个表进行,即每次只能在一个表中插入、删除和修改数据。

用INSERT语句可以通过使用V ALUES关键字一次只向一个表插入一条记录,也可以通过子查询向一个表中插入若干条记录;当使用DELETE和UPDATE语句实现表的删除和更改时,若题目中涉及多个表的信息,可以使用子查询来挑选出部分数据,以作为删除或更改的条件,也可以在语句中用FROM 子句给出题目中涉及的所有表,而在WHERE子句中给出多个表之间的连接条件。

2. 利用CREATE VIEW、ALTER VIEW 、DROP VIEW语句创建、修改及删除视图。

由于视图是虚表,通过视图向表中添加数据时必须满足一定的条件。

如果视图引用了多个数据表,那么在通过视图向数据表中添加数据时,这个语句只能指定同一个表中的字段。

如果通过一个引用了多个数据表的视图向这些数据表中添加数据时,必须书写多个INSERT语句。

通过使用多个表的视图对数据表进行更新也需要书写多个UPDATE语句,另外适用于INSERT操作的许多限制同UPDATE操作。

使用DELETE语句可以通过视图将数据表中的数据删除。

但如果视图应用了两个或两个以上的数据表,则不允许删除视图中的数据。

另外,通过视图删除的记录,不能违背视图定义的WHERE子句中的条件限制。

三、实验设备安装有SQL SERVER 2005的计算机。

四、实验内容凡是能用多种方法实现的,请用多种方法实现。

1、为各表添加若干条记录,必须符合实验二中设定的各种约束。

2、将每个员工的薪水上调10%。

3、删除sales表中作废的订单(其发票号码为‘I000000004’),其订货明细表中的数据也一并删除。

实验报告五 视图与索引

实验报告五 视图与索引

实验五视图与索引一.实验目的1.学会使用企业管理器建立视图与索引2.掌握使用SQL语句建立视图与索引二.实验内容1.使用企业管理器建立视图索引2.使用SQL语句建立视图索引三.实验准备1.复习与本次实验内容相关知识2.对本次实验中要求自己完成的部分做好准备四.实验步骤1.用企业管理器建立一个基于学生表、课程表、成绩表的视图,要求该视图显示学号、姓名、课程、成绩o启动企业管理器、注册、连接o"新建视如下图所示o在新视图窗口内的关系图窗格内右击鼠标,弹出的菜单即为视图设计菜单,执行"添加表(B)...",如下图所示再在添加表对话框中选择SCORES表,再单击添加按钮。

依此操作,分别添加STUDENT、COURSES表,单击关闭按钮。

再在关系窗格内,拖动STUDENT表的"SID"至SCORES的STUDENT_ID,拖动COURSES表的"CNO"至SCORES的COURSE_ID,再分别选中STUDENT表的"SID","NAME"列(列前的复选框),COURSES表的"COURSE"列以及SCORES表的"SCORE"列,然后单击"!"按钮,显示视图结果,如下图所示:单击保存按钮,将视图保存为V_SCORES,单击确定.2.用查询分析器建立一个基于学生表、班级表的学生视图(V_STUDENTS),包括学号、姓名、班级、系,SQL语句如下:CREATE VIEW dbo.V_STUDENTSASSELECT dbo.U_STUDENTS.ID, dbo.U_,dbo.U_CLASSES.CLASS,dbo.U_CLASSES.DEPARTMENTFROM dbo.U_STUDENTS INNER JOINdbo.U_CLASSES ON dbo.U_STUDENTS.CLASS_ID = dbo.U_CLASSES.ID3.自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示课程编号.课程名、学分。

实验5 视图的创建与使用

实验5 视图的创建与使用

实验5 视图的创建和使用【实验目的】掌握创建与删除视图的方法掌握更新视图的方法掌握视图的查询操作【实验内容】一、创建视图1、用企业管理器创建视图此实验中以mydb1数据库中的test01、student、course、sc表为基础创建视图。

打开企业管理器,展开左侧窗口树形结构上的数据库节点,选中要创建视图的数据库(这里是mydb1),右击数据库中的“视图”对象,选择“新建视图”命令,如图1所示,就会弹出如图2所示的视图设计器窗口。

图【1】新建视图图【2】视图设计器在视图设计器窗口中右击选择“添加表”或单击工具栏上“添加表”按钮,添加所需要的表。

如图3所示。

图【3】添加表在表窗口中各字段名的前面方框里单击,选择相应的字段,或是在下面“列”的下拉列表框中选择字段,并可在“准则”列中输入提取记录时的过滤条件,在“或”列中输入提取记录所用的附加条件,最后在上面窗口中右击,选择“运行”,则在最下面的窗口中就能看到视图的结果。

如图4所示。

图【4】选择视图内容视图设计完后,点击保存图标,在弹出的“另存为”对话框中输入视图名,此实验为score_view ,最后点击“确定”按钮。

如图5所示。

图【5】保存视图2、使用向导创建视图(略)3、用T-SQL语句创建视图格式:CREATE VIEW view_name[(column1,column2,……)] Asselect_statement[with check option]例:创建所有选课学生的信息视图,如图6所示。

(3)重命名表test001为test01。

当发现表名不恰当的时候,需要为表重新命名。

使用系统存储过程sp_rename 可以为表重新命名,语法如下:sp_rename old_table_name , new_table_name请在查询管理器中输入如下的语句:Use mydb1Gosp_rename test001 , test01 /*EXEC sp_rename test001 , test01 也可以*/Go系统执行,将返回如图6所示的结果。

第5章_视图的创建与使用

第5章_视图的创建与使用

5.2.2使用Transact-SQL语句创建视图 .2.2使用Transact-SQL语句创建视图 使用Transact
使用Transact SQL语言中的 使用 Transact-SQL 语言中的 CREATE VIEW 语 Transact语言中的CREATE VIEW语 句创建视图,其语法形式如下: 句创建视图,其语法形式如下: CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ] ...n [ WITH ENCRYPTION ] AS select_statement [ WITH CHECK OPTION ] [ ; ]
5.1.2 视图的优点
简化数据操作:视图可以简化用户处理数据的方式。 简化数据操作:视图可以简化用户处理数据的方式。 着重于特定数据: 着重于特定数据:不必要的数据或敏感数据可以不出 现在视图中。 现在视图中。 视图提供了一个简单而有效的安全机制, 视图提供了一个简单而有效的安全机制,可以定制不 同用户对数据的访问权限。 同用户对数据的访问权限。 提供向后兼容性: 提供向后兼容性:视图使用户能够在表的架构更改时 为表创建向后兼容接口。 为表创建向后兼容接口。 自定义数据:视图允许用户以不同方式查看数据。 自定义数据:视图允许用户以不同方式查看数据。 导出和导入数据: 导出和导入数据:可使用视图将数据导出到其他应用 程序。 程序。
CHECK OPTION :强制针对视图执行的所有 数据修改语句都必须符合在 select_statement 中设置的条件。 中设置的条件。 ENCRYPTION:对视图文本进行加密。 ENCRYPTION:对视图文本进行加密。
例2 建立一个只包括教师号、姓名和年龄的 建立一个只包括教师号、 视图TeacherView TeacherView。 视图TeacherView。 CREATE VIEW TeacherView AS SELECT tno,tname,tage FROM teachers

数据库实验——视图的创建与使用

数据库实验——视图的创建与使用

数据库实验——视图的创建与使用数据库是一种利用计算机系统来管理、存储、处理数据的技术,视图则是在数据库中使用的一种技术。

视图是一种虚拟表,实际上并不存储数据,而是使用查询语句从一个或多个表中提取所需的数据。

在本次实验中,将学习视图的创建和使用。

一、实验目的1. 理解视图的概念和特点;2. 掌握视图的创建和使用方法;3. 熟悉视图的应用场景。

二、实验内容1. 视图的创建方法;2. 视图的使用方法;3. 视图的实际应用。

三、实验过程1. 视图的创建方法视图的创建方法如下:CREATE VIEW [视图名称] AS [查询语句];例如,要从学生表中提取所有学生的姓名和学号,则可以使用以下语句创建视图:CREATE VIEW student_info AS SELECT sname, sno FROM student;这样,就创建了一个名为student_info的视图,其中包含学生表中的姓名和学号两列数据。

2. 视图的使用方法创建视图之后,可以像使用普通表一样使用视图。

例如,可以使用SELECT语句来查询视图中的数据,如下所示:SELECT * FROM student_info;这样就可以查询出student_info视图中的所有数据。

3. 视图的实际应用视图在实际应用中有很多用途,例如:(1)简化查询语句当数据库中有较多的关联表时,查询语句会变得非常复杂。

此时,可以使用视图来简化查询语句。

例如,以下语句查询学生所在的班级名称:SELECT s.sname, ame FROM student s INNER JOIN class c ON s.classno = c.classno;使用视图后,查询语句可以变得更简洁:CREATE VIEW student_class AS SELECT s.sname, ame FROM student s INNER JOIN class c ON s.classno = c.classno;SELECT * FROM student_class;(2)保护数据安全例如,可以创建只包含学生姓名和学号的视图,而不包含其他敏感数据,以确保保护学生的隐私。

数据库实验五 视图的创建与使用

数据库实验五 视图的创建与使用

实验五视图的创建与使用一、实验目的(1)理解视图的概念。

(2)掌握创建视图、测试、加密视图的方法。

(3)掌握更改视图的方法。

(4)掌握用视图管理数据的方法。

二、实验内容1.创建视图(1)创建一个名为stuview2的水平视图,从数据库Student_info的Student表中查询出性别为“男”的所有学生的资料。

并在创建视图时使用with check option。

(注:该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。

)create view stuview2asselectSno,Sname,Sex,Birth,Classno,Entrance_date,Homeaddr,Sdept,Postcode from Student_20103322where Sex='男'with check option(2)创建一个名为stuview3的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时,并在创建时对该视图加密。

(提示:用with ENCRYPTION关键子句)create view stuview3with ENCRYPTIONasselect Cno,Cname,Total_periorfrom Course_20103322where Credit>3with check option(3)创建一个名为stuview4的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。

create view stuview4asselect Student_20103322.Sno,Cno,Gradefrom Student_20103322,SC_20103322where Student_20103322.Sno=SC_20103322.Snoand Classno='051'and Sex='女'(4)创建一个名为stuview5的视图,能检索出每位选课学生的学号、姓名、总成绩。

数据库实验报告:实验五

数据库实验报告:实验五

数据库实验报告:实验五一、实验目的本次数据库实验五的主要目的是深入了解和掌握数据库的高级操作,包括存储过程的创建与使用、视图的定义和应用、以及事务处理的原理和实践。

通过这些实验内容,提高我们对数据库系统的综合运用能力,为解决实际的数据库管理问题打下坚实的基础。

二、实验环境本次实验使用的数据库管理系统是 MySQL 80,开发工具为 Navicat Premium 12。

操作系统为 Windows 10 专业版。

三、实验内容及步骤(一)存储过程的创建与使用1、创建一个名为`get_student_info` 的存储过程,用于根据学生学号查询学生的基本信息(包括学号、姓名、年龄、性别和专业)。

```sqlDELIMITER //CREATE PROCEDURE get_student_info(IN student_id INT)BEGINSELECT FROM students WHERE student_id = student_id;END //DELIMITER ;```2、调用上述存储过程,查询学号为 1001 的学生信息。

```sqlCALL get_student_info(1001);```(二)视图的定义和应用1、创建一个名为`student_grade_view` 的视图,用于显示学生的学号、姓名和平均成绩。

```sqlCREATE VIEW student_grade_view ASSELECT sstudent_id, sname, AVG(ggrade) AS average_gradeFROM students sJOIN grades g ON sstudent_id = gstudent_idGROUP BY sstudent_id, sname;```2、查询上述视图,获取所有学生的平均成绩信息。

```sqlSELECT FROM student_grade_view;```(三)事务处理1、开启一个事务,向学生表中插入一条新的学生记录(学号:1005,姓名:_____,年龄:20,性别:男,专业:计算机科学)。

数据库 视图和索引的创建及使用

数据库 视图和索引的创建及使用

实验五视图和索引的创建及使用实验目的:1、理解视图和索引的概念2、学会使用企业管理器和T-SQL语句创建视图和索引3、理解视图和索引的优缺点,掌握视图和索引的管理和维护。

实验内容:一视图1、使用企业管理器建立视图,进入“添加表”对话框,选择表student,在“视图设计器”界面的表选择区中选择所有列选型,在SQL语句区,编辑并执行,查看视图显示结果。

2、保存视图名为view_student.3、建立学生学号、姓名、性别、课程号、成绩的视图v_sc,查看v_sc中的数据。

4、建立学生学号、姓名、出生年份的视图v_age查看V_age中的数据。

5、建立…JSJ‟ 系的学生学号、姓名、性别、年龄的视图v_JSJ6、建立每门课程的平均分的视图v_avggrade二索引1、使用企业管理器为学生表student创建一个以stud_id 为索引关键字的惟一聚簇索引。

2、将上一步所建立的索引名称修改为new_index。

3、将前述所建立的new_index 索引删除。

4、使用T-SQL 语句为课程表Course 创建一个名为Course_Index 的惟一非聚簇索引,索引关键字为教师编号Course_id,降序,填充因子为80%。

5、使用T-SQL 语句将课程表中的Course_Index 删除。

6、为student表创建一个基于“年龄,学号”组合列的非聚集、复合索引cj_xh_index。

7、为lesson_info 创建一个基于“课程号course_id,课程类型course_type” 组合列的惟一、聚集、复合索引kc_lx_index。

实验结果中记录结果,不能省略。

附:建立实验相关数据库与表CREATE DATABASE TESTDBON PRIMARY(NAME='TESTDB',FILENAME='d:\TESTDB.mdf',SIZE=3072KB,MAXSIZE='UNLIMITED',FILEGROWTH=1024KB)LOG ON(NAME='TESTDB_LOG',FILENAME='d:\TESTDB_LOG.ldf',SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=10%)COLLATE Chinese_PRC_CI_ASCREATE TABLE Student(Stu_ID CHAR(12) NOT NULL PRIMARY KEY,Stu_Name VARCHAR(50),Stu_Passwd V ARCHAR(50),Ssex CHAR(2),Sage INT,Sdept V ARCHAR(50))CREATE TABLE Course(Course_ID [char](9) NOT NULL,Course_Name [varchar](50) NULL,Course_Credit [int] NULL,Course_Pro_ID [char](9) NULL,Teacher_ID [char](8) NULL,Books_ID [char](12) NULL,)use TESTDB1CREATE TABLE Stu_Course(Stu_ID CHAR(12) NOT NULL,Course_ID CHAR(9) NOT NULL,Term CHAR(6),Score DECIMAL(3,2),Credit INT,CONSTRAINT PK_Stu_Course PRIMARY KEY(Stu_ID,Course_ID))USE [TESTDB]GOINSERT INTO student V ALUES('11012901','杜月梅','147258','女',21,'物理系'); INSERT INTO student V ALUES('11012902','李建丽','258369','女',22,'物理系'); INSERT INTO student V ALUES('11012903','高勇','369789','女',23,'物理系'); INSERT INTO student V ALUES('12023001','王军雅','123456','男',20,'计算机'); INSERT INTO student V ALUES('12023002','王晓玲','456789','女',21,'计算机');INSERT INTO course V ALUES('1','高等数学',6,null,'1','1');INSERT INTO course V ALUES('2','C语言',3,null,'2','2');INSERT INTO course V ALUES('3','数据结构',2,2,'3','3');INSERT INTO Stu_Course V ALUES('11012901','1','1',82,6);INSERT INTO Stu_Course V ALUES('11012902','1','1',90,6); INSERT INTO Stu_Course V ALUES('11012903','1','1',75,6); INSERT INTO Stu_Course V ALUES('12023001','1','1',96,6); INSERT INTO Stu_Course V ALUES('12023002','1','1',90,6); INSERT INTO Stu_Course V ALUES('12023001','2','1',86,3); INSERT INTO Stu_Course V ALUES('12023002','2','1',70,3);。

数据库视图的创建与使用方法

数据库视图的创建与使用方法

数据库视图的创建与使用方法数据库视图是一种虚拟表,由数据库中的表或其他视图经过逻辑操作而得到的结果集。

它是基于数据库中的实际表的结构和数据,通过特定的查询语句进行定义和创建的。

通过使用数据库视图,我们能够简化复杂的查询操作,提高查询的效率,保护数据的安全性,并且能够隐藏表的细节,提供更加简洁的数据展示。

创建数据库视图的步骤一般如下:1. 分析需求:在创建数据库视图之前,我们首先需要明确自己的需求,确定视图的目的。

明确视图所需要展示的字段、关联的表和查询条件。

2. 设计查询语句:根据需求,设计出符合要求的查询语句。

包括选择要展示的字段、关联的表、过滤条件等。

我们可以通过数据库查询语言(如SQL)来完成这一步骤。

3. 创建视图:根据所设计的查询语句,执行创建视图的操作。

在执行创建操作之前,我们需要先确定视图要创建的数据库和表的结构。

4. 检查和测试:创建完成后,我们需要对所创建的视图进行检查和测试。

检查视图是否符合需求,是否能够正确地展示所需要的数据。

使用数据库视图的方法如下:1. 查询数据:使用视图时,我们可以像查询普通表一样,使用SELECT语句来查询视图中的数据。

例如:SELECT * FROMview_name; 即可查询视图中的所有数据。

2. 更新数据:在使用视图进行数据更新时,需要确保视图是可更新的,并且涉及的基表也是可更新的。

通过UPDATE、INSERT、DELETE等操作语句,可以对视图中的数据进行更新。

3. 使用视图作为子查询:视图可以作为子查询嵌套在其他查询语句中使用。

这样可以实现更加复杂的查询操作。

4. 数据安全性管理:通过使用视图,我们可以隐藏敏感数据或进行数据访问权限的控制。

可以通过授予或撤销用户对视图的访问权限,实现对数据的保护。

需要注意的是,在使用数据库视图时,我们需要将视图的性能影响考虑在内。

由于视图只是对基表的查询结果的封装,并不存储实际的数据,因此在查询视图时需要对基表进行实际的计算和检索。

数据库、数据表、视图的创建与操作报告

数据库、数据表、视图的创建与操作报告

数据库、数据表、视图的创建与操作实验报告本指导教师_____ 实验名称:数据库、数据表、视图的创建与操作同组人__________________ 日期:成绩______________一、实验目的熟悉数据库、数据表及视图的创建,并进行各种编辑、整理、索引、筛选、统计。

二、实验环境CPU:Intel® Pentium ® Dual E2200 @ 2.20GHz内存:1G操作系统:Microsoft Windows XP Professional 版本2002 Service Pack 2软件平台:Visual FoxPro 6.0 中文版三、实验原理(或要求)1、使用VF创建一个名叫学生信息的数据库文件;2、在学生信息数据库中创建一张名叫班级的数据库表与一张名叫学生的数据库表;3、班级表包含字段有:班级编号,班级名称;4、学生表包含字段有:姓名、学号、一卡通号、身份证号、班级、性别;5、对学生信息数据库中各表进行编辑、整理、索引、筛选、统计。

四、实验步骤创建学生信息数据库:1、运行VF;2、依次运行:文件→新建,在弹出的新建窗口中选择数据库,点击新建文件;3、在弹出的创建窗口中对数据库重新命名为“学生信息”,保存即可创建学生信息库。

创建班级数据库表:1、接上继续操作,在数据库设计器---学生信息窗口中,选择数据库设计器中的新建表控件。

2、在弹出的新建表中选择新建表,并对其进行重命名为“班级”。

3、重命名保存后在弹出来的“表设计器---班级”窗口中,选中字段页面,添加两个字段,分别如下:字段名类型宽度索引NULL班级编号数值型 4 升序NO班级名称字符型254 NO点击确定后,弹出“现在输入数据记录吗?”点击是。

输入两条记录:1,班级编号;2,班级名称。

关闭窗口即可。

创建学生数据表:创建表操作与创建班级表操作相同。

创建索引1、创建班级数据表索引:班级表:右键→修改,在弹出的界面中选择索引页面。

数据库实验——视图的创建与使用

数据库实验——视图的创建与使用

数据库原理与应用实验报告题目:视图的创建与使用学号:_________________姓名:_________________ 教师:_________________实验题目视图的创建与使用1、实验内容视图的创建与使用2、实验目的与要求1、理解视图的概念。

2、掌握视图创建的方法。

3、掌握更改视图的方法。

3、实验环境已安装SQL Server 2008 企业版的计算机;具有局域网环境,有固定IP;4、实验结果与分析1创建教材的三个数据表Student、Course及SC。

CREATE TABLE Student(Sno CHAR(9),Sname CHAR(20),Ssex CHAR(20),Sage SMALLINT,Sdept CHAR(20));CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,);CREATE TABLE Course(Cno CHAR(4),Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,);2向三个表中插入教材中的数据。

INSERT INTO Student values(‘200215121’,’李勇’,’男’,20,’CS’); INSERT INTO Student values(‘200215122’,’刘晨’,’女’,19,’CS’);INSERT INTO Student values(‘200215121’,’王敏’,’女’,18,’MA’);INSERT INTO Student values(‘200215121’,’张立’,’男’,19,’IS’);INSERT INTO Course values(‘1’,’数据库’,’5’,4);INSERT INTO Course(Cno,Cname,Credit) values(‘2’,’数学’,2);INSERT INTO Course values(‘3’,’信息系统’,’1’,4);INSERT INTO Course values(‘4’,’操作系统’,’6’,3);INSERT INTO Course values(‘5’,’数据结构’,’7’,4);INSERT INTO Course (Cno,Cname,Credit) values(‘6’,’数据处理’,2);INSERT INTO Course values(‘7’,’PASCAL语言’,’6’,4);INSERT INTO SC V ALUES (‘200215121’, ‘1’, 92);INSERT INTO SC V ALUES (‘200215121’, ‘2’, 85);INSERT INTO SC V ALUES (‘200215121’, ‘3’, 88);INSERT INTO SC V ALUES (‘200215122’, ‘2’, 90);INSERT INTO SC V ALUES (‘200215122’, ‘3’, 80);3、创建一个名为View_Male_Student的视图,从表Student中查询出性别为男的所有学生的资料。

数据库视图创建学习

数据库视图创建学习

数据库视图创建学习实验5 视图的创建及应⽤1、实验⽬的(1)掌握使⽤T-SQL语⾔创建、修改视图;(2)掌握使⽤T-SQL语句删除、重命名视图;(3)掌握使⽤T-SQL语句,通过视图对基本表进⾏数据操作;(4)掌握使⽤界⾯操作的⽅式创建、修改、删除和重命名视图,以及通过视图对基本表进⾏数据操作的⽅法。

2、实验类型验证型、设计型。

3、相关知识视图是⼀种数据库对象,是关系数据库系统提供给⽤户以多种⾓度观察数据库中数据的重要机制。

视图是从⼀个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进⾏查询的结果。

(1)使⽤T-SQL语句创建视图的语法格式CREATE VIEW [ < owner > .] view_name [ ( column_name [ ,...n ] ) ][WITH ENCRYPTION]ASselect_statementFROM table_name WHERE search_condition[WITH CHECK OPTION]其中:n view_name:为新创建的视图指定的名字,视图名称必须符合标识符规则。

n column_name:在视图中包含的列名,也可以在SELECT 语句中指定列名。

n table_name:视图基表的名字。

n select_statement:选择哪些列进⼊视图的SELECT语句。

n WHERE search_condition:基表数据进⼊视图所应满⾜的条件n WITH CHECK OPTION:迫使通过视图执⾏的所有数据修改语句必须符合视图定义中设置的条件。

n WITH ENCRYPTION:对视图的定义进⾏加密。

创建视图时的注意事项:在CREATE VIEW语句中,不能包括ORDER BY、COMPUTE或者COMPUTE BY ⼦句,也不能出现INTO关键字。

创建视图所参考基表的列数最多为1024列。

创建视图不能参考临时表。

实验5 视图的创建与使用分析

实验5 视图的创建与使用分析

XX实验报告学号 :系别专业班级姓名课程名称课程类型学时数实验名称视图的创建和使用实验目的:使用SQL Server Mangement Studio创建视图。

使用Transcat-sql创建视图。

查询视图了解创建和查询视图的方法。

实验要求:据库设计确定要创建的视图。

之前已经完成了其他实验,成功创建了stu中的各个表。

了解创建和查询视图的方法实验内容:要点:视图是从一个表或者几个基本表导出的表。

他与基本表不同,是一个虚表。

数据库只存放视图的定义,而不存放对应的数据,这些数据仍然存放在原来的基本表中,所以一旦基本表的数据发生改变,先从视图中查出的信息也就发生改变,从这个意义上来讲,视图就像一个窗口。

视图一经定义,就可以和基本表一样被查询,被删除,也可以在一个视图上在定义另一个视图,但对视图的(增,删,改)操作有一定的限制。

1. 打开SQL Server2008 ->SQL Server Mangenent Studio命令,弹出连接到服务器的对话框。

2. 在“连接到服务器”的对话框中,单击”连接“按钮。

3. 在“对象资源管理器中”依次展开“数据库“,stu,和视图。

4. 右击视图,然后选择”新建视图“的命令。

5. 在”添加表“对话框中选择student(students)表中的sno,sname,ssex,sage,sdept。

6.sdept的输出选项不可选,在筛选器一栏输入”is“,具体设置如图所示。

7. 将视图的架构属性设置为students。

8. 选择文件进行保存,输入名称”StudentISView“,然后单击确定。

实验结果:视图的创建:建立信息系学生的视图,并要求进行修改和插入操作认保持该视图只有信息系的学生:信息系学生的视图进行更新操作:更新操作后将姓名改变为‘刘晨’,如图所示:对新建的S_G视图进行删除操作;如图所示:将删除在视图中学号为201315127的学生信息。

对新建的F_Student视图进行查询操作:即选择F_Student视图中姓名为:宋敏的同学所有的信息如图所示:实验总结:通过本次实验对SQL-Server语言有了更深入的理解,并且掌握了使用SQL Server Mangement Studio创建视图。

实验五视图的创建和使用

实验五视图的创建和使用

实验五视图的创立和使用5.1概述5.1.1任务一理解视图的概念视图是一个虚拟表,其内容由查询定义。

同真实的表一样,视图包含一系列带有名称的列和行数据。

但是,视图并不在数据库中以存储的数据集合形式存在。

行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

对其中所引用的基表来说,视图的作用类似于挑选。

定义视图的挑选可以来自当前或其他数据库的一个或多个表,或者其他视图。

视图被定义后便存放在数据库中,对视图中的数据的操作与对表的操作一样,可以对其进展查询、修改和删除,但对数据的操作要满足一定的条件。

当对视图所看到的数据进展修改时,相应的基表的数据也会发生变化,同时,假设基表的数据发生变化,这种变化也会自动地反映到视图中。

5.1.2任务二理解视图的优点用户可以根据自己的实际需要创立视图,使用视图有很多优点,主要有以下几点:1、简单性视图可以屏蔽数据的复杂性,简化用户对数据库的操作。

使用视图,用户可以不必理解数据库的构造,就可以方便地使用和管理数据。

那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

2、逻辑数据独立性视图可以使应用程序和数据库表在一定程度上独立。

假设没有视图,应用一定是建立在表上的。

有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

3、平安性通过视图用户只能查询和修改他们所能见到的数据。

数据库中的其他数据那么既看不见也取不到。

5.2创立视图创立视图的方法有三种:在创立视图前请考虑如下原那么:➢只能在当前数据库中创立视图.➢视图名称必须遵循标识符的规那么,且对每个用户必须为唯一.此外,该名称不得与该用户拥有的任何表的名称一样.➢可在其他视图和引用视图的过程之上建立视图.SQLServer 2000允许嵌套多达32级视图➢假设要创立视图,数据库所有者必须授予用户创立视图的权限,并且用户对视图定义中所引用的表或视图要有适当的权限5.2.1任务一使用企业管理器创立视图使用企业管理器创立视图的详细操作步骤如下:1、翻开企业管理器窗口,翻开“新建视图〞对话框。

实验五:视图的创建与使用

实验五:视图的创建与使用
理解索引和视图的特点,并掌握创建和删除索引的方 法和视图的查询
1、 建立索引 1. 选择要创建索引的数据库文件夹, 如“S_C”文件夹,并在右边的对象窗口中选 择并打开其中的“表”对象。 2. 选择所要创建索引的表,如“Student”表, 并从“操作”菜单中选择“所有任务”子菜单 下的“管理索引”命令,打开SQL Server 的 索引管理器窗口。 3. 单击其中的“新建”按钮,创建新的索引,并 为其设置相应的属性。 4. 为Student 表创建一个基于“Sname”列 和“Sdept”列的索引IX_Student,其中 Sname列按升序排列,Sdept列按降序排列。
后单击“确定”按钮,关闭视图设计窗口,完成视图
的创建。
7) 创建一个简单视图,统计每门课程的选课人数和最高
分。
实验结
果(结 论及
成功建立了试验所要求的视图
分析)
教师
评语
2、 建立视图并利用视图查询数据 1) 启动SQL Server企业管理器,打开“SQL Server
Enterprise Manager”窗口。 2) 选择要创建视图的数据库文件夹,如“S_C”文件
夹,并在右边的对象窗口中选择其中的“视令,打开SQL Server的视图设计窗口。 4) 在“数据源关系图窗口”中单击鼠标右键,打开“添 加表”窗口,添加XSQK表和Student表。 5) 选择Student表的学号和姓名列,选择Student表的 sno,sname和ssex列,作为视图的显示列。
指导教师 黄川林
实验室 G108
实验日期
分组 情况
何威、李苗苗、杨德龙、孟炜 东、杨琦


1、 建立索引 1. 选择要创建索引的数据库文件夹, 如“S_C”文件夹,并在右边的对象窗口中选 择并打开其中的“表”对象。 2. 选择所要创建索引的表,如“Student”表, 并从“操作”菜单中选择“所有任务”子菜单 下的“管理索引”命令,打开SQL Server 的 索引管理器窗口。 3. 单击其中的“新建”按钮,创建新的索引,并 为其设置相应的属性。 4. 为Student 表创建一个基于“Sname”列 和“Sdept”列的索引IX_Student,其中 Sname列按升序排列,Sdept列按降序排列。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五视图的创建与使用
一、实验目的
(1)理解视图的概念。

(2)掌握创建视图、测试、加密视图的方法。

(3)掌握更改视图的方法。

(4)掌握用视图管理数据的方法。

二、实验内容
1.创建视图
(1)创建一个名为stuview2的水平视图,从数据库Student_info的Student表中查询出性别为“男”的所有学生的资料。

并在创建视图时使用with check option。

(注:该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。


create view stuview2
as
select
Sno,Sname,Sex,Birth,Classno,Entrance_date,Homeaddr,Sdept,Postcode from Student_20103322
where Sex='男'
with check option
(2)创建一个名为stuview3的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时,并在创建时对该视图加密。

(提示:用with ENCRYPTION关键子句)
create view stuview3
with ENCRYPTION
as
select Cno,Cname,Total_perior
from Course_20103322
where Credit>3
with check option
(3)创建一个名为stuview4的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。

create view stuview4
as
select Student_20103322.Sno,Cno,Grade
from Student_20103322,SC_20103322
where Student_20103322.Sno=SC_20103322.Sno
and Classno='051'
and Sex='女'
(4)创建一个名为stuview5的视图,能检索出每位选课学生的学号、姓名、总成绩。

create view stuview5(Sno,Sname,SumGrade)
as
select SC_20103322.Sno,Sname,SUM(Grade)
from SC_20103322,Student_20103322
where SC_20103322.Sno=Student_20103322.Sno
group by SC_20103322.Sno,Sname
2.查询视图的创建信息及视图中的数据
(1)查看视图stuview2的创建信息。

a.通过系统存储过程sp_help查看exec sp_help stuview2
b.通过查询表sysobjects select* from sysobjects
where name='stuview2'
(2) 通过查看视图的定义脚本。

a.通过系统存储过程sp_helptext
exec sp_helptext stuview2
b.通过查询表sysobjects和表syscomments
(提示:视图的名称保存在表sysobjects的name列,定义脚本保存在表syscomments的text列)

select text
from sysobjects,syscomments
where name='stuview2'
and sysobjects.id=syscomments.id
3)查看加密视图stuview3的定义脚本。

exec sp_helptext stuview3
3.修改视图的定义
(1)修改视图stuview3使其从数据库Student_info的Student表中查询总学时大于60的所有课程的课程号、课程名、学分。

(提示:若视图原具有加密保护,修改视图时若未加with encryption子句,则修改后的视图不再加密。


alter view stuview3
with ENCRYPTION
as
select Cno,Cname,Credit
from Course_20103322
where Total_perior>60
4.视图的更名与删除
1)用系统存储过程sp_rename将视图stuview4更名为stuv4。

sp_rename stuview4,stuv4
2)将视图stuv4删除。

drop view stuv4
5.管理视图中的数据
1)从视图stuview2查询出班级为“051”、姓名为“张虹”的资料。

select*
from stuview2
where Classno='051'and Sname='张虹'
2)向视图stuview2中插入一行数据,内容为:
学号姓名班级性别家庭住址入学时间出生年月
20110005 赵小林 054 男南京 2011/09/01 1993/01/09 insert
into
stuview2(Sno,Sname,Classno,Sex,Homeaddr,Entrance_date,Birth,Sdept,Pos tcode)
values('20110005','赵小林','054','男','南京','2011-09-01','1993-01-09','计算机系','211506')
3)查询student,查看表中的内容有何变化。

select*
from Student_20103322
4)向视图stuview2中插入一行数据,内容为:
学号姓名班级性别家庭住址入学时间出生年月
20110006 赵静 054 女南京 2011/09/01 1993/11/09 能成功插入吗?原因何在?
insert
into
stuview2(Sno,Sname,Classno,Sex,Homeaddr,Entrance_date,Birth,Sdept,Pos
tcode)
values('20110006','赵静','054','女','南京','2011-09-01','1993-11-09','计算机系','211506')
不能插入。

因为stuview2的水平视图,是Student_20103322_info数据库的Student_20103322表中查询出的所有性别为“男”的学生资料,插入的新数据性别为“女”,所以不能执行。

5)修改视图stuview2中的数据。

a.将stuview2中054班、姓名为“赵小林”同学的家庭地址改为“扬州市”。

update stuview2
set Homeaddr='扬州市'
where Classno='054'and Sname='赵小林'
b.查询student,查看表中的内容有何变化
select*
from Student_20103322
6)从视图stuview2中将班级为054、姓名为“赵小林”同学删除。

delete
from stuview2
where Sname='赵小林'。

相关文档
最新文档