- Home ›
- MySQLの使い方 ›
- MySQLの基本構文 ›
- HERE
識別子と予約語
広告
データベースやテーブル、カラム、インデックスをなどを作成する時に名前を指定します。この名前のことを識別子と呼びます。
識別子は例外を除いてシングルクオーテーションなどで囲う必要はありません。そのまま記述できます。
CREATE DATABASE personal; CREATE TABLE addresstbl (id int, address varchar(20));
以前のバージョンであれば使用できない文字もありましたが、MySQL 5.1.6以降であればASCII(0x00)とASCII(0xFF)を除く全ての文字が使用できます。ただし予約語をそのまま使用する場合や特別な文字が含まれる場合は引用符で囲う必要があります。引用符はバッククォート(`)です。
CREATE DATABASE `where`;
ただし予約語や特別な文字を含むような識別子を使うことはできる限り避けるべきだと思います。
識別子の長さ制限
データベース名やテーブル名として識別子を付ける場合には長さに制限があります。
データベース名 64byte テーブル名 64byte カラム名 64byte インデックス名 64byte エイリアス名 255byte
文字数ではなくバイト数である点に注意して下さい。
上記の例では64バイトのテーブル名であれば作成できますが、65バイトのテーブル名を作成しようとすると「ERROR 1103 (42000): Incorrect table name」というエラーが発生します。
予約語
MySQLで予約語として登録されている単語は以下の通りです。
ACCESSIBLE ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE CASE CHANGE CHAR CHARACTER CHECK COLLATE COLUMN CONDITION CONSTRAINT CONTINUE CONVERT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR DATABASE DATABASES DAY_HOUR DAY_MICROSECOND DAY_MINUTE DAY_SECOND DEC DECIMAL DECLARE DEFAULT DELAYED DELETE DESC DESCRIBE DETERMINISTIC DISTINCT DISTINCTROW DIV DOUBLE DROP DUAL EACH ELSE ELSEIF ENCLOSED ESCAPED EXISTS EXIT EXPLAIN FALSE FETCH FLOAT FLOAT4 FLOAT8 FOR FORCE FOREIGN FROM FULLTEXT GRANT GROUP HAVING HIGH_PRIORITY HOUR_MICROSECOND HOUR_MINUTE HOUR_SECOND IF IGNORE IN INDEX INFILE INNER INOUT INSENSITIVE INSERT INT INT1 INT2 INT3 INT4 INT8 INTEGER INTERVAL INTO IS ITERATE JOIN KEY KEYS KILL LEADING LEAVE LEFT LIKE LIMIT LINEAR LINES LOAD LOCALTIME LOCALTIMESTAMP LOCK LONG LONGBLOB LONGTEXT LOOP LOW_PRIORITY MASTER_SSL_VERIFY_SERVER_CERT MATCH MEDIUMBLOB MEDIUMINT MEDIUMTEXT MIDDLEINT MINUTE_MICROSECOND MINUTE_SECOND MOD MODIFIES NATURAL NOT NO_WRITE_TO_BINLOG NULL NUMERIC ON OPTIMIZE OPTION OPTIONALLY OR ORDER OUT OUTER OUTFILE PRECISION PRIMARY PROCEDURE PURGE RANGE READ READS READ_ONLY READ_WRITE REAL REFERENCES REGEXP RELEASE RENAME REPEAT REPLACE REQUIRE RESTRICT RETURN REVOKE RIGHT RLIKE SCHEMA SCHEMAS SECOND_MICROSECOND SELECT SENSITIVE SEPARATOR SET SHOW SMALLINT SPATIAL SPECIFIC SQL SQLEXCEPTION SQLSTATE SQLWARNING SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT SSL STARTING STRAIGHT_JOIN TABLE TERMINATED THEN TINYBLOB TINYINT TINYTEXT TO TRAILING TRIGGER TRUE UNDO UNION UNIQUE UNLOCK UNSIGNED UPDATE USAGE USE USING UTC_DATE UTC_TIME UTC_TIMESTAMP VALUES VARBINARY VARCHAR VARCHARACTER VARYING WHEN WHERE WHILE WITH WRITE XOR YEAR_MONTH ZEROFILL
以下はMySQL 5.1で登場する新規の予約語です。
ACCESSIBLE LINEAR MASTER_SSL_VERIFY_SERVER_CERT RANGE READ_WRITE
( Written by Tatsuo Ikura )