mysqlシェルでヘルプ検索

これはMySQL Casual Advent Calendar 2011 - MySQL Casualの9日目の記事です。

こんばんは。#さとし です。

たまにしか使わない関数や構文ってド忘れすることありますよね。
「LOAD DATAってどう書くんだっけ?」「文字列結合の関数ってなんだったかな?」
あるあるです。

記憶があいまいであれば MySQL リファレンスマニュアルGoogleカスタム検索するのがいいでしょう。残念ながらdev.mysql.comの検索機能はアレなので。たとえばGoogle Chromeを使っているなら、アドレスバーを右クリックして『検索エンジンの編集...』を選び、以下のように登録しておくといいですね。

20111209195536
名前
MySQL
キーワード
m
検索用URL
http://www.google.co.jp/search?q=site%3Adev.mysql.com%2Fdoc%2Frefman%2F5.1%2Fja%2F+%s

これでアドレスバーに "m 文字列結合" と入力することでリファレンスマニュアルを検索することができます。

もう1つの方法としては、サーバサイドヘルプがあります。いつものmysqlシェルからヘルプをひいてみましょう。

mysql> help load
Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following
topics:
   LOAD DATA  # こっちだったはず
   LOAD INDEX

mysql> help load data
Name: 'LOAD DATA'
Description:
Syntax:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]   
    ...

LOAD DATAの構文が分かりましたね。

文字列結合の関数を忘れた場合でも、

mysql> help string functions
You asked for help about help category: "String Functions"
For more information, type 'help <item>', where <item> is one of the following
topics:
   ASCII
   BIN
   BINARY OPERATOR
   BIT_LENGTH
   CAST
   CHAR FUNCTION
   CHARACTER_LENGTH
   CHAR_LENGTH
   CONCAT  # これかな?
   CONCAT_WS
   ...

mysql> help concat
Name: 'CONCAT'
Description:
Syntax:
CONCAT(str1,str2,...)
...

ヘルプの目次は"help contents"で引くことができます。

このヘルプの実際のデータはmysqlデータベース内のhelp_topic, help_category, help_keyword, help_relationの4テーブルにあり、インストール直後に実行するmysql_install_dbスクリプトによって作成されます。
元のデータは /usr/share/mysql/fill_help_tables.sql にあるので、翻訳されて日本語になれば MySQL がもっとカジュアルになるかもしれませんね。

明日は@tagomorisさんです。お楽しみにー