데이터베이스를 만들어 봅시다.

이름 지정하기

식별자 이름을 만들기 위해서는 기본적으로 예약어나 특수 문자를 사용할 수 없지만 backtick(`) 문자로 묶으면 사용 가능합니다. "_"과 "$"는 특수문자가 아닌 일반 문자로 사용합니다.식별자는 숫자로 시작할 수 있지만 "1e"나 "1e3"과 같은 이름으로는 시작할 수 없습니다. "Me"나 "MeN"(M과 N은 정수를 의미함)과 같은 형식은 지수 형식의 숫자 표현이므로 식별자로 사용할 수 없습니다. MySQL은 사용자 정의 변수 사용이 가능하지만 사용자 정의 변수 이름은 직접 사용할 수 없습니다. 식별자는 Unicode(UTF-8)로 저장됩니다. multi-bytes 문자의 경우 최대길이를 유의해야 합니다.

표. 식별자의 최대 길이
식별자 최대
길이
(chars)
사용 가능 문자
Database 64 디렉터리 이름으로 사용 가능한 모든 문자. 마침표(.)는 사용 불가.
Table 64 파일 이름으로 사용 가능한 모든 문자. 마침표(.)는 사용 불가.
Column 64 모든 문자.
Index 64 모든 문자.
Contraint 64 모든 문자.
Stored Function or Procedure 64 모든 문자.
Trigger 64 모든 문자.
View 64 모든 문자.
Event 64 모든 문자.
Tablespace 64 모든 문자.
Log File Group 64 모든 문자.
Alias 256 모든 문자.

MySQL은 마침표(.)로 구분된 식별자를 사용하여 테이블안의 컬럼 이름 등을 지정할 수 있습니다.

식별자 구분
컬럼 참조 의미
col_name 테이블에서 사용되는 컬럼 이름.
tbl_name.col_name 테이블 이름(tbl_name)과 컬럼 이름(col_name)을 사용하여 테이블과 컬럼을 함께 지정.
db_name.tbl_name.col_name 데이터베이스 이름(db_name)과 테이블 이름(tbl_name), 컬럼 이름(col_name)을 함께 지정.

주석의 사용

  • "#"(해쉬문자)로 시작하는 행.
  • "-- "로 시작하는 행. MySQL의 연산자 표현과 충돌 문제로 "--" 뒤에 반드시 공백이 포함되어야 합니다.
  • "/*"에서 "*/" 사이의 여러 행.

인코딩과 정렬

MySQL은 다양한 인코딩을 지원합니다. character set과 collation을 사용하여 적절한 인코딩을 지정해야 올바른 데이터의 정렬을 사용할 수 있습니다. 다음은 한글 사용시 필요한 collation과 character set입니다.

Collation과 Character set
Collation Character set 최대길이(byte) 의미
euckr_korean_ci (Default) euckr 2 EUC-KR Korean
euckr_bin euckr 2 EUC-KR Korean
utf8_general_ci utf8 3 UTF-8 Unicode

Collation의 접미사로 사용되는 "_ci"(Case Insensitive)는대소문자 구별 없음을 "_cs"(Case Sensitive)는 대소문자 구별을 "_bin"(binary)는 이진 데이터임을 의미합니다. Collation의 이름이 의미하는 것처럼 한글 및 유니코드 사용시 데이터의 알파벳은 저장시 대소문자의 구분은 되나 정렬시 대소문자의 구별을 하지 않습니다.

데이터베이스 만들고 지우기

CREATE DATABASE [IF NOT EXISTS] 데이터베이스_이름;

DROP DATABASE [IF EXISTS] 데이터베이스_이름;

데이터베이스를 만들거나 지울 때 데이터베이스의 유무에 따른 에러를 발생시키지 않도록 하기 위해서 "IF NOT EXISTS"와 "IF EXSISTS" 옵션을 사용합니다. 데이터베이스가 만들어지면 데이터베이스 저장 타입이 MyISAM일 경우 데이터베이스 이름과 같은 테이블 정보를 담고 있는 ".frm"확장자를 갖는 파일과 데이터를 담고 있는 ".MYD"(MYData) 확장자를 갖는 파일, 그리고 인덱스 정보를 담고 있는 ".MYI"(MYIndex) 확장자를 갖는 3개의 파일이 만들어 집니다. InnoDB 타입으로 저장할 경우 특별한 옵션이 없으면 tablespace 정보를 가지고 있는 10MB 크기의 "ibdata1" 파일과 log 정보를 가지고 있는 2개의 5MB 크기의 "ib_logfile0"와 "ib_logfile1"이 만들어 집니다.

CREATE DATABASE [IF NOT EXISTS] 데이터베이스_이름
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name

추가로 데이터베이스를 만들 때 인코딩을 지정할 수 있습니다.

+ Recent posts