前天到亚信联创面试,应聘他们互联网产品部的java开发实习生,我有一段时间不要紧数据库方面的知识了,而面试时这方面的问题又很是多,面试过程可想而知的悲催了,哎,不提了 ,好好学习才是正事。java
回来以后就把数据库的知识恶补一通,通常的sql语句基本上搞定了,那就再摸索点高深的东东。这就遇到了存储过程。以前学习存储过程仅限于理论,如今经过万能的搜索引擎,找到了一些资料,便照着作一下吧。本身机器上安装的是MySql5.5,MySql自5.0就开始支持存储过程了,幸甚!!mysql
刚看了开头就发现单纯的MySql还不可以实践存储过程,导入一个叫"mysql_fix_privilege_tables"的东西,官方介绍这个叫作‘Upgrade MySql system table’,好像是调整MySql版本的东西,无论他,本身下载了导入就好。面试
开始创建练习用的数据库和表:sql
mysql> CREATE DATABASE db5; Query OK, 1 row affected (0.01 sec) mysql> USE db5; Database changed mysql> CREATE TABLE t (s1 INT); Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO t VALUES (5); Query OK, 1 row affected (0.00 sec)
这个尽可能简单,好把注意力放在存储过程上,开始存储过程以前还有一个工做要作,就是修改MySql的结束符,系统默认的是‘;’不过要创建存储过程,再用这个默认的分号就不方便了,把结束符改成‘//’,操做起来很简单,命令:DELIMITER // ,搞定;数据库
好了,创建第一个存储过程:学习
CREATE PROCEDURE p1 () SELECT * FROM t; //
SQL语句存储过程的第一部分是 “CREATE PROCEDURE”:第二部分是过程名,上面新存储过程的名字是p1。这个很容易理解,就是一个简单的select语句;搜索引擎
mysql> CALL p1() // +------+ | s1 | +------+ | 5 | +------+ 1 row in set (0.03 sec) Query OK, 0 rows affected (0.03 sec)
当调用这个存储过程的时候,会获得这个结果。code
再练习一个打印‘Hello,Worle!’的存储过程:索引
CREATE PROCEDURE HelloWorld() select 'Hello,World!' //
调用:开发
mysql> CALL HelloWorld()// +-------------+ | Hello,World | +-------------+ | Hello,World | +-------------+ 1 row in set (0.00 sec)
好了,先写到这个,继续学习