MySQL学习笔记(十六)―― MySQL的命令集(6)

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 主要用它来作为外部编程语言的接口。函数的返回值可为 STRING REAL INTEGER 。包含函数的库文件必须是标准共享库文件,这样 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 表的 CHAR VARCHAR TEXT 列才使用该选项。 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 包围的语句。

你可能感兴趣的:(mysql,数据库,学习,笔记,休闲)