iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql创建视图的语句怎么写
  • 1093
分享到

mysql创建视图的语句怎么写

2024-04-02 19:04:59 1093人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关Mysql创建视图的语句怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在mysql中,可以使用“CREATE VIEW”语句来创建视图,

这篇文章将为大家详细讲解有关Mysql创建视图的语句怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

mysql中,可以使用“CREATE VIEW”语句来创建视图,语法格式为“CREATE VIEW <视图名> AS <SELECT语句>”;其中“<SELECT语句>”不能包含FROM子句中的子查询,不能引用预处理语句参数。

创建视图是指在已经存在的 Mysql 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。

基本语法

可以使用 CREATE VIEW 语句来创建视图。

语法格式如下:

CREATE VIEW <视图名> AS <SELECT语句>

语法说明如下。

  • <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。

  • <SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

对于创建视图中的 SELECT 语句的指定存在以下限制:

  • 用户除了拥有 CREATE VIEW 权限外,还具有操作中涉及的基础表和其他视图的相关权限。

  • SELECT 语句不能引用系统或用户变量。

  • SELECT 语句不能包含 FROM 子句中的子查询。

  • SELECT 语句不能引用预处理语句参数。

视图定义中引用的表或视图必须存在。但是,创建完视图后,可以删除定义引用的表或视图。可使用 CHECK TABLE 语句检查视图定义是否存在这类问题。

视图定义中允许使用 ORDER BY 语句,但是若从特定视图进行选择,而该视图使用了自己的 ORDER BY 语句,则视图定义中的 ORDER BY 将被忽略。

视图定义中不能引用 TEMPORARY 表(临时表),不能创建 TEMPORARY 视图。

WITH CHECK OPTioN 的意思是,修改视图时,检查插入的数据是否符合 WHERE 设置的条件。

创建基于单表的视图

MySQL 可以在单个数据表上创建视图。

查看 test_db 数据库中的 tb_students_info 表的数据,如下所示。

mysql> SELECT * FROM tb_students_info;
+----+--------+---------+------+------+--------+------------+
| id | name   | dept_id | age  | sex  | height | login_date |
+----+--------+---------+------+------+--------+------------+
|  1 | Dany   |       1 |   25 | F    |    160 | 2015-09-10 |
|  2 | Green  |       3 |   23 | F    |    158 | 2016-10-22 |
|  3 | Henry  |       2 |   23 | M    |    185 | 2015-05-31 |
|  4 | Jane   |       1 |   22 | F    |    162 | 2016-12-20 |
|  5 | Jim    |       1 |   24 | M    |    175 | 2016-01-15 |
|  6 | John   |       2 |   21 | M    |    172 | 2015-11-11 |
|  7 | Lily   |       6 |   22 | F    |    165 | 2016-02-26 |
|  8 | Susan  |       4 |   23 | F    |    170 | 2015-10-01 |
|  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |
| 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |
+----+--------+---------+------+------+--------+------------+
10 rows in set (0.00 sec)

【实例 1】在 tb_students_info 表上创建一个名为 view_students_info 的视图,输入的 SQL 语句和执行结果如下所示。

mysql> CREATE VIEW view_students_info
    -> AS SELECT * FROM tb_students_info;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM view_students_info;
+----+--------+---------+------+------+--------+------------+
| id | name   | dept_id | age  | sex  | height | login_date |
+----+--------+---------+------+------+--------+------------+
|  1 | Dany   |       1 |   25 | F    |    160 | 2015-09-10 |
|  2 | Green  |       3 |   23 | F    |    158 | 2016-10-22 |
|  3 | Henry  |       2 |   23 | M    |    185 | 2015-05-31 |
|  4 | Jane   |       1 |   22 | F    |    162 | 2016-12-20 |
|  5 | Jim    |       1 |   24 | M    |    175 | 2016-01-15 |
|  6 | John   |       2 |   21 | M    |    172 | 2015-11-11 |
|  7 | Lily   |       6 |   22 | F    |    165 | 2016-02-26 |
|  8 | Susan  |       4 |   23 | F    |    170 | 2015-10-01 |
|  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |
| 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |
+----+--------+---------+------+------+--------+------------+
10 rows in set (0.04 sec)

默认情况下,创建的视图和基本表的字段是一样的,也可以通过指定视图字段的名称来创建视图。

