MySQL数据库对视图的操作方法
admin
2023-05-13 07:02:02
0

下面一起来了解下MySQL数据库对视图的操作方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL数据库对视图的操作方法这篇短内容是你想要的。

使用视图的原则:

1、视图名字唯一性

2、视图的创建个数不受限制,用户可以创建多个视图

3、用户创建视图,必须从数据库管理员得到权限。

4、视图可以嵌套,

5、一些数据库管理系统禁止用户在查询语句中使用order by子句。

一、创建实用表数据

创建学生表

mysql> create table studenginfo(sno int(4) zerofill,sname varchar(18),sex ENUM('男','女') not null default '女',address varchar(48) default '北京',dno int(3));
Query OK, 0 rows affected (0.07 sec)

创建学院表

create table recruitinfo(address varchar(18) not null,score float not null,snum int(3) not null);
Query OK, 0 rows affected (0.08 sec)
mysql> show create table department\G;
*************************** 1. row ***************************
       Table: department
Create Table: CREATE TABLE `department` (
  `dno` int(2) NOT NULL,
  `dname` varchar(18) NOT NULL,
  `dnum` int(3) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

为学生表创建索引

mysql> create index name_index on studentinfo (sname);

二、视图:

视图作为查询数据的另外一种形式,利用视图,用户可以集中、简化和定制数据库,同时提供了安全保证

视图是从一个或过个表中导出的表,其结构和数据是建立在对标的查询基础之上的。就本质而言,视图是一张虚表。

视图创建语法:

create view  [column1,column2...] as
select  from ;

其中[column1,column2,...]为可选项,缺省是子查询结果中的字段名,select语句指明了视图中的字段机器数据。

强调:

1、视图创建后,只在数据字典中存放视图的定义,而其中的select语句并不执行

2、只有当用户对视图进行操作时,才按照视图的定义将数据从基本表中取出。

创建视图:

1、创建一个与studentinfo相同信息的视图

mysql> create view studentinfo_view as select * from studentinfo;
select * from studentinfo_view;

2、为视图创建视图

mysql> create view boy_view as select * from studentinfo_view where sex='男';

3、为列创建视图并查看其信息

mysql> create view nameaddress_view as select sname,address from studentinfo;

4、创建与表具有不同字段名的视图

mysql> create view New_view(boy_name,boy_address) as select sname,address from studentinfo where sex='男';
Query OK, 0 rows affected (0.00 sec)

5、利用视图简化表的复杂连接

创建一个关于学生信息表(studentinfo)、招生信息表(Recruitinfo)和Department的关联。

sname、dname和dnum三个字段。

mysql> create view join_view as select sname,dname,score from studentinfo s,department d,recruitinfo r where s.address=r.address and s.dno=d.dno;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from join_view;
+-----------+--------------------+-------+
| sname     | dname              | score |
+-----------+--------------------+-------+
| 张平      | 汽车系             | 648.5 |
| 李山      | 电子工程系         |   560 |
| 王彤      | 汽车系             | 654.5 |
| 张伟      | 计算机工程系       |   638 |
| 高守传    | 机械工程           |   650 |
| 刘红      | 工程物理系         | 629.5 |
| 张勇      | 应用数学系         |   625 |
| 刘晓      | 电子工程系         |   650 |
| 吴军      | 电子工程系         |   631 |
| 张大山    | 材料工程系         |   635 |
+-----------+--------------------+-------+
10 rows in set (0.03 sec)

6、视图简化复杂查询的过程

6.1 给予学生表,创建boys_view视图,包含所有男同学信息

mysql> create view boys_view as select * from studentinfo where sex='男';

给予recruitinfo表,创建视图score_view,包含录取分数高于630的所有学生的信息

mysql> create view boyscore_view as select * from score_view where sno in (select sno from boys_view);
mysql> select * from boyscore_view;
+------+-----------+-----+---------+------+
| sno  | sname     | sex | address | dno  |
+------+-----------+-----+---------+------+
| 0005 | 高守传    | 男  | 山东    |    3 |
| 0004 | 张伟      | 男  | 浙江    |    1 |
| 0009 | 吴军      | 男  | 山西    |    4 |
| 0010 | 张大山    | 男  | 陕西    |    7 |
+------+-----------+-----+---------+------+
4 rows in set (0.00 sec)
mysql> create view result_view (sname,dname) as select boyscore_view.sname,department.dname from boyscore_view,department where boyscore_view.dno=department.dno;
Query OK, 0 rows affected (0.00 sec)

删除视图

语法:drop view view_name

drop view studentinfo_view

注意:视图在物理上是不存在的,只是一个查询结果,是一个被存储的查询。create view语句只是保存了视图的定义,所以在使用drop view语句删除视图时,删除的也只是视图的定义,对实际表中的数据没有影响。

看完MySQL数据库对视图的操作方法这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。

相关内容

热门资讯

日本或向菲律宾出口导弹 据日本广播协会(NHK)今天(5月15日)援引知情人士消息报道,菲律宾对日本陆上自卫队的88式岸基反...
常州打造特色工艺半导体产业“芯... 5月13日,第四届特色工艺半导体产业发展常州大会暨常州市“百场千企”产业链融链强链对接活动顺利举行。...
2026厦门国际智能交通运输产... 5月13日,为期三天的2026厦门国际智能交通运输产业博览会(CITSE 2026,以下简称“智交会...
10家中国公司能买英伟达H20... 芯东西 编译 | ZeR0 编辑 | 漠影 芯东西5月14日消息,据外媒今日报道,三位知情人士透露,...
人形机器人也要“上户口”办“数... 人形机器人也要“上户口”办“数字身份证” 四川正推进各项标准制定 湖北人形机器人创新中心,工作人...
马斯克幼子的虎头包走红,品牌方... 5月14日上午,跟随美国总统特朗普访华的特斯拉首席执行官马斯克,携幼子现身人民大会堂,孩子身上的新中...
甲醛对人体的危害有哪些 最佳回答 首先甲醛会危害人的呼吸系统,有可能会导致呼吸系统紊乱,其次,甲醛也有可能会导致人的基因突...
甲醛超标对孕妇的危害 最佳回答 甲醛超标对孕妇的影响其实还挺大的。 首先在甲醛超标的前提之下,孕妇有可能在该空间之内受甲醛...
水循环电热毯有辐射吗 水循环电热毯应该辐射会非常的小,几乎可以忽略不计,因为这种电热毯的工作原理是通过微弱的脉冲热能,将电...
电暖气有辐射吗对孕妇 最佳回答 电暖器也会产生辐射,不过电暖器的辐射本身属于电磁辐射只要注意使用的时间和使用的距离,那对孕...