mysql 复合语句问题_mysql复合语句

1 索引

create index on

drop index on

2 视图 view 虚表 存放某一个查询的结果

create view 视图名称 as select 语句

对视图进行操作

1查询 select * from 视图名称

更新操作时候需要判断以下条件

1 不能有聚集函数 不能有 group by

create view v1 as select max(age) from emp

2 不能有子查询

3 不能有计算结果列

2 执行 更新操作

insert

delete

update

3 drop view 视图;

-----------------------------------------

复合语句 (必须放在存储过程或者函数里面)

存储过程 实现特定功能的一组SQL语句 根据需要可以传参数

语法

BEGIN

复合语句

END;

#1 声明变量

# 声明变量 declare 变量名称 变量类型

# 变量声明必学写在 其他复合语句之前

declare i int; #定义一个int的变量i

declare name varchar(20);#定义一个varchar的变量name

#声明变量的时候指定默认值

declare address varchar(50) default '无锡';

#2 赋值

set i = 100;

set name = '蔡亦超';

#3 分支语句

#1) if-else-then

if i > 90 then

# 结果设置为 优

set result = '优';

end if;#注意结束

if i > 90 && i <100 then

# 结果设置为 优

set result = '优';

else if i > 80 then

set result = '良';

else

set result = '及格';

end if;

end if;#注意结束

# 2) case when

select

address as '目的地',

case address

when '重庆' then '火锅'

when '海口' then '水果'

when '贵阳' then '丝娃娃'

end

as '特产'

from emp;

BEGIN

declare emp_id int; # 临时变量存放id

declare emp_salary int;# 临时变量存放salary

declare done int default false;# done表示还有没有数据

BEGIN

循环

#1)while 循环

declare i int;

declare sum int;

declare temp_salary int;

# 获取当前工资 存入 temp_salary

select salary into temp_salary from emp where id=1001;

while temp_salary <1000000 do

set temp_salary = temp_salary +5000;

end while;

# 更新最新的工资

update emp set salary = temp_salary where id=1001;

#2)loop 循环 temp_salary=1000000

loop1 : loop # loop1 是循环的标签

set temp_salary = temp_salary -2000;# 循环的内容

if temp_salary > 500000 then

iterate loop1; # temp_salary > 500000 继续循环 让代码再回到loop1位置

end if;

leave loop1; # 结束循环

end loop;

update emp set salary = temp_salary where id=1001;

#3)repeat

set i=1;

set sum=0;

repeat # 重复执行以下代码

set i = i+1;

set sum = sum +i;

until i>10 # 直到 i>10为止

end repeat;

END

BEGIN

#异常处理

# 1 sqlstate 标准SQL的错误代码 5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值