Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327157
  • 博文数量: 91
  • 博客积分: 5011
  • 博客等级: 大校
  • 技术积分: 657
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 05:50
文章分类

全部博文(91)

文章存档

2011年(1)

2010年(4)

2009年(21)

2008年(65)

我的朋友

分类: Mysql/postgreSQL

2008-06-05 17:06:07

16)  创建函数
CREATE [DEFINER={user | CURRENT_USER}] FUNCTION sp_name ([params]) RETURNS type
  function_definition
CREATE [AGGREGATE] FUNCTION name RETURNS return_type SONAME library
MySQL有两种截然不同的函数概念。第一种语法创建的是存储函数。所谓存储函数,与存储过程很相似,只是你可以将其作为查询的一部分进行调用。存储函数接受任意个数的IN参数并返回一个返回值。第二种语法创建的是库函数,库函数又称为用户定义函数(UDF),MySQL主要用它来作为外部编程语言的接口。函数的返回值可为STRINGREALINTEGER。包含函数的库文件必须是标准共享库文件,这样MySQL才能将其动态链接到服务器。
示例:     CREATE FUNCTION multiply RETURNS REAL SONAME myexample.so
17)  创建索引
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX name ON table (column[(length)], …)
创建索引语句主要用来与其它SQL实现兼容。在老的SQL版本中,该语句并不起任何作用。它相当于ALTER TABLE ADD INDEX语句。要创建索引,必须有对表的INDEX权限。
UNIQUE关键字表示索引列的值必须唯一。FULLTEXT关键字可使关键字的搜索基于索引列进行,一般只对MyISAM表的CHARVARCHARTEXT列才使用该选项。SPATIAL索引只适用于MyISAM表的非空列。
可以创建只使用列的部分值的索引,其设置可通过length来确定。
示例:     CREATE UNIQUE INDEX trans ON Translation (language, locale, code);
               CREATE INDEX inv ON Invitation (code(6));
18)  创建过程
CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE name
  ([ {IN | OUT | INOUT} parameter data_type [, …]])
  [LANGUAGE SQL] [[NOT] DETERMINISTIC]
  [{CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}]
  [SQL SECURITY { DEFINER | INVOKER}]
  [COMMENT ‘comment string’]
  procedure_body
创建新的存储过程。要使用该命令,必须拥有CREATE ROUTINE权限。过程体可以为单个SQL语句或一组由BEGIN/END包围的语句。
阅读(583) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~