广告
返回顶部
首页 > 资讯 > 数据库 >操作MySQL的DDL语句视图方法
  • 595
分享到

操作MySQL的DDL语句视图方法

2024-04-02 19:04:59 595人浏览 薄情痞子
摘要

本文主要给大家介绍操作Mysql的DDL语句视图方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下操作mysql的DDL语句视图方法吧。1. 背景&

本文主要给大家介绍操作Mysql的DDL语句视图方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下操作mysql的DDL语句视图方法吧。

1. 背景

   * 视图是数据库中的虚拟表。包含一系列带有名称的行和列数据。视图是从一个或者多个表中导出的,视图的行为与表非常相似,用户可以使用SELECT语句查询数据,以及使用INSERT、UPDATE和DELETE修改记录,视图使用户操作更加方便而且保障数据库系统的安全

   * 视图一旦定义便存储在数据库中,与其对应的数据并没有像表那样在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改和删除。当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时若基本表的数据放生变化,则这种变化也会自动地反应到视图中。

2. 视图作用

   * 使查询变得很清晰,视图中存放的数据就是我们所要的数据,并且可以简化用户操作。

   * 让数据更安全,视图中的数据,不存在视图中,还是在基本表里面,通过视图这层关系,我们可以有效的保护我们的重要数据

     * 提高表的逻辑独立性,视图可以屏蔽原有表结构变化带来的影响

操作MySQL的DDL语句视图方法

3. 视图类型

   * MERGE: 将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。

   * TEMPTABLE: 将视图的结果将被置于临时表中,然后使用它执行语句。

   * UNDEFINED:默认所使用的算法。Mysql更倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效。

4. 视图类型例子

   * 创建基表users

mysql> CREATE TABLE users(
    -> id BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    -> name VARCHAR(64) NOT NULL,
    -> sex ENUM('M', 'F') NOT NULL,
    -> age INT NOT NULL
    -> )ENGINE=INNODB CHARSET=utf8mb4;
Query OK, 0 rows affected (0.15 sec)

   * 对基表 users 插入数据

mysql> INSERT INTO users VALUES(NULL, 'tom', 'M', 23), (NULL, 'jak', 'F', 32), (NULL, 'jus', 'M', 35);
Query OK, 3 rows affected (0.04 sec)
Records: 3  Duplicates: 0  Warnings: 0

   * 查看基表数据

mysql> SELECT * FROM users;
+----+------+-----+-----+
| id | name | sex | age |
+----+------+-----+-----+
|  1 | tom  | M   |  23 |
|  2 | jak  | F   |  32 |
|  3 | jus  | M   |  35 |
+----+------+-----+-----+
3 rows in set (0.00 sec)

   * 创建用户id和name vusers1视图,类型为UNDEFINED

mysql> CREATE ALGoRITHM=UNDEFINED VIEW vusers1 AS SELECT id, name FROM users;
Query OK, 0 rows affected (0.01 sec)

   * 分析查看 vusers1 视图执行计划 

        [ 未使用临时表 ]

mysql> EXPLaiN SELECT * FROM vusers1;
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
|  1 | SIMPLE      | users | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    3 |   100.00 | NULL  |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

   * 创建用户id和name vusers2视图,类型为merge

mysql> CREATE ALGORITHM=MERGE VIEW vuser2 AS SELECT id, name FROM users;
Query OK, 0 rows affected (0.03 sec)

   * 分析查看 vusers2 视力执行计划

     [ 未使用临时表 ]

mysql> EXPLAIN SELECT * FROM vuser2;
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
|  1 | SIMPLE      | users | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    3 |   100.00 | NULL  |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
1 row in set, 1 warning (0.01 sec)

   * 创建用户id和name vusers3视图,类型为TEMPTABLE

mysql> CREATE ALGORITHM=TEMPTABLE VIEW vuser3 AS SELECT id, name FROM users;
Query OK, 0 rows affected (0.19 sec)

   * 分析查看 vusers3 视力执行计划

     [ 使用了临时表 ]

mysql> EXPLAIN SELECT * FROM vuser3;
+----+-------------+------------+------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table      | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra |
+----+-------------+------------+------------+------+---------------+------+---------+------+------+----------+-------+
|  1 | PRIMARY     | <derived2> | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    3 |   100.00 | NULL  |
|  2 | DERIVED     | users      | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    3 |   100.00 | NULL  |
+----+-------------+------------+------------+------+---------------+------+---------+------+------+----------+-------+
2 rows in set, 1 warning (0.00 sec)

5. 查看视图信息

   * desc 查看视图基本信息

mysql> desc vusers1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | bigint(20)  | NO   |     | 0       |       |
| name  | varchar(64) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

   * show table status 查看视图基本信息

mysql> show table status like 'vusers1';
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-----------+----------+----------------+---------+
| Name   | Engine | Version | Row_fORMat | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-----------+----------+----------------+---------+
| vuser1 | NULL   |    NULL | NULL       | NULL |           NULL |        NULL |            NULL |         NULL |      NULL |           NULL | NULL        | NULL        | NULL       | NULL      |     NULL | NULL           | VIEW    |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-----------+----------+----------------+---------+
1 row in set (0.00 sec)

   * show create view 查看视图信息

