当前位置: 首页 > article >正文

MySQL复习3

视图

视图(view)是一种虚拟存在的表,是一个逻辑表,本省没有数据,内容由查询定义。

基表:用来创建视图的表叫做基表

通过视图,我们可以查看基表的部分数据。视图数据来自定义视图的查询中使用的表,使用动态图动态生成。

优点

  • 简单
  • 安全
  • 数据独立

语法

create view <视图名> as <select语句>

案例

create view view_learn as select (
A.student_id from (
select student_id, num from score where course_id = 1
) as A left join (
	select student_id, num from score where course_id = 2
) as B on A.student_id = B.student_id
where A.num > if (isnull(B.num), 0, B.num)
);

流程控制

IF

if condition then
...
elseif condition then
...
else
...
end if

CASE

case value
	when value then ...
	when value then ...
	else ...
end case

WHILE

while condition do
...
end while

LEAVE

-- 相当于break
leave label;

示例

-- leave语句退出循环或程序,只能和BEGIN ... END,LOOP,REPEAT,WHILE语句配合使用
-- 创建存储过程
delimiter //
create procedure example_leave(out sum int)
begin
    declare i int default 1;
    declare s int default 0;

    while_label:while i <= 100 do
        set s = s + i;
        set i = i + 1;
        if i = 50 then
            leave while_label;
        end if;
    end while;

    set sum = s;
end //
delimiter ;

call example_leave(@sum);
select @sum;

image.png

ITERATE

-- 相当于 continue
iterate label;

LOOP

-- 相当于 while(true){}
loop
	...
end loop
-- 可以用LEAVE退出循环

示例

-- 创建存储过程
delimiter //
create procedure example_loop(out sum int)
begin
    declare i int default 1;
    declare s int default 0;

    loop_label:loop
        set s = s + i;
        set i = i + 1;

        if i > 100 then
            leave loop_label;
        end if;
    end loop;

    set sum = s;
end
//
delimiter ;

call example_loop(@sum);
select @sum;

image.png

REPEAT

-- 相当于 do ... while(condition)
REPEAT
	...
	UNTIL condition
END REPEAT

示例

delimiter //
create procedure example_repeat(out sum int)
begin
    declare s int default 1;
    declare i int default 0;

    repeat
        set s = s + i;
        set i = i + 1;

        until i > 100
    end repeat;

    set sum = s;
end
//
delimiter ;

call example_repeat(@sum);
select @sum;

image.png


http://www.kler.cn/news/289354.html

相关文章:

  • 计算机岗位(面试)
  • Apache POl的使用(导出报表)
  • Python Mail:如何设置SMTP服务器发邮件?
  • Java设计模式【观察者模式】-行为型
  • “微服务革命”之后...
  • 机器人外呼有哪些优势?
  • MFC终止线程实例
  • 性能工具之 JMeter ajax 简单登录案例实战
  • 二叉树(数据结构)
  • Elasticsearch 索引模板
  • 编译可执行命令的FFmpeg
  • [STM32]从零开始的STM32 LED教程(小白向)
  • 第十周:机器学习笔记
  • 微信小程序代码 app.json文件详细介绍
  • Apifox使用学习
  • 【华为OD】2024D卷——剩余银饰的重量
  • [CISCN2019 华东南赛区]Web111
  • Java面向对象与继承
  • 【C++】手动实现队列的封装(C++)
  • 基于纠错码的哈希函数构造方案
  • 977.有序数组的平方
  • 边缘计算工业网关可以为工业企业生产提供哪些价值应用?天拓四方
  • 如何禁用USB存储设备|禁用USB储存和连接手机的方法有哪些?深度解析,四招搞定!
  • Kafka:浅谈对Kafka的认识
  • spring之bean和配置相关注解
  • 论文解读:Prompt-aligned Gradient for Prompt Tuning
  • 论文《Improving your graph neural networks:A High-Frequency Booster》笔记
  • 构造+模拟,CF 873D - Merge Sort
  • 水平垂直居中的方式
  • Nginx - Rewirte