博客
关于我
Mysql视图、变量、存储过程、函数
阅读量:788 次
发布时间:2023-02-13

本文共 1768 字,大约阅读时间需要 5 分钟。

MySQL 视图、变量、存储过程与函数

视图

视图是一种虚拟表,通过封装复杂的SQL语句实现数据的抽象和复用。它的主要优点包括支持重用、简化复杂操作、保护数据安全性等。

视图的创建

创建视图的语法为:

create view 视图名 as 查询语句

以下是一个实际案例:

create view myv1 asselect 员工姓名字段, 部门名字段, 工种名字段from 员工表 join 部门表 on 条件join 工种表 on 条件;

使用视图时可以通过如下方式查询:

select * from myv1 where 员工姓名字段 like '%a%';

视图支持动态修改,操作包括:

  • 创建或替换:create or replace view 视图名 as 查询语句
  • 修改:alter view 视图名 as 查询语句
  • 删除:drop view 视图名

视图操作需注意事项包括:

  • 包含关键字的SQL无法更新
  • 常量视图不可修改
  • 子查询引用从字句中的表

变量

MySQL变量分为系统变量和自定义变量。

系统变量

系统变量由服务器提供,不能自定义,分为全局变量和会话变量。

  • 查询全局变量:show global variables
  • 查询会话变量:show session variables
  • 模糊查询:show variables like '%变量名%'
  • 查看单个变量:select @@变量名(会话变量)或select @@global.变量名(全局变量)
  • 设置变量值:set 系统变量名=值(默认会话变量,需添加global修改全局变量)

自定义变量

自定义变量分为用户变量和局部变量。

用户变量

创建方式:

set @用户变量名=值set @用户变量名:=值select @用户变量名:=值

赋值方式可通过查询结果:

select 字段名 into @用户变量名 from 数据表名 where 查询条件

使用示例:

set @count=1;select count(*) into @count from user;select @count;

局部变量

创建方式:

declare 变量名 类型 [default 值]

赋值方式:

set 局部变量名=值set 局部变量名:=值select 字段 into 局部变量名 from 表名

使用方式:

select 局部变量名;

存储过程

存储过程是一组预先编译的SQL语句,具有高效运行的优势。

存储过程的创建

创建语法:

delimiter $ create procedure 存储过程名(参数列表)begin 	存储过程体 end $

注意事项:

  • 参数列表格式为:参数模式 参数名 参数类型
  • 存储过程体需以分号结尾
  • 结束标记可通过delimiter设置,默认为\

参数模式

  • in:输入参数,需手动赋值
  • out:输出参数,存储过程自动返回
  • inout:输入输出参数

以下是一个带inout模式的案例:

delimiter $ create procedure mypro4 (inout a int, inout b int) begin 	set a = a * 2; 	set b = b * 2; end $

调用方式:

call mypro4(2, 3)$

函数

函数与存储过程类似,但返回值必须唯一。

函数的创建

创建语法:

delimiter $ create function 函数名(参数列表)returns 返回类型 begin 	函数体 end $

注意事项:

  • 必须包含return语句
  • 若函数体只有一行可省略begin end
  • 需使用delimiter设置结束标记

以下是一个带返回值的函数案例:

delimiter $ create function fun1() returns int begin 	declare c int default 0; 	select count(*) into c from empl; 	return c; end $

调用方式:

select fun1()

总结

视图、变量、存储过程和函数是MySQL中重要的技术工具,广泛应用于数据库管理和开发。理解并掌握这些概念对于数据库优化和高效编程具有重要意义。

转载地址:http://zldfk.baihongyu.com/

你可能感兴趣的文章
mysql数据库常用命令
查看>>
MySQL数据库必会的增删查改操作(CRUD)
查看>>
MySQL数据库性能分析与调优实践
查看>>
mysql数据库扫盲,你真的知道什么是数据库嘛
查看>>
mysql数据库批量插入数据shell脚本实现
查看>>
MySQL数据库操作
查看>>
MySQL数据库故障排错
查看>>
MySQL数据库无法远程连接的解决办法
查看>>
mysql数据库时间类型datetime、bigint、timestamp的查询效率比较
查看>>
MySQL数据库服务器端核心参数详解和推荐配置(一)
查看>>
mysql数据库死锁的产生原因及解决办法
查看>>
MySQL数据库的事务管理
查看>>
mysql数据库的备份与恢复
查看>>
Mysql数据库的条件查询语句
查看>>
MySQL数据库的高可用
查看>>
Mysql数据库相关各种类型的文件
查看>>
MYSQL数据库简单的状态检查(show processlist)
查看>>
MYSQL数据库简单的状态检查(show status)
查看>>
MySQL数据库系列
查看>>
MYSQL数据库自动本地/异地双备份/MYSQL增量备份
查看>>