【MySQL】予約語について
今日はmysqlの予約語について、やさしい話をしましょう。
「予約語」と「識別子」
mysqlには、select、from、 insert、into、joinなどの特定語があります。それらを「予約語」といいます。
mysqlのテーブル名やカラム名といった「識別子」には、基本的に「予約語」が使えません※。
※「予約語」を「`」で囲んだら使えますが、ORMを用いる各言語のフレームワークが対応していない場合があるため、「予約語」を「識別子」として使うことはお勧めできません。
例えば、注文のテーブルを作ろうとして、テーブル名をorderと命名するとします。
1 | create table order (id int, name varchar(255)...); |
ではSQL syntaxエラーが出ますが、
1 | create table `order` (id int, name varchar(255)...); |
と書けば、syntaxエラーがでません。
mysqlの内部関数名はどうなる?
mysqlの内部関数名(例えば、count関数)は、「予約語」ではないので、「識別子」として使えます。
また、mysqlの内部関数を使うときは、その直後に「スペース」の使用は許可されていません。
なぜなら、直後に「スペース」を使うと、それが関数名か、もしくはテーブル名(カラム名)か分からなくなるからのです。
mysqlの予約語一覧
下記リンクからご覧いただけます。
http://dev.mysql.com/doc/refman/5.1/ja/reserved-words.html
Author Profile
スターフィールド編集部
SHARE