MySQL 5.0新特性教程(二)存储过程

SHOW VARIABLES LIKE 'version';

 

or
SELECT VERSION();

 

  例如:
mysql> SHOW VARIABLES LIKE 'version';
+---------------+-------------------+
| Variable_name | Value |
+---------------+-------------------+
| version | 5.0.3-alpha-debug |
+---------------+-------------------+
1 row in set (0.00 sec)
mysql> SELECT VERSION();
+-------------------+
| VERSION() |
+-------------------+
| 5.0.3-alpha-debug |
+-------------------+
1 row in set (0.00 sec)

  当看见数字'5.0.x' 后就可以确认存储过程能够在这个客户端上正常工作。

The Sample "Database" 示例数据库

  现在要做的第一件事是创建一个新的数据库然后设定为默认数据库实现这个步骤的SQL
  语句如下:
CREATE DATABASE db5;
USE db5;

  例如:
mysql> CREATE DATABASE db5;
Query OK, 1 row affected (0.00 sec)
mysql> USE db5;
Database changed

  在这里要避免使用有重要数据的实际的数据库然后我们创建一个简单的工作表。
  实现这个步骤的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)

  你会发现我只在表中插入了一列。这样做的原因是我要保持表的简单,因为在这里并不需要展示查询数据的技巧,而是教授存储过程,不需要使用大的数据表,因为它本身已经够复杂了。

  这就是示例数据库,我们将从这个名字为t的只包含一列的表开始Pick a Delimiter 选择分隔符
现在我们需要一个分隔符,实现这个步骤的SQL语句如下:
  DELIMITER //

  例如:
  mysql> DELIMITER //

  分隔符是你通知mysql客户端你已经完成输入一个SQL语句的字符或字符串符号。一直以来我们都使用分号“;”,但在存储过程中,这会产生不少问题,因为存储过程中有许多语句,所以每一个都需要一个分号因此你需要选择一个不太可能出现在你的语句或程序中的字符串作为分隔符。我曾用过双斜杠“//”,也有人用竖线“|”。我曾见过在DB2程序中使用“@”符号的,但我不喜欢这样。你可以根据自己的喜好来选择,但是在这个课程中为了更容易理解,你最好选择跟我一样。如果以后要恢复使用“;”(分号)作为分隔符,输入下面语句就可以了:
"DELIMITER ;//".
CREATE PROCEDURE Example 创建程序实例
CREATE PROCEDURE p1 () SELECT * FROM t; //

  也许这是你使用Mysql创建的第一个存储过程。假如是这样的话,最好在你的日记中记下这个重要的里程碑。
CREATE PROCEDURE p1 () SELECT * FROM t; // <--

  SQL语句存储过程的第一部分是“CREATE PROCEDURE”:
CREATE PROCEDURE p1 () SELECT * FROM t; // <--

  第二部分是过程名,上面新存储过程的名字是p1。

Digression: Legal Identifiers 题外话:合法标识符的问题

  存储过程名对大小写不敏感,因此‘P1’和‘p1’是同一个名字,在同一个数据库中你将不能给两个存储过程取相同的名字,因为这样将会导致重载。某些DBMS允许重载(Oracle支持),但是MySQL不支持(译者话:希望以后会支持吧。)。

  你可以采取“数据库名.存储过程名”这样的折中方法,如“db5.p1”。存储过程名可以分开,它可以包括空格符,其长度限制为64个字符,但注意不要使用MySQL内建函数的名字,如果这样做了,在调用时将会出现下面的情况:
mysql> CALL pi();
Error 1064 (42000): You have a syntax error.
mysql> CALL pi ();
Error 1305 (42000): PROCEDURE does not exist.

  在上面的第一个例子里,我调用的是一个名字叫pi的函数,但你必须在调用的函数名后加上空格,就像第二个例子那样。
CREATE PROCEDURE p1 () SELECT * FROM t; // <--

  其中“()”是“参数列表”。
CREATE PROCEDURE

  语句的第三部分是参数列表。通常需要在括号内添加参数。例子中的存储过程没有参数,因此参数列表是空的—所以我只需要键入空括号,然而这是必须的。
CREATE PROCEDURE p1 () SELECT * FROM t; // <--
"SELECT * FROM t;"

  是存储过程的主体。
  然后到了语句的最后一个部分了,它是存储过程的主体,是一般的SQL语句。过程体中语句
  "SELECT * FROM t;"

  包含一个分号,如果后面有语句结束符号(//)时可以不写这个分号。

  如果你还记得我把这部分叫做程序的主体将会是件好事,因为(body)这个词是大家使用的技术上的术语。通常我们不会将SELECT语句用在存储过程中,这里只是为了演示。所以使用这样的语句,能在调用时更好的看出程序是否正常工作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 5.0是一个老版本的MySQL数据库管理系统,以下是一个简单的安装和配置教程: 1. 下载和安装MySQL 5.0:访问MySQL官方网站(https://www.mysql.com/)下载MySQL 5.0的安装程序。根据你的操作系统选择合适的版本,并按照安装向导进行安装。 2. 配置MySQL 5.0:安装完成后,打开命令行或终端窗口,并进入MySQL的安装目录。 3. 初始化MySQL数据目录:运行以下命令初始化MySQL的数据目录: ``` mysql_install_db ``` 4. 启动MySQL服务:运行以下命令启动MySQL服务: ``` mysqld_safe & ``` 5. 连接到MySQL服务器:运行以下命令连接到MySQL服务器: ``` mysql -u root -p ``` 这将提示你输入MySQL的root用户密码。 6. 创建新用户:在MySQL命令行界面中,运行以下命令创建一个新用户: ``` CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; ``` 将 'username' 替换为你想要创建的用户名,将 'password' 替换为你想要设置的密码。 7. 授予用户权限:运行以下命令授予新用户权限: ``` GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'; ``` 这将授予新用户在所有数据库和所有表上的全部权限。 8. 退出MySQL:运行以下命令退出MySQL命令行界面: ``` exit ``` 这将使你返回到命令行或终端窗口。 现在你已经完成了MySQL 5.0的安装和配置。你可以使用新创建的用户名和密码连接到MySQL服务器,并开始使用数据库。请记住,MySQL 5.0是一个老版本,可能存在安全漏洞和功能限制,建议考虑升级到最新版本的MySQL

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值