在MYSQL 中 终于引入了存储过程这一新特性 这将大大增强MYSQL 的数据库处理能力 在本文中 将指导读者快速掌握MYSQL 的存储过程的基本知识 带领用户入门
存储过程介绍
存储过程是一组为了完成特定功能的SQL语句集 经编译后存储在数据库中 用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它 存储过程可由应用程序通过一个调用来执行 而且允许用户声明变量 同时 存储过程可以接收和输出参数 返回执行存储过程的状态值 也可以嵌套调用
存储过程的优点
作为存储过程 有以下这些优点
( )减少网络通信量 调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别 可是如果存储过程包含上百行SQL语句 那么其性能绝对比一条一条的调用SQL语句要高得多
( )执行速度更快 存储过程创建的时候 数据库已经对其进行了一次解析和优化 其次 存储过程一旦执行 在内存中就会保留一份这个存储过程 这样下次再执行同样的存储过程时 可以从内存中直接中读取
( )更强的安全性 存储过程是通过向用户授予权限(而不是基于表) 它们可以提供对特定数据的访问 提高代码安全 比如防止 SQL注入
( ) 业务逻辑可以封装存储过程中 这样不仅容易维护 而且执行效率也高
当然存储过程也有一些缺点 比如
可移植性方面 当从一种数据库迁移到另外一种数据库时 不少的存储过程的编写要进行部分修改
存储过程需要花费一定的学习时间去学习 比如学习其语法等
在MYSQL中 推荐使用MYSQL Query Browswer()这个工具去进行存储过程的开发和管理 下面分步骤来学习MYSQL中的存储过程
定义存储过程的结束符
在存储过程中 通常要输入很多SQL语句 而SQL语句中每个语句以分号来结束 因此要告诉存储过程 什么位置是意味着整个存储过程结束 所以我们在编写存储过程前 先定义分隔符 我们这里定义 // 为分隔符 我们使用DELIMITER //这样的语法 就可以定义结束符了 当然你可以自己定义其他喜欢的符号
如何创建存储过程
下面先看下一个简单的例子 代码如下
DELIMITER //CREATEPROCEDURE `p ` ()LANGUAGE SQLDETERMINISTICSQL SECURITY DEFINERMENT A procedure BEGINSELECT Hello World ! ;END//
下面讲解下存储过程的组成部分
)首先在定义好终结符后 使用CREATE PROCEDURE+存储过程名的方法创建存储过程 LANGUAGE选项指定了使用的语言 这里默认是使用SQL
)DETERMINISTIC关键词的作用是 当确定每次的存储过程的输入和输出都是相同的内容时 可以使用该关键词 否则默认为NOT DETERMINISTIC
) SQL SECURITY关键词 是表示调用时检查用户的权限 当值为INVOKER时 表示是用户调用该存储过程时检查 默认为DEFINER 即创建存储过程时检查
) MENT部分是存储过程的注释说明部分
lishixinzhi/Article/program/MySQL/201404/30557
SQL学习路线
1、下载安装MySQL,或者安装软件phpstudy(这个软件自带了mysql数据库,而且安装启动方便)。
2、我这里用的是phpstudy,打开phpstudy后,点击下图中的启动,点击后数据库服务就会启动了
3、下载安装Navicat软件
这个软件可以轻松连接数据库,我们可以在这个软件中练习学习SQL语法
4、使用Navicat建立数据库连接
点击文件——新建连接,连接名随便填写,比如写“本地”。主机名、端口都不需要修改,用户名和密码都是root(因为我们安装的phpstudy里的mysql默认用户名密码就是root),点击连接测试显示为成功后点确定保存。
以后再次访问时,双击即可。
5、下载习题进行学习,内含习题需要用到的数据表。
6、导入第5步中下载的数据表。(后台回复关键词“SQL”获得)
右击第4步中的“本地”,新建一个数据库test1,双击打开新建的数据库(打开后颜色是绿色)。
拖拽刚才下载的数据表文件(sqltest1sql)到test1上面。
这时会出现上述d窗,点击开始,等待导入完成后,点击关闭
在左侧空白处右击,选择“刷新”,即可看到刚才导入的数据表了。
7、打开sql语法编辑器
如下图点击查询——新建查询,在空白处输入sql语法,点击运行,如果输入错误会有报错,输入正确则会返回查询内容。
8、边做边学
打开第一部分习题,边做边学,通过查询w3c的sql语法手册完成
9、巩固练习
尝试不看sql语法手册,独立完成第二部分习题。
以上是sql的学习路径。
如果一点数据库知识也没有的话,先把你要学习的数据库环境搭建起来(网上很多教程)。
先不要看书,环境搭建成功后在网上搜罗一些demo,sql脚本之类,直接动手敲进去一点一点体会。
能搜到的简单sql语句都练到了,再结合疑问去翻书,并系统学一下基础。到此为止的效率,远比先抱着一本书硬啃高多了(还容易犯困,半途而废)。
入门级书籍,个人认为只要尽量没有错误,都是可以的。找个名声好些的出版社的书。进阶的书籍再好好挑也不迟。
延展
数据库学习需要什么基础?
不需要基础,计算机的学习最大的基础就是兴趣,只要有兴趣,许多东西不学就会了。
以上就是关于MySQL数据库新特性之存储过程入门教程全部的内容,包括:MySQL数据库新特性之存储过程入门教程、怎样学习sql、学习数据库怎么入门啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)