php 입문 | PDO를 사용한 데이터베이스 액세스 | MySQL에 테이블 만들기

그럼, MySQL에 샘플로 데이터베이스를 준비하기로 한다. MySQL에서 데이터베이스는 다음과 같은 구조로 되어 있다.

데이터베이스 (database)
가장 먼저 준비해야 하는 것이 데이터베이스이다. MySQL을 사용할 때는 먼저 이용하는 데이터를 정리하여 보관하는 데이터베이스를 준비한다.

테이블 (table)
데이터베이스에 작성하는 실제 데이터를 정리한다. 테이블에는 어떤 항목에 어떤 값을 저장하는 등 데이터의 구조를 정의하고 있으며, 이에 따라 데이터가 저장된다.

필드, 컬럼 (field, column )
여러가지 불려지고 있지만, 테이블에 포함되는 각각의 항목이다. 테이블은 각각의 필드를 개별적으로 저장하거나 수 없다. 테이블에 정의된 모든 항목의 값을 한곳에 보관한다.

레코드(ecord)
테이블에 실제로 저장되는 데이터이다. 하나의 레코드는 각 필드의 값이 하나씩 저장되어 있다.

데이터베이스 생성 작업은 본래라면 mysql 명령어를 실행하고 있지만 XAMPP의 경우 “phpMyAdmin"라는 MySQL 전용 관리 도구가 포함되어 있으므로 이를 이용하면 편하다.

http://localhost/phpmyadmin/

브라우저에서 이 주소에 액세스해 보자. 관리 도구의 화면이 나타난다. 여기에서 데이터베이스와 테이블을 만들어 간다.

1. 데이터베이스 작성

우선 데이터베이스를 만든다. 페이지의 상단에 줄지어 있는 탭에서 ‘데이터베이스’라는 탭을 클릭한다. 그리고 나타난 “새 데이터베이스 만들기"라는 표시 아래에 데이터베이스 이름과 사용하는 텍스트 인코딩 이름을 설정한다. 여기에서는 다음과 같이 입력 후에 “만들기"버튼을 누르면 데이터베이스가 만들어 진다.

  • 데이터베이스 이름 : mysampledata
  • 인코딩 : utf8_unicode_ic

2. 테이블 만들기

데이터베이스를 작성하면 왼쪽 일람 목록에 “mysampledata"라는 데이터베이스명이 추가된다. 이 항목을 클릭하여 선택하면 화면이 바뀐다. “데이터베이스 mysampledata에 새로운 table 만들기"라는 표시가 나타난다. 여기에 이름과 컬럼 수를 다음과 같이 설정한다.

  • 이름 : sampletable
  • 열 수 : 5

테이블의 내용을 설정

테이블 이름과 컬럼 수를 입력하고 “실행"버튼을 누르면 테이블의 내용을 설정하는 표시가 나타난다. 여기에서 테이블에 준비하는 각 컬럼 (값을 저장하는 항목)의 세부 사항을 설정하고 있다. 여기에서는 다음과 같이 만들어 보자. 또한, 특히 기재하지 않은 설정은 기본 상태로 둔다.

컬럼 유형 인덱스 길이 Auto incremental NULL
id INT PRIMARY ON
name VARCHAR 20
mail VARCHAR 50
tel VARCHAR 20
memo VARCHAR 255 ON

이렇게 만들면 “sampletable"라는 테이블이 데이터베이스에 추가된다. 그리고 이 sampletable는 누구에게나 개방되어 있는 상태이다.

이에 대한 CREATE 문은 아래와 같다.

CREATE TABLE sampletable
(
    id int NOT NULL AUTO_INCREMENT,
    name varchar(20) NOT NULL,
    mail varchar(50) NOT NULL,
    tel varchar(20) NOT NULL,
    memo varchar(255),
    PRIMARY KEY (id)
);

3. 샘플 레코드 추가

샘플로 몇개 데이터 (레코드)를 추가하여 둔다. 위에 표시되는 탭에서 “삽입"을 선택한다. 아래에 각 컬럼 값을 입력하는 폼이 나타나므로 여기에 적당히 값을 쓰고 “실행"버튼으로 실행한다. 이것으로 작성한 내용이 새 레코드로 등록된다. 이렇게 레코드를 더 생성 해보자.

여기서 레코드를 추가 할 때는 첫 번째 id에 값을 쓸 필요는 없다. 이는 자동 증가하는 기능을 통해 자동으로 값이 추가되도록 설정(Auto incremental)되어 있다. 또한 memo는 쓰지 않아도 오류가 발생하지 않는다.

이에 대한 INSERT 문은 아래와 같다.

INSERT INTO sampletable(name, mail, tel) VALUES ("성진", "sung@abc.com", "02-123-1234");
INSERT INTO sampletable(name, mail, tel, memo) VALUES ("원석", "won@foo.info", "02-111-1111", "메모");