JAVA 2022.7.22课程总结(数据库)

 一、2022.7.22数据库课程基础知识

 二、数据库文件2

数据库工具:
    视图
        MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。
        只保存SQL语句
            数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。
        操作
            创建视图
                CREATE VIEW <视图名> AS <SELECT语句>
                创建的视图和基本表的字段是一样的,也可以通过指定视图字段的名称来创建视图
                CREATE VIEW v_students_info (     s_id,     s_name ) AS SELECT     id,     NAME FROM     tb_students_info;
            查看视图定义(和查看表类似)
                DESCRIBE 视图名;
                SHOW CREATE VIEW 视图名;(语句)
            修改视图定义
                ALTER VIEW <视图名> AS <SELECT语句>
            修改视图名称
                修改视图的名称可以先将视图删除,然后按照相同的定义语句进行视图的创建,并命名为新的视图名称
            删除视图
                DROP VIEW  IF EXISTS <视图名1> [ , <视图名2> …]
            可以像表一样进行CURD操作, 但增删改的操作受限
                单表操作,只要有表的权限即可
                多表操作,可以将一条语句分成多个语句
                    INSERT INTO v (a_id, b_id, ta_id, v1, v2) VALUES (3, 5, 3, 30, 500);会报错可以拆分为
            对视图的操作会作用到物理表上
                用户可以通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟的表,没有数据。通过视图更新时转到基本表上进行更新,如果对视图增加或删除记录,实际上是对基本表增加或删除记录。INSERT INTO v (a_id, v1) VALUES (3, 30);和INSERT INTO v (b_id, ta_id, v2) VALUES (5, 3, 500);
        优点
            定制用户数据,聚焦特定的数据
                不同的用户可能对不同的数据有不同的要求.
            简化数据操作
                在使用查询时,很多时候要使用聚合函数,同时还要显示其他字段的信息,可能还需要关联到其他表,语句可能会很长,如果这个动作频繁发生的话,可以创建视图来简化操作。
            提高数据的安全性
                视图是虚拟的,物理上是不存在的。可以只授予用户视图的权限,而不具体指定使用表的权限,来保护基础数据的安全。
            共享所需数据
                通过使用视图,每个用户不必都定义和存储自己所需的数据,可以共享数据库中的数据,同样的数据只需要存储一次。
            更改数据格式
                通过使用视图,可以重新格式化检索出的数据
        要注意区别视图和数据表的本质,即视图是基于真实表的一张虚拟的表,其数据来源均建立在真实表的基础上。
    触发器
        是嵌入到 MySQL 中的一段程序,通过对数据表的相关操作来触发、激活从而实现执行。比如当对 student 表进行操作(INSERT,DELETE 或 UPDATE)时就会激活它执行
        触发时机
            增删改
            操作前Before,操作后After
            new, old
        触发器的优缺点
            触发器的优点
                触发器的执行是自动的,当对触发器相关表的数据做出相应的修改后立即执行。
                触发器可以实施比 FOREIGN KEY 约束、CHECK 约束更为复杂的检查和操作。
                触发器可以实现表数据的级联更改,在一定程度上保证了数据的完整性。
            触发器的缺点
                使用触发器实现的业务逻辑在出现问题时很难进行定位,特别是涉及到多个触发器的情况下,会使后期维护变得困难。
                大量使用触发器容易导致代码结构被打乱,增加了程序的复杂性
                如果需要变动的数据量较大时,触发器的执行效率会非常低
        创建触发器
            CREATE  TRIGGER <触发器名> < BEFORE | AFTER ><INSERT | UPDATE | DELETE >ON <表名> FOR EACH Row BEGIN  <触发器主体>  END
            注意:在命令行中要使用delimiter来重新定义结束符一般临时使用$$
        删除触发器
            DROP TRIGGER [ IF EXISTS ] [数据库名] <触发器名>
        new old
            CREATE TRIGGER tr1    BEFORE UPDATE ON t22     FOR EACH ROW     BEGIN     SET @old = OLD.s1;     SET @new = NEW.s1;     END; 
    MySQL变量的定义和赋值
        变量分类
            局部变量 declear声明
                mysql局部变量,只能用在begin/end语句块中,比如存储过程中的begin/end语句块。
            用户变量
                mysql用户变量,mysql中用户变量不用提前申明,在用的时候直接用“@变量名”使用就可以了。
            会话变量
                mysql会话变量,服务器为每个连接的客户端维护一系列会话变量,其作用域仅限于当前连接,即每个连接中的会话变量是独立的
                显示会话变量
                    show session variables
                查询会话变量
                    select @@aut

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值