MySQL学习9:sql其他数据库对象

一.sql的数据库对象

1.简述

  • 表:二元结构
  • 约束:独立名,保证数据的完整性(加在表中的规则)
  • 视图:逻辑显示,相当于select语句
  • 索引:提高查询性能
  • 存储过程存储函数:完成计算
  • 触发器:事件的监听器

二.sql的其他数据库对象

1.视图

①视图理解

  • 用户–视图—数据表
  • 视图看做虚拟表,实际不存数据,本质存储起来的select语句
  • 针对视图做增删改,会对基表影响,同时,修改基表的内容,也会对视图的定义需要修改
  • 应用场景:某个查询常用,可以定义为视图。(简化查询,控制权限)

②使用视图

  • create view _() as select _
  • show tables; desc view _;show create view _
  • update _ set _ where _/ delete from _ where _视图修改影响表数据
  • create or replace view _() as select _/alter view as

③更新操作不一定成功

  • 例如avg在视图的定义,不能更新avg,因为基表中并无此选项

④特点

  • 简化查询,视图不存数据,控制权限
  • 表结构更改视图也更改,维护成本

2.存储过程和存储函数

①存储过程:一组预先编译好的sql语句的封装,直接执行即可

  • 例子:delemiter // create procedure _() begin select * from ;end // call

②存储函数:同存储过程,有返回值

③两者的使用

  • 优点:一次编译多次使用,减少工作量(库函数)
  • 缺点:调试困难

3.触发器

①触发器:同时添加两条数据,手动添加难以保证完整性

②举例说明:

  • 创建触发器: delimiter // create triger _ before insert/delete on _ for each row
    begin insert into _ values(new/old) end//
    +更改触发器:show triggers _ ; show create trigger ; drop trigger

③特点:

  • 确保数据完整性,记录日志
  • 可读性查,数据更新触发器报错,直接更改触发器对应数据才会触发,间接更改不会触发
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值