实训四:索引与视图 - SQL视图(teachingdb数据库)

第1关:创建视图

任务描述

本关任务:建立计算机系的学生的视图 student_cs。

相关知识

为了完成本关任务,你需要掌握:

  1. 视图的定义;

  2. 创建视图;

视图的定义

视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。通过视图,可以展现基表(用来创建视图的表)的部分数据;视图数据来自定义视图的查询表。

我们知道了视图的定义,那么,为什么要使用它呢?

因为视图有如下优点:

①. 简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集;

②. 安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行或列,但是通过视图就可以简单的实现;

③. 数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列队视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。

总而言之,使用视图的大部分情况是为了保障数据安全性,提高查询效率。

创建视图

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS select_statement
   [WITH [CASCADED | LOCAL] CHECK OPTION]

参数说明:

  • OR REPLACE:表示替换已有视图;

  • ALGORITHM:表示视图选择算法,默认算法是UNDEFINED(未定义的): MySQL 自动选择要使用的算法 ;merge合并;temptable临时表;

  • column_list:可选参数,指定视图中各个属性的名词,默认情况下与 select 语句中查询的属性相同;

  • select_statement:表示 select 语句;

  • [WITH [CASCADED | LOCAL] CHECK OPTION]:表示视图在更新时保证在视图的权限范围之内;cascade是默认值,表示更新视图的时候,要满足视图和表的相关条件;local表示更新视图的时候,要满足该视图定义的一个条件即可。

示例一:

image

示例二:

image

以上两个示例可以看出,虽然两个视图的字段名不同,但是,数据是相同的,因为两个视图引用的是同一个表中的数据,并且,as后的创建视图的语句也相同。

在实际开发中,用户可以根据自己的需求,通过视图的方式,获取基本表中自己需要的数据,这样既能满足用户的需求,也不会破坏基本表原来的结构,从而保证了基本表中数据的安全性。

编程要求

根据提示,在右侧编辑器补充代码:

  • 建立计算机系的学生的视图 student_cs。 student表结构 学生表
    image

测试说明

编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

参考代码

 use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  create view student_cs as select * from student where sdept = '计算机' ;
 /**********End**********/

第2关:创建视图-练习一

任务描述

本关任务: 创建由学号和平均成绩两个字段的视图 v_grade_avg

相关知识

见上一关

编程要求

根据提示,在右侧编辑器补充代码, 创建由学号和平均成绩两个字段的视图 v_grade_avg
成绩表score结构如下:
成绩表

测试说明

编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

参考代码

 use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
create view v_grade_avg 
as select sno as '学号',avg(grade) as '平均成绩' from score group by sno;
 /**********End**********/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据库系统原理上机实验 实验1数据库系统及数据库基础操作 1、实验目的 1) 熟练掌握SQL Server的使用方法。 2) 理解和掌握数据库DDL语言,能够熟练地使用SQL DDL语句创建、修改和删除数据库、模式和基本。 2、实验主要内容 1) 安装SQL Server集成环境。 2) 理解和掌握SQL DDL语句的语法,特别是各种参数的具体含义和使用方法;使用SQL语句创建、 修改和删除数据库基本。掌握SQL语句常见语法错误的调试方法。 3、设备要求 1) PC一台 实验2 SQL语言—SELECT查询操作 1、实验目的要求 1) 掌握SQL程序设计基本规范,熟练运用SQL语言实现数据基本查询,包括单查询 、分组统计查询和连接查询。 2) 掌握SQL嵌套查询和集合查询等各种高级查询的设计方法等。 2、实验主要内容 1) 针对SQL Server数据库设计各种单查询语句、分组统计查询语句;设计单个针对自 身的连接查询,设计多个的连接查询。理解和掌握SQL查询语句各个子句的 特点和作用,按照SQL程序设计规范写出具体的SQL查询语句,并调试通过。 2) 针对SQL Server数据库,正确分析用户查询要求,设计各种嵌套查询和集合查询。 3、实验仪器设备 1) 学生每个一台PC机 2) 已安装SQL Server环境 实验3 SQL语言—更新操作视图索引操作 1、实验目的要求 1) 熟悉数据库的数据更新操作,能够使用SQL语句对数据库进行数据的插入、修改 、删除操作。 2) 熟悉SQL语言有关视图操作,能够熟练使用SQL语句来创建需要的视图,定义数 据库外模式,并能使用所创建的视图实现数据管理。 3) 掌握索引设计原则和技巧,能够创建合适的索引以提高数据库查询。 2、实验主要内容 1) 针对SQL Server数据库设计单元组插入、批量数据插入、修改数据和删除数据等SQL语 句。理解和掌握INSERT、UPDATE和DELETE语法结构的各个组成成分,结合嵌套 SQL子查询,分别设计几种不同形式的插入、修改和删除数据的语句,并调试 成功。 2) 针对给定的数据库模式,以及相应的应用需求,创建视图、创建带WITH CHECK OPTION的视图,并验证视图WITH CHECK OPTION选项的有效性。理解和掌握视图消解执行原理,掌握可更新视图和不可 更新视图的区别 对视图操作: a) 创建由地点在上海的供应商组成的可更新视图SS_View; b) 创建一个包括各个工程项目及其使用的各种零件总数量的不可更新视图JP Num_View; c) 利用SQL语句对上述a)视图进行更新操作; d) 利用SQL语句对上述a)、b)视图进行更新操作; e) 利用Management Studio创建和删除视图。 对索引操作: 同上 3) 针对给定的数据库模式和具体应用需求,创建唯一索引、函数索引、复合索引等 ;修改索引;删除索引。设计相应的SQL查询验证索引有效性。 3、实验仪器设备 1) 学生每个一台PC机 2) 已安装SQL Server环境 实验4数据库的安全性、完整性 1、实验目的要求 1) 掌握自主存取控制权限的定义和维护方法; 2) 掌握实体完整性的定义和维护方法; 3) 掌握参照完整性的定义和维护方法; 4) 掌握用户自定义完整性的定义和维护方法。 2、实验主要内容 1) 定义用户、角色,分配权限给用户、角色,回收权限,以相应的用户名登录数据 库验证权限分配是否正确。选择一个应用场景,使用自主存取控制机制设计权 限分配。可以采用两种方案。方案一:采用sa超级用户登录数据库,完成所有 权限分配工作,然后用相应用户名登陆数据库以验证权限分配正确性;方案二 :采用sa用户登陆数据库创建三个部门经理用户,并分配相应的权限,然后分 别用三个经理用户名登陆数据库,创建相应部门的USER, ROLE,并分配相应权限。验证权限分配之前,请备份好数据库;针对不同用户 所具有的权限,分别设计相应的SQL语句加以验证。 2) 定义实体完整性,删除实体完整性。能够写出两种方式定义实体完整性的SQL语 句:创建时定义实体完整性、创建后定义实体完整性。设计SQL语句验证 完整性约束是否起作用。 3) 定义参照完整性,定义参照完整性的违约处理,删除参照完整性。写出两种方式 定义参照完整性的SQL语句:创建时定义参照完整性、创建后定义参照完 整性。 4) 针对具体应用语义,选择NULL/NOT NULL、DEFAULT,UNIQUE、CHECK等,定义属性上的约束条件。 3、实验仪器设备 1) 学生每个一台PC机 2) 已安装SQL Server环境 实验5数据库设计与应用开发大作业 1、实验目的要求 1) 掌握数据库设计

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qing影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值