mysql> show create view vuser1;
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
| View   | Create View                                                                                                                                                   | character_set_client | collation_connection |
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
| vuser1 | CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vuser1` AS select `users`.`id` AS `id`,`users`.`name` AS `name` from `users` | utf8                 | utf8_general_ci      |
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
1 row in set (0.00 sec)

6. 总结

以需求驱动技术,技术本身没有优略之分,只有业务之分。

看完以上关于操作MySQL的DDL语句视图方法,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的数据库栏目的。

您可能感兴趣的文档:

--结束END--

本文标题: 操作MySQL的DDL语句视图方法

本文链接: https://www.lsjlt.com/news/34482.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 操作MySQL的DDL语句视图方法
    本文主要给大家介绍操作MySQL的DDL语句视图方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下操作MySQL的DDL语句视图方法吧。1. 背景&...
    99+
    2022-10-18
  • Oracle中获取TABLE的DDL语句的方法
    获取表的DDL的方法 在获取表的DDL的时候,可以使用多种方法进行获取: 1、利用 DBMS_METADATA.GET_DDL,获取表的 DDL 语句 2、imp.indexfile  3、imp...
    99+
    2022-10-18
  • navicat使用SQL语句创建视图的方法
    这篇文章主要介绍了navicat使用SQL语句创建视图的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。navicat是一款非常好用的数据...
    99+
    2022-10-18
  • mysql创建视图的语句怎么写
    这篇文章将为大家详细讲解有关mysql创建视图的语句怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在mysql中,可以使用“CREATE VIEW”语句来创建视图,...
    99+
    2022-10-18
  • SQL语句中的DDL类型的数据库定义语言操作
    目录SQL语句之DDL类型的数据库定义语言1.DDL类型的SQL语句基本概述2.DDL类型的SQL语句之数据库层面的操作2.1.创建一个数据库2.2.查看mysql中有哪些数据库2.3.进入某个数据库2.4.查看当前处于...
    99+
    2022-08-09
    SQL DDL数据库定义语言 SQL数据库定义语言
  • mysql语句的基本操作
    实践练习环境:直接在生产环境中操作OS:CentOS6.8具体操作流程如下:Last login: Wed Aug 10 08:07:15 2016 from ********欢迎登录***********...
    99+
    2022-10-18
  • navicat创建视图的操作方法
    小编给大家分享一下navicat创建视图的操作方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!打开navicat for mysql软件之后打开相应的数据库。然后点击视图。点击新建视图。这里...
    99+
    2022-10-18
  • MySQL(一)基本架构、SQL语句操作、试图
    MySQL系列文章 MySQL(一)基本架构、SQL语句操作、试图 MySQL(二)索引原理以及优化 MySQL(三)SQL优化、Buffer pool、Change buffer MySQL(四)事务原理及分析 MySQL(五)缓存策略 ...
    99+
    2023-08-16
    mysql 架构 sql
  • PS视图操作的方法有哪些
    本文小编为大家详细介绍“PS视图操作的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“PS视图操作的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 我们在P...
    99+
    2022-10-19
  • Shell脚本中执行sql语句操作mysql的5种方法
    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美...
    99+
    2022-06-04
    种方法 语句 脚本
  • 如何实现MySQL中删除视图的语句?
    如何实现MySQL中删除视图的语句?视图是MySQL中一种虚拟表,它是基于查询结果的表。在某些情况下,我们可能不再需要某个视图或者需要重新定义视图结构,这时就需要删除视图。那么,接下来我将介绍如何在MySQL中使用删除视图的语句,以及提供具...
    99+
    2023-11-08
    ``` MySQL 删除视图的语句如下: ```sql DROP VIEW view_name;
  • 如何实现MySQL中创建视图的语句?
    如何实现MySQL中创建视图的语句?MySQL中的视图(View)是一种虚拟表,它是基于SELECT查询语句的结果集的可视化表示,提供了一种方便的方式来对复杂的查询结果进行重用和简化。在MySQL中,创建视图的语句遵循一定的语法规则...
    99+
    2023-11-08
    创建 视图 编程关键词:mySQL
  • MySQL语句的优化方法
    本篇内容主要讲解“MySQL语句的优化方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL语句的优化方法”吧! 1.建立基准,建立基准,建立基...
    99+
    2022-10-18
  • MySQL下sql语句的相关操作
    下文给大家带来有关MySQL下sql语句的相关操作内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完MySQL下sql语句的相关操作你一定会有所收获。1、向表T1中...
    99+
    2022-10-18
  • 通过Query Profiler查看MySQL语句运行时间的操作方法
    上篇文章给大家介绍了查看mysql语句运行时间的2种方法,今天继续给大家介绍查看MySQL语句运行时间,感兴趣的朋友一起学习吧! Query Profiler是MYSQL自带的一种q...
    99+
    2022-11-11
  • mysql删除视图的方法
    这篇文章主要介绍mysql删除视图的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在mysql中可以使用“DROP VIEW”语句来删除视图,语法格式为“DROP VIEW &l...
    99+
    2022-10-18
  • mysql写循环语句的方法
    mysql写循环语句的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql写循环语句的方法:1、使用while循环...
    99+
    2022-10-18
  • mysql中的视图语法有哪些
    这篇文章将为大家详细讲解有关mysql中的视图语法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中的视图语法:1、创建视图,代码为【CREATE [OR ...
    99+
    2022-10-18
  • MySQL中的视图有哪些语法
    这篇文章主要讲解了“MySQL中的视图有哪些语法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL中的视图有哪些语法”吧!视图是什么视图View是一种虚拟的表,本身不保存数据,内部封装...
    99+
    2023-06-02
  • 视图模式及T-SQL语句操作管理SQL Server数据库
    关于SQL Server数据库相关理论概念请参考:SQL Server数据库、表、数据类型基本概念 一、视图模式管理表 SQL Server对数据库的操作有两种方式,即可视化操作界面和SQL语言。下面介绍在...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作