【实例 2】在 tb_students_info 表上创建一个名为 v_students_info 的视图,输入的 SQL 语句和执行结果如下所示。

mysql> CREATE VIEW v_students_info
    -> (s_id,s_name,d_id,s_age,s_sex,s_height,s_date)
    -> AS SELECT id,name,dept_id,age,sex,height,login_date
    -> FROM tb_students_info;
Query OK, 0 rows affected (0.06 sec)
mysql> SELECT * FROM v_students_info;
+------+--------+------+-------+-------+----------+------------+
| s_id | s_name | d_id | s_age | s_sex | s_height | s_date     |
+------+--------+------+-------+-------+----------+------------+
|    1 | Dany   |    1 |    24 | F     |      160 | 2015-09-10 |
|    2 | Green  |    3 |    23 | F     |      158 | 2016-10-22 |
|    3 | Henry  |    2 |    23 | M     |      185 | 2015-05-31 |
|    4 | Jane   |    1 |    22 | F     |      162 | 2016-12-20 |
|    5 | Jim    |    1 |    24 | M     |      175 | 2016-01-15 |
|    6 | John   |    2 |    21 | M     |      172 | 2015-11-11 |
|    7 | Lily   |    6 |    22 | F     |      165 | 2016-02-26 |
|    8 | Susan  |    4 |    23 | F     |      170 | 2015-10-01 |
|    9 | Thomas |    3 |    22 | M     |      178 | 2016-06-07 |
|   10 | Tom    |    4 |    23 | M     |      165 | 2016-08-05 |
+------+--------+------+-------+-------+----------+------------+
10 rows in set (0.01 sec)

可以看到,view_students_info 和 v_students_info 两个视图中的字段名称不同,但是数据却相同。因此,在使用视图时,可能用户不需要了解基本表的结构,更接触不到实际表中的数据,从而保证了数据库的安全

创建基于多表的视图

MySQL 中也可以在两个以上的表中创建视图,使用 CREATE VIEW 语句创建。

【实例 3】在表 tb_student_info 和表 tb_departments 上创建视图 v_students_info,输入的 SQL 语句和执行结果如下所示。

mysql> CREATE VIEW v_students_info
    -> (s_id,s_name,d_id,s_age,s_sex,s_height,s_date)
    -> AS SELECT id,name,dept_id,age,sex,height,login_date
    -> FROM tb_students_info;
Query OK, 0 rows affected (0.06 sec)
mysql> SELECT * FROM v_students_info;
+------+--------+------+-------+-------+----------+------------+
| s_id | s_name | d_id | s_age | s_sex | s_height | s_date     |
+------+--------+------+-------+-------+----------+------------+
|    1 | Dany   |    1 |    24 | F     |      160 | 2015-09-10 |
|    2 | Green  |    3 |    23 | F     |      158 | 2016-10-22 |
|    3 | Henry  |    2 |    23 | M     |      185 | 2015-05-31 |
|    4 | Jane   |    1 |    22 | F     |      162 | 2016-12-20 |
|    5 | Jim    |    1 |    24 | M     |      175 | 2016-01-15 |
|    6 | John   |    2 |    21 | M     |      172 | 2015-11-11 |
|    7 | Lily   |    6 |    22 | F     |      165 | 2016-02-26 |
|    8 | Susan  |    4 |    23 | F     |      170 | 2015-10-01 |
|    9 | Thomas |    3 |    22 | M     |      178 | 2016-06-07 |
|   10 | Tom    |    4 |    23 | M     |      165 | 2016-08-05 |
+------+--------+------+-------+-------+----------+------------+
10 rows in set (0.01 sec)

通过这个视图可以很好地保护基本表中的数据。视图中包含 s_id、s_name 和 dept_name,s_id 字段对应 tb_students_info 表中的 id 字段,s_name 字段对应 tb_students_info 表中的 name 字段,dept_name 字段对应 tb_departments 表中的 dept_name 字段。

关于mysql创建视图的语句怎么写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: mysql创建视图的语句怎么写

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

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

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

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

