本文内容系2024年北航软件学院数据管理技术课程课堂笔记,内容大部分取自课程PPT,少量来源于互联网,若有侵权请联系删除。文章内容如有错漏,敬请批评指正!
第四章 数据库编程
06 - 数据库编程
文章目录
4.1 数据库编程 - 1
4.1.1 数据库程序开发
-
SQL有其缺点:主要用于数据查询和更新
-
对数据的分析处理主要由数据库应用程序来完成
- 两种形式:数据库内部应用程序、数据库外部应用程序
4.1.2 数据库内部编程
数据库内部程序的常见形式:存储过程、函数、触发器
存储过程
-
由过程化SQL语句书写的过程,经编译和优化后存储在数据库服务器中,使用时只要调用即可。
-
通常将多次重复执行的代码段编写成一个过程(procedure or function),保存在数据库中
-
优点
- SQL与模块化编程结合,可完成复杂业务功能
- 创建时预编译,提高SQL执行效率
- 位于数据库服务器上,调用时无需通过网络传输大量数据
- 可作为安全机制加以充分利用:可防止SQL注入式的攻击
-
创建:
CREATE PROCEDURE procedure_name ( [ IN | OUT | INOUT ] param_name type [ ,... ] # param_name: 调用时给出的参数值,必须指定数据类型。参数也可以定义输入/输出参数。默认为输入参数。 ) [ BEGIN ] sql_statement # 一个过程化SQL块。包括声明部分和可执行语句部分 [ END ]
-
删除与调用:
DROP PROCEDURE prodedure_name CALL procedure_name (param_name type [ ,... ]) # CALL方式激活存储过程的执行
-
数据库提供过程化编程语言:变量、流程控制、常用数据库函数与命令…
-
在过程化编程中嵌入SQL语句,例:
declare v_score int; select score into v_score from sc where cno=55 and stuid=001; Set v_score=v_score+1; Update sc set score=v_score where cno=55 and stuid=001;
-
动态SQL:根据用户输入参数和/或数据库状态,动态确定程序中的SQL语句内容
- Prepare:组装SQL