mysql-视图

mysql视图的定义

视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。

但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由其定义结果组成的表;

mysql视图的优点

1、数据库视图允许简化复杂查询,通过数据库视图,您只需使用简单的SQL语句,而不是使用具有多个连接的复杂的SQL语句。

2、安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。

mysql视图的缺点

1、性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。

2、表依赖关系:将根据数据库的基础表创建一个视图。每当更改与其相关联的表的结构时,都必须更改视图。

临时表应用举例

创建两张有关系的表,创建一个db10数据库进行操作

创建course表

mysql> create database db10;
Query OK, 1 row affected (0.06 sec)

mysql> use db10;
Database changed

mysql> create table course(cid int primary key auto_increment,cname varchar(10),teacher_id int);
Query OK, 0 rows affected (0.19 sec)

mysql> insert into course values (1,'生物',1),(2,'物理',2),(3,'体育',3),(4,'美术',2);
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from course;
+-----+--------+------------+
| cid | cname  | teacher_id |
+-----+--------+------------+
|   1 | 生物   |          1 |
|   2 | 物理   |          2 |
|   3 | 体育   |          3 |
|   4 | 美术   |          2 |
+-----+--------+------------+
4 rows in set (0.00 sec)

创建teacher表

mysql> create table teacher(tid int primary key auto_increment,tname varchar(10));
Query OK, 0 rows affected (0.39 sec)

mysql> insert into teacher values(1,'张三'),(2,'李四'),(3,'王五'),(4,'朱六'),(5,'陈七');
Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from teacher;
+-----+--------+
| tid | tname  |
+-----+--------+
|   1 | 张三   |
|   2 | 李四   |
|   3 | 王五   |
|   4 | 朱六   |
|   5 | 陈七   |
+-----+--------+
5 rows in set (0.00 sec)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

MySQL和Oracle对比学习之事务(r5笔记第4天)

MySQL中的存储引擎很是丰富,常用的有InnoDB,MyISAM等,也查看了不少的资料,基本也有所了解,从一些参考书中看MySQL中的sql部分也是一扫而过,...

4498
来自专栏Java后端技术栈

MySQL 清除表空间碎片

(1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大...

984
来自专栏aoho求索

MySQL探秘(五):InnoDB锁的类型和状态查询

 锁是数据库系统区分于文件系统的一个关键特性。数据库使用锁来支持对共享资源进行并发访问,提供数据的完整性和一致性。此外,数据库事务的隔离性也是通过锁实现的。In...

971
来自专栏沃趣科技

会话和锁信息查询视图 | 全方位认识 sys 系统库

在上一篇《等待事件统计视图 | 全方位认识 sys 系统库》中,我们介绍了sys 系统库中的等待事件统计视图,本期的内容先给大家介绍会话信息和锁等待信息查询视图...

1260
来自专栏用户2442861的专栏

MySQL详解--锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如...

893
来自专栏琯琯博客

MySQL 查询优化

21111
来自专栏Hongten

python开发_sqlite3_绝对完整_博主推荐

=========================================

874
来自专栏小怪聊职场

MySQL(七)|MySQL分库分表的那点事(小怪的Java群第一次话题讨论)

2614
来自专栏数据和云

循序渐进:Oracle 12c新特性Sharding技术解读

引言 数据库构架设计中主要有 Shared Everthting、Shared Nothing 和 Shared Disk: Shared Everthting...

4517
来自专栏沈唁志

谈谈在SQL语句中的优化技巧

1834

扫码关注云+社区