• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 서비스
    • MySQL유지보수
    • MySQL라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.1 한글메뉴얼) [close]
  • 1. MySQL 5.1 Reference Manual
  • 2. Installing and MySQL 업그레이드하기
  • 3. 사용 설명서 (Tutorial)
  • 4. MySQL 프로그램 사용하기
  • 5. 데이터베이스 관리
  • 6. 리플리케이션
  • 7. 최적화 (Optimization)
  • 8. 클라이언트 및 유틸리티 프로그램
  • 9. 언어 구조 (Language Structure)
  • 1. 리터럴 값 (Literal Values)
    2. 아이덴티파이어 (Identifiers)
    3. 사용 지정 단어 (Reserved Words)
    4. 사용자 정의 변수
    5. 코멘트 신텍스
  • 10. 문자 셋 지원
  • 24. API 및 라이브러리
  • 25. Connectors

9.3. 사용 지정 단어 (Reserved Words)

 

SELECT, DELETE, 또는 BIGINT와 같은 단어는 사용이 지정되어 있기 때문에, 이러한 단어를 테이블 이름 및 컬럼 이름과 같은 아이덴티파이어로 사용하고자 할 때에는 특별한 주의가 필요하다. 빌트-인 함수 이름으로 사용하고자 할 때에도 마찬가지이다.

 

사용 지정 단어 (Reserved Words)에 인용 부호를 사용하면 아이덴티파이어로 사용할 수가 있다:

 

mysql> CREATE TABLE interval (begin INT, end INT);

ERROR 1064 (42000): You have an error in your SQL syntax ...

near 'interval (begin INT, end INT)'

 

mysql> CREATE TABLE `interval` (begin INT, end INT);

Query OK, 0 rows affected (0.01 sec)

 

예외 사항: 점 (period) 다음에 나오는 단어는 반드시 아이덴티파이어이어야 하기 때문에, 그 단어가 사용 지정 단어일 지라도 인용 부호를 사용할 필요는 없다:

 

mysql> CREATE TABLE mydb.interval (begin INT, end INT);

Query OK, 0 rows affected (0.01 sec)

 

빌트-인 함수 이름은 아이덴티파이어로 사용 가능하지만 사용할 때 주의를 하도록 한다. 예를 들면, COUNT는 컬럼 이름으로 사용이 가능하지만, 함수를 선언할 때에는 디폴트로 함수 이름과 “(” 문자 사이에 화이트스페이스를 사용할 수가 없다.

 

MySQL 5.1에서 사용이 지정된 단어는 아래 테이블에 열거되어 있다. 사용 지정된 단어를 아이덴티파이러로 사용하고자 하는 경우에는 인용 부호를 사용하도록 한다.

 

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

X509

XOR

YEAR_MONTH

ZEROFILL

 

아래에 나와 있는 단어는 MySQL 5.1에서 새롭게 추가된 사용 지정 단어이다:

 

ACCESSIBLE

LINEAR

MASTER_SSL_VERIFY_SERVER_CERT

RANGE

READ_ONLY

READ_WRITE

 

아래에 나와 있는 단어는 인용 부호를 사용하지 않은 채 아이덴티파이어로 사용이 가능한 것들이다:

  • ACTION
  • BIT
  • DATE
  • ENUM
  • NO
  • TEXT
  • TIME
  • TIMESTAMP
서울시 강남구 영동대로 602 6층  TEL: 02-6061-0006
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved