my sql实验视图_MySQL视图——学习笔记及实验

本文介绍了MySQL视图的概念、优势以及执行机制。通过创建、查看、更新和删除视图的实例,阐述了视图在学生信息管理中的应用,强调了视图在数据安全性、灵活性和逻辑独立性方面的作用。
摘要由CSDN通过智能技术生成

MySQL视图

一、视图

1.1、视图概述

视图是从一个或者多个表里导出来的表,是一种虚拟存在的表;

其内容由查询定义,即视图中的数据不需要占用内存空间,而是仅仅保存了一条select语句;

行列数据都来自所引用的表,并随着基本表的变化而变化。使用原因:安全,易于理解和使用。

1.2、视图优势

增强数据安全性:给不同用户分配不同的视图,用户只能操作查看相对应的数据,无法看到数据表的结构,增强了数据安全访问控制。

提高灵活性,操作变简单:由于视图是一种虚拟表,用户可以自由的选择所需要的数据进行定义,操作灵活,简单。

提高数据的逻辑独立性:表结构和应用程序的变化,都可以通过重新定义视图或者修改视图定义来解决。

1.3、执行机制

当调用视图时,才会执行视图中的SQL语句,进行数据操作,视图和表的数据总是一样的。

二、视图定义和管理(以studentinfo为实验例子)

在学生管理系统中,有学生信息表studentinfo表,其表结构如下:

字段名

字段描述

数据类型

主键

外键

非空

唯一

自增

Number

学号

INT(4)

Name

姓名

VARCHAR(20)

Major

专业

VARCHAR(20)

age

年龄

INT(4)

2.1.1、创建视图

使用CREATE VIEW语句来创建视图college_view,显示studentinfo表中的number,name,age,major,并将字段名显示为:student_num,student_name, student_age, department。

mysql> create table studentinfo(

-> number int(4) primary key not null unique comment '学号',

-> name varchar(20) not null comment '姓名',

-> major varchar(20) comment '专业',

-> age int(4) comment '年龄'

-> );

答:

Create view college_view(studnet_num,student_name,studnet_age,department) as select number,name,age,major from studentinfo;

2.1.2、查看视图

执行SHOW CREATE VIEW语句来查看视图的详细结构。

Describe college_view;

Show table status like ‘college_view’;

show create view college_view;

答:show create view college_view;

+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+

| View         | Create View                                                                                                                                                                                                                                                                           | character_set_client | collation_connection |

+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+

| college_view | CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `college_view` AS select `studentinfo`.`number` AS `studnet_num`,`studentinfo`.`name` AS `student_name`,`studentinfo`.`age` AS `studnet_age`,`studentinfo`.`major` AS `department` from `studentinfo` | utf8                 | utf8_general_ci      |

+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+

1 row in set

2.1.3、更新视图(插入、更新、删除)

向视图中插入如下3条记录:

0901,'张三',20,'外语'

0902,'李四',22,'计算机'

0903,'王五',19,'计算机'

答:

insert into college_view() values

-> (0901,'张三',20,'外语'),

-> (0902,'李四',22,'计算机'),

-> (0903,'王五',19,'计算机');

2.1.4、修改视图

使视图中只显示专业为“计算机”的信息。

Create or replace view college_view(student_num, student_name, student_age,department) as select number,name,age, majorfrom studentinfo where major='计算机' with local check option;

local check option 是可选参数,表示更新视图是要保证在改视图的权限范围之内,可选属性,为了数据安全性建议使用。

答:或者 alter view

Alter view college_view(student_num,student_name,student_age,department)

-> as select number,name,age, major

-> from studentinfo where major='计算机' with local check option;

2.1.5、删除视图

答:drop view college_view;

三、总结

创建视图和修改视图为重点,并且以查看辅助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值