下载Word文档
猜你喜欢
  • mysql创建视图的语句怎么写
    这篇文章将为大家详细讲解有关mysql创建视图的语句怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在mysql中,可以使用“CREATE VIEW”语句来创建视图,...
    99+
    2024-04-02
  • SQL创建视图的语句怎么写
    小编给大家分享一下SQL创建视图的语句怎么写,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQL创建视图的语句是什么使用crea...
    99+
    2024-04-02
  • oracle创建视图的语句是什么
    在Oracle中,要创建一个视图,可以使用如下的SQL语句: CREATE VIEW view_name AS SELECT...
    99+
    2024-04-09
    oracle
  • 如何实现MySQL中创建视图的语句?
    如何实现MySQL中创建视图的语句?MySQL中的视图(View)是一种虚拟表,它是基于SELECT查询语句的结果集的可视化表示,提供了一种方便的方式来对复杂的查询结果进行重用和简化。在MySQL中,创建视图的语句遵循一定的语法规则...
    99+
    2023-11-08
    创建 视图 编程关键词:mySQL
  • MySQL创建临时表的语句怎么写
    在MySQL中,可以使用CREATE TABLE语句来创建临时表。临时表是一种在当前会话中存在,并在会话结束后自动删除的表。 下面是...
    99+
    2024-04-09
    MySQL
  • 数据库sql语句(视图的创建)
    例题:  建表:要注意各表之间的索引联系,建表先后顺序很重要,不然建不了,例如先建dept,在建其他表,先在dept插入数据,再在其他表插入数据 (1) create table week8student(SNO int primary...
    99+
    2023-09-27
    sql mysql 数据库
  • 在MySQL中创建数据库的语句怎么写
    这篇文章主要介绍在MySQL中创建数据库的语句怎么写,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!创建数据库的语句是:【CREATE DATABASE [IF NOT EXISTS]...
    99+
    2024-04-02
  • mysql中创表语句的怎么写
    mysql中创表语句的怎么写?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!在MySQL中,可以使用“CREATE TABL...
    99+
    2024-04-02
  • MySQL中怎么创建视图
    MySQL中怎么创建视图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 MariaDB [test]> C...
    99+
    2024-04-02
  • mysql建表语句怎么写
    这篇文章主要介绍了mysql建表语句怎么写,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql中的建表语句是【CREATE TABLE ta...
    99+
    2024-04-02
  • navicat使用SQL语句创建视图的方法
    这篇文章主要介绍了navicat使用SQL语句创建视图的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。navicat是一款非常好用的数据...
    99+
    2024-04-02
  • mysql数据库创建数据表的语句怎么写
    这篇文章将为大家详细讲解有关mysql数据库创建数据表的语句怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在mysql中,可以使用“CREATE TABLE”语句来...
    99+
    2024-04-02
  • 怎么用SQL语句创建视观表
    本篇内容介绍了“怎么用SQL语句创建视观表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!视观表(Views...
    99+
    2024-04-02
  • oracle创建序列的sql语句怎么写
    要在Oracle中创建一个序列,可以使用以下SQL语句: CREATE SEQUENCE sequence_name START W...
    99+
    2024-03-14
    oracle
  • oracle创建表空间语句怎么写
    这篇文章给大家分享的是有关oracle创建表空间语句怎么写的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。在创建用户之前,先要创建表空间:格式:create tablespace ...
    99+
    2024-04-02
  • mysql视图创建后怎么管理
    一旦创建了MySQL视图,可以使用以下方法对其进行管理: 更新视图:可以使用CREATE OR REPLACE VIEW语句来更...
    99+
    2024-04-09
    mysql
  • MYSQL中怎么创建一个视图
    MYSQL中怎么创建一个视图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一. 视图概述视图是一个虚拟表,其内容由查询定义。同真实的表一样...
    99+
    2024-04-02
  • mysql怎么用sql语句创建表
    要使用 sql 在 mysql 中创建表,可以使用 create table 语句。语法为:create table table_name (column_name data_type ...
    99+
    2024-04-22
    mysql sql语句
  • mysql创建表的sql语句
    这篇文章主要介绍mysql创建表的sql语句,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql创建表的sql语句mysql建表常用sql语句:连接:mysql -h主机地址 -...
    99+
    2024-04-02
  • mysql 创建索引语句
    一、创建索引 PRIMARYKEY(主键索引) mysql > ALTERTABLE`table_name`ADDPRIMARYKEY (`column`) 2.UNIQUE(唯一索引) mysql ...
    99+
    2023-08-31
    mysql 数据库 java 面试 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作