数据库(Mysql)学习

视图

创建视图

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS select_statement
   [WITH [CASCADED | LOCAL] CHECK OPTION]
  1. OR REPLACE:表示替换已有视图
  2. ALGORITHM:表示视图选择算法,默认算法是UNDEFINED(未定义的):MySQL自动选择要使用的算法;merge合并;temptable临时表
  3. select_statement:表示select语句
  4. [WITH [CASCADED | LOCAL] CHECK OPTION]:表示视图在更新时保证在视图的权限范围之内

cascade是默认值,表示更新视图的时候,要满足视图和表的相关条件

local表示更新视图的时候,要满足该视图定义的一个条件即可

TIPS:推荐使用WHIT [CASCADED|LOCAL] CHECK OPTION选项,可以保证数据的安全性

基本格式:

  create view <视图名称>[(column_list)]

   as select语句

   with check option;

视图更新

视图是一张虚拟的表,那么视图的中的数据可以更新吗?视图的可更新性要视具体情况而定,以下类型的视图是不能更新的:

  • 使用了聚合函数(SUM、MIN、MAX、AVG、COUNT等)、DISTINCT、GROUP BY、HAVING、UNION或者UNION
    ALL的视图。
  • SELECT中包含了子查询的视图。
  • FROM子句中包含了一个不能更新的视图的视图。
  • WHERE子句的子查询引用了FROM子句中的表的视图。

几个重要的概念

范式理论 - 设计二维表的指导思想

  • 第一范式:数据表的每个列的值域都是由原子值组成的,不能够再分割。
  • 第二范式:数据表里的所有数据都要和该数据表的键(主键与候选键)有完全依赖关系。
  • 第三范式:所有非键属性都只和候选键有相关性,也就是说非键属性之间应该是独立无关的。

数据完整性

实体完整性 - 每个实体都是独一无二的

  • 主键(primary key) / 唯一约束 / 唯一索引(unique)

引用完整性(参照完整性)- 关系中不允许引用不存在的实体

  • 外键(foreign key)

域完整性 - 数据是有效的

  • 数据类型及长度
  • 非空约束(not null)
  • 默认值约束(default)
  • 检查约束(check)

说明:在MySQL数据库中,检查约束并不起作用。

数据一致性

事务:一系列对数据库进行读/写的操作,这些操作要么全都成功,要么全都失败。

事务的ACID特性

  • 原子性:事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行
  • 一致性:事务应确保数据库的状态从一个一致状态转变为另一个一致状态
  • 隔离性:多个事务并发执行时,一个事务的执行不应影响其他事务的执行
  • 持久性:已被提交的事务对数据库的修改应该永久保存在数据库中

MySQL中的事务操作

  • 开启事务环境
start transaction
begin
  • 提交事务
commit
  • 回滚事务
rollback
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值