mysql 必备核心知识之事务的详细解析:
创建一个数据库表:
添加数据并开启事务。
添加数据并查询。
登录另一台服务器发现查不到这个表中的数据。
这是因为事务开启了,但是没有提交,只是把数据存到了内存中,还没有写入磁盘里,所以其它服务器看不到数据。
提交事务。
这样其它服务器也能查询到数据了。
再重新开启事务删除一条数据。
因为没有提交另一个服务器里还是能看到数据。
因为删除的事务还没有执行完,所以数据还是能读出来的。
提交这个事务:
再差就查不到数据了。
开启事务再提交一条数据。
没有提交,另一台服务器是查不到数据的。
当出现数据插入有误时,可以使用rollback进行回滚。
如果数据库里这个配置是on不开启的。
我们不使用begin开启事务。添加了一条数据。
在另一个服务器里也能看到。因为开启了,事务会自动提交,如果为off。则是不自动启动事务。
可以把这个配置设置为off。
删除一条数据。
另一台服务器里还能查到数据。
事务提交之后就不见了。
这种方法事务临时生效,如果退出服务器重新登录,就不起作用了。
详细讲解视图的优缺点以及应用
查看数据库引擎:
修改引擎类型。
MyISAM引擎对事务不支持,我们要是想使用事务要使用InnoDB引擎。
通过这个基表来创建视图。
我们屏蔽掉时间和薪水,创建了一个视图。
show tables的时候,我们的视图也会被显示出来。
我们也可也看到视图是如何被创建出来的。
也可以查到视图中的数据。
实际中创建视图会是很复杂的,涉及到各种联表。
修改基表中的数据,视图中的数据也会跟着改变。
mysql 的触发器介绍(使用不多,了解即可)
创员工表:
可以看到我们的表结构。
这个命令可以作为以自定义符号结束sql语句。
创建触发器:
之前有员工表:
我们模拟的是员工迟到扣钱的场景。
查看触发器:
向迟到表中插入一条数据:
我们发现猪八戒的钱确实减少了100;
删除触发器:
介绍什么是存储过程(很少使用,后面的分库分表几乎不可使用,简单了解即可)
创建一个简单点的存储过程:
我的表里只有一个数据,这里只是为了学习举例,真正使用也不会是这么简单的一条查询语句去使用存储过程。
查看存储过程:
给变量赋值:
调用存储过程:
删除存储过程:
我们再创建一个自定义声明变量的:
调用: