安阳做网站公司,山东人才招聘网官网,我想建立个网站怎么弄,传奇网站如何建设前言
SQL#xff08;Structured Query Language#xff09;是一种用于管理关系型数据库的标准化语言#xff0c;它用于定义、操作和管理数据库中的数据。SQL是一种通用的语言#xff0c;可以用于多种关系型数据库管理系统#xff08;RDBMS#xff09;#xff0c;如MySQ…
前言
SQLStructured Query Language是一种用于管理关系型数据库的标准化语言它用于定义、操作和管理数据库中的数据。SQL是一种通用的语言可以用于多种关系型数据库管理系统RDBMS如MySQL、Oracle、SQL Server等。
MySQL是一种开源的关系型数据库管理系统它使用SQL作为其查询语言。MySQL是最流行的开源数据库之一它具有高性能、可靠性和可扩展性。MySQL支持多用户、多线程和多表操作可以在各种操作系统上运行。
因此SQL是一种语言而MySQL是一种关系型数据库管理系统它使用SQL作为其查询语言。SQL可以用于其他关系型数据库管理系统而MySQL是其中的一种。 MySQL最为最流行的开源数据库其重要性不言而喻也是大多数程序员接触的第一款数据库深入认识和理解MySQL也比较重要。
本篇博客介绍存储过程 store procedure分析其应用领域在Navicat中使用MySQL的存储过程并结合Mybatis-Plus使用存储过程。
其他相关的MySQL博客文章列表如下
SQL学习1——数据库概念单表SQL查询多表SQL查询
SQL进阶2——SQL语句类型 增删改查CRUD 事务初步 表关联关系 视图 索引 MySQL持久化数据——主从分离 Linux下创建2个MySQL的Docker容器 挂载方式启动 配置主从
redis漏洞回顾 MySQL数据安全解决 搭建主从集群MySQL 相关设置 目录 前言引出数据库存储过程什么是存储过程应用领域 MySQL中使用存储过程1.新建函数2.选择模式4.编写存储过程5.查询中调用存储过程 MybatisPlus使用存储过程1.新建存储过程2.注解调用存储过程3.运行时间对比 总结 引出 1.介绍存储过程 store procedure 2.分析其应用领域 3.Navicat中使用MySQL的存储过程 结合Mybatis-Plus使用存储过程
数据库存储过程
什么是存储过程
数据库存储过程是一组预定义的SQL语句集合它们被存储在数据库中并可以被多次调用。存储过程通常用于执行一系列的数据库操作如查询、插入、更新和删除等。存储过程可以接受参数并且可以包含条件判断、循环和异常处理等逻辑。存储过程可以在数据库服务器上执行减少了网络传输的开销提高了数据库的性能和安全性。
存储过程的优点包括
提高性能存储过程在数据库服务器上执行减少了网络传输的开销提高了执行效率。代码复用存储过程可以被多次调用提高了代码的复用性。安全性存储过程可以对数据进行权限控制只允许授权用户执行特定的操作。简化开发存储过程可以封装复杂的业务逻辑简化了应用程序的开发过程。
应用领域
在金融领域用的多互联网领域用的少阿里甚至禁止使用存储过程阿里禁止使用存储过程的原因主要有以下几点
可移植性存储过程的语法和特性在不同的数据库管理系统中可能存在差异使用存储过程会导致应用程序与特定数据库管理系统绑定降低了应用程序的可移植性。可维护性存储过程通常是在数据库服务器上定义和维护的而不是在应用程序中。这样会增加应用程序的维护难度特别是在多个环境中部署和升级时。性能问题存储过程的执行是在数据库服务器上进行的而不是在应用程序中。这样会增加数据库服务器的负载并且可能导致性能瓶颈。安全性问题存储过程的执行权限通常是在数据库层面进行控制的这可能导致安全性问题。如果存储过程的权限设置不当可能会导致数据泄露或数据被篡改的风险。可扩展性问题存储过程通常是在数据库服务器上执行的这限制了应用程序的扩展性。如果需要将应用程序部署到多个服务器或云环境中使用存储过程可能会导致扩展和部署的困难。
基于以上原因阿里等一些公司更倾向于将业务逻辑放在应用程序中而不是使用存储过程。这样可以提高应用程序的可移植性、可维护性和性能并更好地控制安全性和扩展性。然而是否使用存储过程还是应该根据具体的业务需求和数据库管理系统的特性来决定。
从业务角度来看存储过程更容易保持业务的规范性、一致性而互联网不用存储过程主要是因为业务的随意性、一次性。
上个世纪90年代后期。IBM的并行计算机DB2数据库/Oracle数据库软件是当时选择不多的解决方案。当时的存储和网络的性能都很差对于银行来说实在是没有必要和可能把数据从数据库读出来交由应用服务器处理系统[吞吐量]TPS指标太低。相反地还会导致一系列的分布式处理的问题。
相比银行的财大气粗当年互联网可是草根没钱又没人后来也是一样大多数公司没钱没人。当年互联网建站的标配是ApachePHPMySQL。MySQL对于[数据库应用 的发展贡献甚大。虽然MySQL在2003年提供了存储过程但是在90年代[计算机专业 的教学中数据库算是小众
https://www.zhihu.com/question/597801920/answer/3003905227?utm_id0
MySQL中使用存储过程
1.新建函数 2.选择模式 指定名字和类型注意varchar需要指定长度 不然会报错 加入长度后成功 4.编写存储过程 CREATE DEFINERrootlocalhost PROCEDURE proc_param(IN name VARCHAR ( 20 ),OUT auth VARCHAR ( 20 ))
BEGIN-- SELECT * FROM book_tab WHERE book_title LIKE name;SELECTSUBSTRING_INDEX( book_author, ,, 1 ) INTO auth FROMbook_tab WHEREbook_title LIKE NAME;END作用取到第一作者 5.查询中调用存储过程 CALL proc_param(%中国人的性格%,auth);
SELECT authMybatisPlus使用存储过程
1.新建存储过程 CREATE DEFINERrootlocalhost PROCEDURE findBookProc()
BEGINSELECT* FROMbook_tab;END2.注解调用存储过程 package com.tianju.bm.dao;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tianju.bm.domain.entity.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.mapping.StatementType;import java.util.List;
import java.util.Map;Mapper
public interface BookMapper extends BaseMapperBook {/*** 存储过程全查询* param map* return*/Select({call book_db.findBookProc()})Options(statementType StatementType.CALLABLE)ListBook findAllProc(MapString,Book map);
}
3.运行时间对比 总结
1.介绍存储过程 store procedure 2.分析其应用领域 3.Navicat中使用MySQL的存储过程 结合Mybatis-Plus使用存储过程