赞
踩
视图就是将一条sql查询语句封装起来,之后使用sql时,只需要查询视图即可,查询视图时会将这条sql语句再次执行一遍。视图不保存数据,数据还是在表中。
SELECT 语句所查询的表称为视图的基表,而查询的结果集称为虚拟表,视图本身并不存储具体的数据,视图的数据存在于视图的基表中,基本表数据发生了改变,视图的数据也会跟着改变,因为查询语句时不变的,使用视图时会将sql语句再调用一次。
- -- 定义视图:
- create view 视图名 as 查询语句(select 列1,列2...from 表)
- -- 使用视图
- select * from 视图名
- -- 删除视图
- drop view 视图名
如果实现用户的某些需求时,需要编写一组复杂的 SQL 语句才能实现,那么可以将这组复杂的 SQL 语句集编写在数据库中,由 JDBC 调用来执行这组 SQL语句。把编写在数据库中的 SQL 语句集称为存储过程。
存储过程也就是将逻辑处理的过程是放在数据库中,而不放在java后端代码中,就类似于java语言中的方法,需要先定义,使用时调用。将一些逻辑处理的代码可以事先存储在数据库中,然后使用时直接调用即可。可以减少应用程序与数据库之间的交互次数。
存储过程事先需要创建好(包含逻辑),存储过程中可以传入参数。参数分为3种,in(输入参数) out(输出参数) inout(即可以输入还可以输出):
create procedure 存储过程名([in 变量名 类型,out 参数 2,…])
begin
[declare 变量名 类型 [DEFAULT 值];]
存储过程语句块;
end;
- CREATE VIEW test ASSELECT * FROM admin; -- 创建视图
- SELECT * FROM test -- 使用视图
- DROP VIEW test -- 删除视图
-
-
-
-
- -- 创建存储过程
- DELIMITER $$
- CREATE PROCEDURE `gradedb`.`test1`(IN namess INT)
- BEGIN
- DECLARE a INT DEFAULT 0;
- SELECT a;
- SET namess=10;
- SELECT namess;
-
- END$$
- DELIMITER ;
-
-
- -- 调用存储过程
- CALL test1(1);
-
-
- -- 流程控制语句
- DELIMITER $$
- CREATE PROCEDURE `gradedb`.test2(IN t_day INT )
- BEGIN
- IF t_day=1 THEN
- SELECT"星期一";
- ELSEIF t_day =2 THEN
- SELECT"星期二";
- ELSE SELECT"无效日期";
- END IF;
- END$$
- DELIMITER ;
-
- -- 调用存储过程
- CALL test2(2);
-
-
- -- case when
- DELIMITER $$
-
- CREATE PROCEDURE `gradedb`.test3 (IN t_day INT)
- BEGIN
- CASE
- WHEN t_day = 1
- THEN
- SELECT
- "星期一";
- WHEN t_day = 2
- THEN
- SELECT
- "星期二";
- END CASE;
- END $$
-
- -- 调用存储过程
- CALL test3(1);
-
-
-
-
- -- 循环
- DELIMITER $$
-
- CREATE PROCEDURE `gradedb`.test4 ()
- BEGIN
- DECLARE v_num INT DEFAULT 0;
- -- 循环开始
- addnum :LOOP
- SET v_num = v_num + 1;
- IF v_num = 10
- THEN LEAVE addnum;
- END IF;
- END LOOP;
- -- 循环结束
- SELECT
- v_num;
- END $$
- -- 调用存储过程
- CALL test4()
举例:
创建存储过程,完成一个逻辑实现
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。