mysql 技能进阶_MySQL进阶操作

视图VIEW

视图是虚拟的表,与数据库里的数据表不一样,视图只有每次调用时都会执行查询。视图仅仅是用来查看存储在别处的数据的一种设施。视图本身不包含数据,因此它们返回的数据是从其他表中检索出来的。

1、创建视图

CREATE VIEW 视图名 AS sql语句;

2、删除视图

DROP VIEW 视图名;

3、更新视图

ALTER VIEW 视图名 AS sql语句;

4、使用视图

SELECT * FROM 视图名;

5、示例

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

--创建视图v1

CREATE VIEW v1 AS SELECT* FROM users WHERE u_id > 10;--修改视图v1的sql语句

ALTER VIEW v1 AS SELECT* FROM users WHERE u_id > 5;--使用视图v1,进行分组排序限制等操作

SELECT age FROM v1 GROUP BY age ORDER BY age DESC LIMIT2 OFFSET 1;--删除视图v1

DROP VIEW v1;

示例

函数FUNCTION

在mysql中有很多内置函数,也可以自定义函数,自定义函数可以传入参数,也可以返回值,但是函数没办法得到执行语句得到的结果,存储过程可以。

1、创建函数

CREATE FUNCTION f1(

i1 INT,

i2 INT

)

RETURNS INT

BEGIN

DECLARE num INT;

SET num = i1 + i2;

RETURN (num);

END;

2、调用函数

SELECT f1(10,nid), username FROM tab1;

SELECT f1(10,20) INTO @1;

SELECT @1;

3、删除函数

DROP FUNCTION 函数名;

存储过程PROCEDURE

存储过程简单来说,就是为以后使用而保存的一条或多条MySQL语句的集合。

简单:通过把处理封装在容易使用的单元中,简化复杂的操作。如果表名、列名或业务逻辑(或别的内容)有变化,只需要更改存储过程的代码。使用它的人员甚至不需要知道这些变化。

安全:不要求反复建立一系列处理步骤,这保证了数据的完整性。

高性能:使用存储过程比使用单独的SQL语句要快。

1、创建存储过程

DELIMITER //

CREATE PROCEDURE 存储过程名 (参数)

BEGIN

sql语句1;

sql语句2;

...

END//

DELIMITER ;

-- 使用存储过程

CALL 存储过程名;

2、删除存储过程

DROP PROCEDURE 存储过程名;

DROP PROCEDURE IF EXISTS 存储过程名; -- 如果存在则删除

3、带参数的存储过程。

参数允许的数据类型与表中使用的数据类型相同;查询集不是允许的类型,因此不能通过一个参数返回多个行和列。

in 仅用于传入参数用

out 仅用于返回值用

inout 既可以传入又可以当作返回值

CREATE PROCEDURE p1 (

IN v1 INT,

OUT v2 INT,

INOUT v3 INT

)

BEGIN

DECLARE i INT;

DECLARE j INT DEFAULT 5;

SET i = 2;

SET v1 = i + v3;

SET v2 = v1 + j;

SELECT age INTO v3 from users WHERE u_id = 10; -- 将查询结果赋给v3

END;

-- 执行存储过程

SET @p1_v1 = 1;

SET @p1_v2 = 2;

SET @p1_v3 = 3;

CALL p1 (@p1_v1,@p1_v2,@p1_v3);

SELECT @p1_v1,@p1_v2,@p1_v3; -- p1_v1=1, p1_v2=10, p1_v3=28

4、条件判断

当in参数为1时,out返回'first',当in参数为2时,out返回'secon

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值