MySQL数据库基础之视图及触发器相关知识点整理

视图的操作

视图,本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值形式存在。行和列数据来自自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。

视图的功能实际上是封装查询语句

视图的特点如下:

  • 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系;
  • 视图是由基本表(实表)产生的表(虚表);
  • 视图的建立和删除不影响基本表;
  • 对视图内容的更新(添加、删除和修改)直接影响基本表;
  • 当视图来自多个基本表时,不允许添加和删除数据;

创建视图

语法形式如下:

create view view_name AS 查询语句

和创建表一样,视图名不能和表名、也不能和其他的视图名重名。

使用视图

SELECT * FROM view_name

查看视图

SHOW TABLES查看视图

USE db_name【数据库名】;
SHOW TABLES;

SHOW TABLE STATUS 语句查看视图详细信息

SHOW TABLE STATUS 【FROM db_name】【LIKE 'pattern'】

SHOW CREATE VIEW 语句查看视图定义信息

SHOW CREATE VIEW view_name

DESCRIBE | DESC 语句产看视图设计信息

DESCRIBE | DESC view_name

删除视图

DROP VIEW view_name 【,view_name...】

通过DROP VIEW语句可以一次删除一个或多个视图

修改视图

CREATE OR REPLACE VIEW 语句修改视图

create OR REPLACE view view_name as 查询语句

通过上述语句创建视图后,如果需要更改视图时,则不需要先删除再创建,MySQL会自动进行删除和重建功能。

ALTER 语句修改视图

ALTER VIEW view_name as 查询语句

利用视图操作基本表

检索(查询)数据

SELECT * FROM view_name

对视图数据进行的更新(增加、删除和更新)操作,实际上是对其基本表数据进行更新操作。在具体更新视图数据时,需要注意以下两点:

  • 对视图数据进行添加、删除和更新操作直接影响基本表;
  • 视图来自多个基本表时,不允许添加和删除数据;

增加数据

INSERT INTO view_name (属性名1,属性名2,...) VALUES(属性1对应的值,属性2对应的值,...);

删除数据

DELETE FROM view_name WHERE条件语句

更新数据

UPDATE view_name set 要更新的属性名=更新后的属性值 WHERE语句

触发器的操作

创建触发器

创建有一条执行语句的触发器

create trigger trigger_name
    BEFORE|AFTER trigger_EVENT
        ON table_name FOR EACH ROW trigger_STMT

在上述语句中,trigger_name 参数表示所要创建的触发器名字,在具体创建触发器时,触发器标识符不能与已经存在的触发器名称重复。BEFOREAFTER参数指定了触发器执行的时间,其中前者是指在触发器事件之前执行触发器语句,后者是指在触发器事件之后执行触发器语句;trigger_EVENT参数表示触发事件,即触发器执行条件,包含DELETE、INSERT和UPDATE语句;table_name参数表示触发事件操作表的名字;FOR EACH ROW参数表示任何一条记录上的操作满足触发事件都会触发该触发器;trigger_STMT参数表示激活触发器后被执行的语句;

创建包含多条执行语句的触发器

create trigger trigger_name
    BEFORE|AFTER trigger_EVENT
        ON table_name FOR EACH ROW
            BEGIN
            trigger_STMT
            END

在上述语句中,比“只有一条执行语句的触发器”语法多出来了关键字BEGIN和END,在这两个关键字之间为所要执行的多个执行语句的内容,执行语句之间用分号隔开。

查看触发器

通过SHOW TRIGGERS语句查看触发器

删除触发器

通过DROP TRIGGER语句删除触发器

DROP TRIGGER trigger_name

原创文章,作者:ZERO,如若转载,请注明出处:https://www.edu24.cn/course/mysql-view-trigger.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZEROZERO
上一篇 2020年7月9日
下一篇 2020年7月14日

相关推荐

  • Java自学之数组

    在Java中数组是一组相关变量的集合,属于引用数据类型。 定义 数组引用传递分析 数组属于引用数据类型,在数组使用时需要通过关键字new开辟堆内存空间,一块堆内存空间也可以同时被多…

    2020年11月26日
    1.3K
  • css布局基础总结

    前端css布局知识繁杂,实现方式多种多样。想写出高效、合理的布局,必须以深厚的css基础为前提。为了方便记忆和复习,将css布局要点记录如下。内容较多,应用方面说的不太详细,但都是…

    2018年9月13日
    2.4K
  • 深入理解JS原型和继承

    在学习JS中的原型,原型链,继承这些知识之前,必须先了解并掌握基础知识:函数和对象的关系。 我们一直都知道,函数也是对象的一种,因为通过instanceof就可以判断出来。但是函数…

    2019年6月29日
    2.2K
  • css晦涩难懂的点都在这啦

    CSS大家肯定都是会的但是每个人所撑握的情况都不一样,特别是已经工作几年的前辈(这里指的是我司)很多CSS玩法都不知道,可能他们已经习惯了用组件, 但是面试的时候又不可避免问,所以…

    2021年1月20日
    1.4K
  • 封装JDBC工具类,连接MySQL数据库

    JDBC是由java编程语言编写的类及接口组成,同时它为程序开发人员提供了一组用于实现对数据库访问的JDBC API,并支持SQL语言。利用JDBC可以将JAVA代码连接到orac…

    2022年3月31日
    894
  • JAVA基础知识整理

    终于下定决心2020年转JAVA开发,自学之路坎坷曲折。俗话说的话,好记性不如烂笔头。如果有小伙伴们也像我一样在JAVA自学之路上徘徊,那就关注一下我的博客网站。我会不定期更新一下…

    2020年1月11日
    1.8K
  • CSS中的BFC是什么

    定义 一个块格式化上下文(block formatting context) 是Web页面的可视化CSS渲染出的一部分。它是块级盒布局出现的区域,也是浮动层元素进行交互的区域。 触…

    2022年11月5日
    547
  • spring boot练习篇之用户登录系统【接口篇】

    写在前面 抛弃JSP,只做纯粹的前后端分离项目。 作为一个资深前端工作者,想要转JavaWeb开发,无论是书籍,还是网上视频、资料,竟然没有一篇能清楚明白地讲解怎样搭建一个前后端分…

    2021年5月25日
    1.7K
  • flex布局详解

    往往在移动端开发过程中,弹性布局是非常实用的一种手段。往往你并不需要去反复的使用媒体查询的。整整的响应式布局是使界面能够自动的根据屏幕进行变化,做到完美的弹性布局,在必要的时候,去…

    2018年9月10日
    2.3K
  • Java自学之String类

    在实际项目开发中,String是一个必须使用的程序类,可以说是项目的核心组成类。在Java程序里所有的字符串都要求使用【’‘】进行定义,同时也可以利用【+】实现字符串的连接处理。 …

    2020年11月30日
    1.4K

发表回复

登录后才能评论