mql初学事物和视图
1.概念:一条或者多条sql语句的集合!
事务:就是一堆操作的集合,他们同生共死。要么都执行成功,要么都执行失败
2.事务的特性 ACID
A:原子性 完整的,不可分割的
原子性 (Atomicity):在事务中的操作,要么都执行,要么都不执行!
C: 一致性 事务执行完毕后,数据的状态是一致的()
一致性(Consistency):事务必须保证数据库从一个一致性的状态变成另一个一致性的状态!
I: ISOLation 隔离性 两个事务执行互不影响
隔离性(Isolation):每个事务之间互不干扰!哪怕是并发执行也不干扰!
D: 永久性 事务执行完后,对数据的影响是永久的。
持久性(Durability):事务一旦被改变,那么对数据库中数据的影响是永久性的!
3.事务操作的关键字
自动提交事务开关set autocommit=1
开始事务 start transaction /begin
提交事务 commit
回滚事务 rollback
set autocommit=1
4.事务+++存储过程 转账的例子
DELIMITER $$
CREATE PROCEDURE usp_transfer()
BEGIN
##错误总数默认是0
DECLARE t_error INTEGER DEFAULT 0;
## continue 继续 hanlder 执行 并且对 t_error重新赋值为1
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;
SET autocommit=0;
START TRANSACTION;
UPDATE bank SET balance=balance-100 WHERE cid=1;
UPDATE bank SET balance =balance+100 WHERE cid=2;
IF t_error > 0 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
SET autocommit=1;
END$$
DELIMITER ;
CALL test_sp800()
1.视图: 就是一张虚拟表,本质上存储的是一对SQL的集合
-- 视图 是一张虚拟的表
01.表示一张表的部分数据或者是多张表的综合数据!
02.结构和数据都是建立在对真表的查询基础之上的!
03.视图中存放的数据其实就是对真实表的引用!
对视图中的数据进行添加,更新删除都会影响到真实的表!
04.一个真实的表可以创建N个视图!
05.如果视图关联了多表,不允许增 删!单表可以增删改
06.视图一般都是使用查询!
2.定义视图的语法:
create view VW_stulist(VW_名字)
as
sql语句
3.视图的使用 和检索基本表一样,直接通过select
select * from VW_stulist
4.删除视图
drop view 视图名
drop table
drop database
drop index
drop constraint
5.查看所有库所有视图
5.1.切换到系统数据库
use information_schema
5.2.select * from views \G;
注: 只有在cmd才能看出区别
6.查看当前库的所有视图
show tables status where comment='view'
7.视图注意事项
1)视图可以查询多表数据
2)视图可以嵌套
3)update,insert,delete不能封装成视图内容,通过图形化界面可以操作数据(操作视图数据,影响的是基本表)。
4)删除视图数据的时候,有一定的限定,数据结果来源于多表的时候,不能删除
-- 查询视图中的内容
SELECT * FROM view_student_result
-- 查询mysql数据库中所有的视图
SELECT * FROM information_schema.views;
-- 删除视图
DROP VIEW view_student_result;
-- 创建一个表的视图 学生姓名,地址,手机号
CREATE VIEW view_student
AS
SELECT studentName,address ,phone
FROM student
-- 查询视图
SELECT * FROM view_student
mql初学事物和视图的更多相关文章
- ASP.NET MVC 5 02 - ASP.NET MVC 1-5 各版本特点
参考书籍:<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业 ...
- 优化MySchool数据库设计总结
数据库的设计 一:什么是数据库设计? 数据库设计就是将数据库中的数据实体以及这些数据实体之间的关系,进行规范和结构化的过程. 二:为什么要实施数据库设计? 1:良好的数据库设计可以有效的解决数据冗 ...
- SQL server 数据库(视图、事物、分离附加、备份还原))
ql Server系列:视图.事物.备份还原.分离附加 视图是数据库中的一种虚拟表,与真实的表一样,视图包含一系列带有名称的行和列数据.行和列数据用来自定义视图的查询所引用的表,并且在引用视图时动态 ...
- MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
浏览目录: 1.视图 2.触发器 3.存储过程 4.函数 5.事物 6.数据库锁 7.数据库备份 1.视图 视图:是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据 视 ...
- MYSQL之视图、触发器、存储过程、函数、事物、数据库锁和数据库备份
一.视图 -- view 视图:是一个虚报表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据. 视图有如下特点: 1.视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系 ...
- 【UML 建模】UML建模语言入门-视图,事物,关系,通用机制
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 一. UML视图 1. Ration ...
- sql server中的开窗函数over、视图、事物
一.开窗函数over的作用有两个: 1.排序order by,row_number,翻页 2.划区partition by,结合聚合函数针对某部分数据进行汇总 翻页的sql server 语句: an ...
- MySQL之 视图,触发器,存储过程,函数,事物,数据库锁,数据库备份
1.视图 视图: 是一个虚拟表,其内容由查询定义: 视图有如下特点; 1. 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系. 2. 视图是由基本表(实表)产生的表(虚表). 3. ...
- mariadb(第五章)视图、事物、索引、外键
视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结 ...
随机推荐
- IP分为五类
IP地址分为五类: IP地址分为五类:A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验. 常用的三类IP地址 IP = 网路地址(网络号)+主机地址(主 ...
- JQuery学习二-字典操作
1. 数组中添加map var arr = []; var key = 'Jeremy'; var value = '!!!!' arr.push({ 'key': key, 'value': val ...
- java泛型使用教程
参考: java 泛型 Java泛型中E.T.K.V等的含义 一.Java泛型中E.T.K.V等的含义 E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Jav ...
- Spring.Net —IOC详解
一. Spring.net中IOC介绍 1. 什么是IOC,控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中 ...
- C99特性
1.如果编译器支持C99标准那么局部变量的声明可以在语句之后,如: void func(void) { bool status; if(status == true) { status = false ...
- GSEA - Gene set enrichment analysis 基因集富集 | ORA - Over-Representation Analysis 分析原理与应用
RNA-seq是利器,大部分做实验的老板手下都有大量转录组数据,所以RNA-seq的分析需求应该是很大的(大部分的生信从业人员应该都差不多要沾边吧). 普通的转录组套路并不多,差异表达基因.富集分析. ...
- 基于Python——实现解压文件夹中的.zip文件
[背景]当一个文件夹里存好好多.zip文件需要解压时,手动一个个解压再给文件重命名是一件很麻烦的事情,基于此,今天介绍一种使用python实现批量解压文件夹中的压缩文件并给文件重命名的方法—— [代码 ...
- 『PyTorch』第十五弹_torch.nn.Module的属性设置&查询
一.背景知识 python中两个属相相关方法 result = obj.name 会调用builtin函数getattr(obj,'name')查找对应属性,如果没有name属性则调用obj.__ge ...
- 2015-10-05 js3
Javascript 实例2九九乘法表 var s = ""; s += "<table>"; for (var i = 1; i < 10; ...
- 跨域iframe如何通信
1. 使用document.domain设置相同主域(同主域不同子域): 2. 使用window.name添加空网页: 3. 使用postmessage监听: