MySQL进阶

四、视图

1、介绍及基本语法

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来定义视图的查询中使用的表,并且是在使用视图时动态生成的。

通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建试图的时候,主要的工作就落在创建这条SQL查询语句上。

  • 创建

#创建视图
create or replace view stu_v_1 as select id,name from student where id <= 10;
  • 查询

#查询视图(与表操作相同)
show create view stu_v_1;
select * from stu_v_1;
  • 修改

#修改视图
create or replace view stu_v_1 as select id,name,no from student where id <= 10;
alter view stu_v_1 as select id,name from student where id <= 10;
  • 删除

#修改视图
drop view if exists stu_v_1;

2、检查选项

  •  视图检查选项(cascaded)

 注:对视图进行操作时,MySQL不会校验数据是否符合where条件,需要添加(with cascaded check option)语句,同时会对编辑的语句相关的语句也附加cascaded属性,在后续添加数据时,会对所有依赖的视图语句where条件进行校验,全部满足才能添加成功。

  • 检查选项(local)

注:MySQL只会对定义了with local check option的语句的where条件进行判定,否则不会对数据需要插入的语句的where条件进行判定。

 3、更新及作用

 4、案例

1、create view tb_user_view as select id,name,profession,age,gender,
status,createtime from tb_user;

select * from tb_user_view;

2、cteate view tb_stu_course_view select s.name student_name, s.no student_no, 
c.name course_name from student s, student_course sc, course c where s.id = 
sc.studentid and sc.courseid = c.id;

select * from tb_stu_course_view;

五、存储过程

1、介绍

 2、特点

封装、复用

可以接收参数,也可以返回数据

减少网络交互,效率提升

3、基本语法

  • 创建

#创建
create procedure p1()
begin
     select count(*) from student;
end;
  • 调用 

#调用
call p1();
  • 查看

#查看
select * from information_schema.ROUTINES where ROUTINE_SCHEMA = 'itcast';

show create procedure p1;
  •  删除

#删除
drop procedure if exists p1;

 注意:在命令行中,执行创建存储过程的SQL时,需要通过关键词delimiter指定SQL语句的结束符。

#指定结束符为$$
delimiter $$

4、变量

  • 系统变量

系统变量是MySQL服务器提供,不是用户定义的,属于服务器层面。分为全局变量(GLOBAL)、会话变量(SESSION)。

#查看系统变量
show session variables;查询所有系统变量
show session variables like 'auto%';查询与auto有关的系统变量
show global variables like 'auto%';查询与auto有关的全局变量
select @@autocommit;查询具体的系统变量
select @@global.autocommit;查看全局的具体变量

#设置系统变量
set session autocommit = 1;
insert into course(id,name) VALUES (5,'Oracle');
注意:如果没有SESSION/GLOBAL,默认是SESSION,会话变量。
MySQL服务器重新启动之后,所设置的全局参数会失效,要想不失效,可以在etc/my.cnf中配置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值