MySQL学习随记---视图和SQL编程的 if case 和 循环
来源:互联网 发布:c语言数组删除指定元素 编辑:程序博客网 时间:2024/06/15 12:12
视图
定义
视图只是一个语句规则
语法
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
作用
(1) 可以简化查询
(2) 可以进行权限控制
视图与表关系
视图是表的查询结果, 自然表的数据变了, 影响视图结果
(1) 视图的数据与表的数据一一对应时, 可以修改[由计算而来的数据不可更改]
(2) 视图增删改也会影响到表, 但是视图并不总是能增删改
(3) 对于视图insert还应注意, 视图中必须包含表中没有默认值得列
注意: 一般来说, 视图只是用来查询的, 不应该执行增删改操作
SQL编程
1. 变量声明
(1)会话变量
定义形式:
set @变量名 = 值;
示例:
set @long =555;
SELECT @long;
(2)普通变量
定义形式:
declare 变量名 类型 [default 默认值]
说明:
1.他必须先声明(即定义),此时也可以赋值;
2.赋值跟会话变量一样: set 变量名 = 值;
3.他只能在编程环境中使用!!!
说明: 什么是编程环境?
存储过程, 函数, 触发器
(3)变量的赋值形式
语法1:
set 变量名 = 表达式; #此语法中变量必须先使用declare声明
语法2:
set @变量名 = 表达式; #此语法无需使用declare声明, 而是直接赋值
语法3:
select @变量名 := 表达式; #此语句会给该变量赋值, 同时还会最为一个select语句输出 '结果集'
示例: SELECT @age := 12;
语法4:
select 表达式 into @变量名; #此语句虽然看起来是select语句, 但其实比不输出 '结果集', 而是给变量赋值
示例: SELECT 33 + 33 INTO @age; SELECT @age;
2. 运算符
(1)算术运算符
+ - * / %
注意: MySQL没有++和--运算符
(2)关系运算符
> >= < <= =(等于)<>(不等于)!=(不等于)
(3)逻辑运算符
and(与) or(或)not(非)
3. 语句块包含符
所谓的语句块包含符, 在js中, 以及绝大部分的其他语言中, 都是大括号: {}
他用在很多场合: if, switch, for, function
而MySQL编程中的语句块包含符如下:
4. if判断
MySQL支持两种判断, 第一个是 if 判断, 第二个是 case 判断
if 语法
单分支
if 条件 then
//代码
end if;
双分支
if 条件 then
//代码1
else
//代码2
end if;
多分支
if 条件 then
//代码1
elseif 条件 then
//代码2
else
//代码3
end if;
案例: 接收4个数字, 如果输入1则输出春天 2=>夏天 3=>秋天 4=>冬天 其它数字=>出错
我们使用存储过程来体验 if 语句用法
create procedure 存储过程名(参数, 参数, ...)
begin
//代码
end
注意: 通常情况下, ";" 表示SQL语句结束, 同时向服务器提交并执行. 但是存储过程中有很多SQL语句, 每一句都要以分号隔开, 这时候我们就需要使用其他符合来代替向服务器提交的命令. 通过delimiter命令改变语句结束符
语法: delimiter 符号 示例: delimiter $
CREATE PROCEDURE p1 (n INT)BEGINIF n = 1 THENSELECT '春天' AS '季节';ELSEIF n = 2 THENSELECT '夏天' AS '季节';ELSEIF n = 3 THENSELECT '秋天' AS '季节';ELSEIF n = 4 THENSELECT '冬天' AS '季节';ELSESELECT '出错' AS '季节';END IF;END;
调用 语法: call 存储过程的名称(参数)
CALL p1(3);
5. case判断
case 变量
when值 then 语句;
when值 then 语句;
else 语句;
end case;
案例同 if
CREATE PROCEDURE p2(n INT)BEGINCASE nWHEN 1 THEN SELECT '春天' AS '季节';WHEN 2 THEN SELECT '夏天' AS '季节';WHEN 3 THEN SELECT '秋天' AS '季节';WHEN 4 THEN SELECT '冬天' AS '季节';ELSE SELECT '出错' AS '季节';END CASE;END
6. 循环
MySQL支持的循环有loop, while, repeat 循环
(1) loop 循环
标签名: loop
leave 标签名 --退出循环
end loop;
(2) while 循环
[标签: ]while 条件 do
//代码
end while;
(3) repeat 循环
repeat
//代码
until 条件 end repeat;
案例 使用 loop 循环, 完成计算1到n的和;
CREATE PROCEDURE p3 (n INT)BEGINDECLARE i INT DEFAULT 1;DECLARE s INT DEFAULT 0;aa:LOOPIF i>n THENLEAVE aa;END IF;SET s=s+i;SET i=i+1;END LOOP;SELECT s;END
案例 使用 while 循环, 完成计算1到n的和;
CREATE PROCEDURE p4 (n INT)BEGINDECLARE i INT DEFAULT 1;DECLARE s INT DEFAULT 0;WHILE i<=n DOSET s=s+i;SET i=i+1;END WHILE;SELECT s;END
案例 使用 repeat 循环, 完成计算1到n的和;
CREATE PROCEDURE p5 (n INT)BEGINDECLARE i INT DEFAULT 1;DECLARE s INT DEFAULT 0;REPEATSET s=s+i;SET i=i+1;UNTIL i>n END REPEAT;SELECT s;END
阅读全文
0 0
- MySQL学习随记---视图和SQL编程的 if case 和 循环
- 2、if、case when和循环语句
- erlang的case和if
- 16、SQL Server: if else和case
- bash编程之 If和Case语句
- MySQL upate if和case when语法
- Mysql if 和 case 条件语句用法
- MySQL中的if和case用法
- mysql的存储过程中的语句if case 循环语句
- if和case
- oracle if 和 case语句的使用
- MYSQL存储过程&循环&游标&IF$CASE
- MySQL的if,case语句使用总结..MySql 里的IFNULL、NULLIF和ISNULL用法
- MySQL中的if和case语句使用总结
- MySql查询IF和CASE条件判断使用
- MySQL中的if和case语句使用总结
- MySQL的if,case语句
- mysql的选择判断:if和CASE 1WHEN 0 THEN
- java 参数传递(实参/形参 按值/引用)
- Exonum中的共识算法
- 新建卫星地图下载任务参数说明
- 面试题21:包含min函数的栈
- Gogs webhooks如何连接Jenkins
- MySQL学习随记---视图和SQL编程的 if case 和 循环
- ubuntu 远程桌面
- (一)SLAM拓扑地图(地图的生成和显示)
- VS2010常用快捷键
- javascript实现购物车加减
- matplotlib基础——令画图时显示中文的方法
- git基础命令
- Android_UI:ViewAnimator ViewSwitcher TextSwitcher ImageSwicher StackView ViewFlipper AdapterViewFli
- destoon模板语法