一.视图
1.什么是视图
视图是一个虚拟表,其内容由查询定义,和真实的表有显著区别,只有在特定条件下才可以update和delete。
当查询数据要关联多张表的时候,要写很长的sql语句,可以使用视图简化。
视图主要用来查询方便,如果修改也是可以的,一次只能修改一张实表。
2.视图的使用
一般用create view 视图名字(查询字段的结果) as select语句 这种格式的sql将查询出来的结果作为临时表。
然后可以在视图里面进行更改查,更改查询的字段也仅仅限制于视图里面有的字段。
创建视图
create view query_data(name,sex) as
select name,gender from tb_student;
执行以上sql就可以生成视图了,生成后视图会存在数据库里
从视图中查询(只能查询出name,sex)
select * from query_data;
二.存储过程
1.什么是存储过程
一组为了完成特定功能的SQL 语句集。
更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了
2.存储过程的使用
创建存储过程
drop procedure if exists insert_data;
create procedure insert_data(in num int)
begin
declare i int;
declare str char(62) default 'abcdefghijklmnopqrstuvwxyz123567890A
BCDEFGHIJKLMNOPQRSTUVWXYZ';
set i = 0;
where i< num do
insert into test.student_copy(
id,
name,
gender,
birthday
) values(
concat('xh',ceil(1+rand()*1000)),
substring(str,1+floor(rand()*61),6),
if(round(rand()+1)=1,'男','女'),
date_add('1997-1-11 13:00:00',interval
ceil(1+rand()*100) month)
);
set i= i+1;
end while;
end;
执行以上sql就能生成insert_data存储过程,
生成后会存在数据库里,会占用数据库的空间。
调用存储过程
call insert_data(1000);
可生成1000个数据