什么是存储过程?
存储过程(Stored Procedure)是预先编译并存储在数据库中的一组SQL语句集合,可通过名称调用执行,它具有高效性、安全性、复用性的特点,适用于复杂业务逻辑的封装和批量数据处理。
<h3>存储过程的执行方式</h3>
<p>根据不同的数据库系统和开发场景,执行方法可分为以下四类:</p>
<div class="method-section">
<h4>1. 通过SQL命令行执行</h4>
<ul>
<li><strong>MySQL</strong>:<code>CALL procedure_name(参数1, 参数2);</code></li>
<li><strong>SQL Server</strong>:<code>EXEC procedure_name @参数1, @参数2;</code></li>
<li><strong>Oracle</strong>:<code>BEGIN procedure_name(参数1, 参数2); END;</code></li>
</ul>
<p class="tip"> 注意:参数需按定义的顺序传递,输出参数需用变量接收。</p>
</div>
<div class="method-section">
<h4>2. 使用数据库管理工具</h4>
<p>主流工具的操作流程:</p>
<ol>
<li>打开<strong>SSMS(SQL Server)</strong>或<strong>Workbench(MySQL)</strong></li>
<li>右键点击目标存储过程 → 选择【执行】</li>
<li>在弹出的参数窗口中输入值 → 点击【确定】</li>
</ol>
<img src="execution-demo.png" alt="存储过程执行界面示意图">
</div>
<div class="method-section">
<h4>3. 通过编程语言调用(示例)</h4>
<pre><code class="language-python"># Python连接MySQL示例
import pymysql
conn = pymysql.connect(host=’localhost’, user=’root’, password=’123456′, database=’test’)
cursor = conn.cursor()
执行无返回值的存储过程
cursor.callproc(‘update_user_score’, (1001, 95))
获取输出参数
cursor.execute(‘SELECT @_update_user_score_1’)
print(cursor.fetchone())
conn.commit()
cursor.close()