数据库视图,事务,索引,存储过程相关操作

视图给我个人直观的感受就是某个表或者某些表的一部分,如果后面对某些表的修改,也会影响到视图,试图是被迫收到影响,代表了某些表的某些字段的内容,主要作用是起到一个筛选的作用,防止某些人看到某些东西。降低了sql 的复杂度。

目录

1.创建视图并查询,以及更新,删除。

2.事务的相关操作

3.索引相关操作

4.存储过程


1.创建视图并查询,以及更新,删除。

表的内容:

创建一个视图:

CREATE VIEW vw_gays_info_nat AS SELECT NAME
,
address,
tel 
FROM
	gays
	INNER JOIN info ON gays.id = info.id;

创建一个名字为vw_gays_info_nat的视图,这个视图所包含的字段是gays这张表里的name,address,tel,还有一个附加的条件是gays表与info表的相等的id在gays表里的内容都会显示在视图里,既保留了部分隐私数据,以后查询的时候也不用写sql语句了,直接在视图里查询就可以了;给人的感觉有点像自定义的表,类似于对象的感觉。

查询视图的所有内容:

select * from vm_gays_info_nat;

在终端输入指令:

show tables;

 

 结果返回是包含视图的,所以说试图也是表的一种。也可以用show create view vm_gays_info_nat;  desc vm_gays_info_nat;

更新视图:                                         ---修改一下试图要查询什么东西。

alter VIEW vw_gays_info_nat AS SELECT NAME from gays;

原先是查3个,现在是查1个。 

删除视图:

drop VIEW vw_gays_info_nat;

2.事务的相关操作

事务的4个特性acid;

atomicity

consistency

isolation

durability

当购买的时候没有付款,或者转账的时候最后没有点确定,没有视图的话就只能在买家和卖家的数据表里更新一下。

开启事务:

start transaction;

看一下info表的结构:

 

 把每个人的年龄都减一岁,

update info set age=age-1;

执行完以后反悔了。。。。。。使用回滚,返回到执行前。

rollback;

如果不反悔,执行的话:

commit;

一旦commit了,就不可以rollback了。。commit之前可以任意rollback

也可以设置回滚点,回滚到之前什么的状态,如果不设置,直接回滚到原点;

还是info这张表。加一条内容并设置回滚点p1:

 再加入一条数据并设置回滚点p2.

insert into info values(null, 'make', 54);
savepoint p2;

现在后悔了想回滚到,p1:

rollback to p1;

3.索引相关操作

设置索引,查询的时候块,添加的时候慢。

创建索引:

设置唯一索引:

create unique index info_age on info(age);

添加索引:

alter table info add index info_age info(age);

删除索引:

drop index info_age on info;

4.存储过程

delimiter   // 

运行完上述语句,SQL不以;结尾了,而是以//为结尾。。

恢复的时候同样的delimiter ;就可以了。

创建存储过程:create procedure 名字()

begin 

end

delimiter //
create procedure proc_1()
begin
update info set age=age+1;
update gays set name='hah' where id=1;
end //

调用的时候:

delimiter ;

call proc_1();

删除存储过程

drop procedure proc_1;

 展示存储过程

show create procedure proc_1;
show create status /G; //显示所有的
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值