数据库应用

一.创建视图
use test;
select*from student;
use runoob;


视图view
视图是数据库对象之一,在sql语句中体现的角色与表一致。
但是视图并非一张真实存在的表,它只是一个查询语句对应的结果集。


create view v_emp_gm
as
select sno,sname,sage
from student;


desc v_emp_gm;
select*from v_emp_gm;


视图对应的子查询中的字段可以指定别名,
这样该视图对应的字段名就是这个别名,
当一个字段是函数或者表达式,那么该
字段必须指定别名
create or replace view v_emp_linsa
as
select sno id,sname name,sage age,ssex sex
from student;


select*from v_emp_linsa;


select*from teacher,v_emp_linsa;


insert into v_emp_linsa(id,name,age,sex) values('s011','李四',24,'男');


select*from v_emp_linsa;


为视图添加查询选项,可以避免对视图操作而导致的对基表的数据污染
with check option
该选项要求对视图进行DML操作后,该记录必须对视图可见
create view v_student_gm1
as
select sno,sname
from student
with check option;


select*from v_student_gm1;
insert into v_student_gm1 values("s012","linsa");


只读选项
with read only
只读选项要求对视图仅能进行查询操作不能进行任何的DML操作


二.创建及调用过程


use tedustore;
select*from books;


create procedure pro_getbook()
begin
 select*from books;
end


call pro_getbook();


drop procedure pro_id;
create procedure pro_id(in a int)
begin
 select*from linsa where id=a;
end


call pro_id(1);


use test;


drop procedure proc_id;
create procedure pro_id(in a varchar(20))
begin
 select*from student where sno=a;
end


call pro_id('s001');


drop procedure proc_sc1;
create procedure pro_sc1(
out max decimal(6,2),
out avg decimal(6,2),
out min decimal(6,2)
)
begin
select max(score) into max from sc;
select avg(score) into avg from sc;
select min(score) into min from sc;
end


call pro_sc1(@max,@avg,@min);
select @max,@avg,@min;


use tedustore;
select*from books;


create procedure proc_sc2()
begin
declare a,b varchar(40);
set a="java";
set b="12345";
insert into books values(null,a,b);
end


call proc_sc2();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linsa_pursuer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值