데이터베이스란?
데이터의 저장, 조회, 수정을 편리하고 안전하게 할 수 있도록 고안된 소프트웨어다.
MySQL이란?
데이터베이스라는 분류의 제품군에 속한 구체적인 상품으로 ORACLE에 의해서 개발되고 있다. 오픈소스이고, 가장 많은 사용자를 가지고 있는 데이터베이스 시스템에 속한다. MySQL과 같은 분류에 속한 데이터베이스로는 ORACLE, MSSQL 등이 있다.
데이터베이스와 PHP
일반적으로 데이터를 저장해야 하는 에플리케이션을 구축하는 경우 데이터는 데이터베이스 서버에 저장한다. PHP 에플리케이션의 코드에는 데이터베이스 서버에 접속해서 데이터를 조회/수정/삭제하는 코드를 작성한다. PHP 에플리케이션이 호출되면 PHP 엔진은 PHP 에플리케이션의 코드에 따라서 데이터베이스의 클라이언트가 되어서 데이터베이스에 접속해서 여러가지 작업을 처리한다.
선행지식
본 수업은 데이터베이스에 대한 수업이 아니라 PHP를 이용해서 데이터베이스를 제어하는 방법에 대한 수업이다. 따라서 데이터베이스 자체에 대한 설명은 수업의 범위에 포함되지 않기 때문에 MySQL 수업을 참고한다.
선행작업
MySQL 클라이언트를 이용해서 MySQL 서버에 접속한다. 접속 방법은 아래 동영상을 참고한다.
윈도우에서 MySQL 서버에 접속하는 법
Mac에서 MySQL 서버에 접속하는 법
리눅스에서 MySQL 서버에 접속하는 법
Database, Table 제어
아래의 명령을 입력해서 데이터베이스를 생성한다. 아래의 명령은 opentutorials라는 데이터베이스를 생성한다.
1 | CREATE DATABASE opentutorials CHARACTER SET utf8 COLLATE utf8_general_ci; |
아래 명령을 입력해서 데이터베이스 opentutorials를 선택한다.
1 | use opentutorials; |
아래 명령을 입력해서 데이터베이스 opentutorials 내에 테이블 topic을 생성한다.
1 2 3 4 5 6 7 | CREATE TABLE topic ( id int (11) NOT NULL AUTO_INCREMENT, title varchar (255) NOT NULL , description text NULL , created datetime NOT NULL , PRIMARY KEY (id) ); |
SQL문을 이용해서 테이블을 제어하는 방법
PDO
PDO(PHP Data Objects)란 여러가지 데이터베이스를 제어하는 방법을 표준화시킨 것이다. 데이터베이스는 다양한 종류가 있다. 그리고 종류에 따라서 서로 다른 드라이버를 사용해 왔는데 드라이버의 종류에 따라서 데이터베이스를 제어하기 위한 API가 달랐다. PDO를 사용하면 동일한 방법으로 데이터베이스를 제어할 수 있다.
PHP의 (mysql_connect와 같은 함수를 사용할 수 있게 해주는)MySQL 확장은 PHP 5.5 버전부터 지원되지 않을 예정이다. 따라서 새로운 에플리케이션의 개발하는 경우 MySQL 확장을 사용해서는 안된다. 하지만 사용하는 환경이 PDO나 mysqli를 지원하지 않거나 기존의 코드가 MySQL 확장이라면 이것의 사용법을 알아야 한다.
또한 PHP에 대한 올바른 사용법을 전파하고 있는 PHP Right Way에서는 POD를 사용할 것을 권하고 있다. 이에 대한 내용은 PHP Right Way의 데이터베이스 편을 참고한다.
PDO를 이용한 데이터베이스의 제어는 PDO 수업에서 설명하겠다.
MySQL 확장
MySQL 확장은 더 이상 지원되지 않을 기능이다. 하지만 기존의 에플리케이션에서 광범위하고 MySQL 확장을 사용하고 있기 때문에 이것에 대한 사용법을 다루는 것도 의미가 있을 것이다. 이에 대한 사용법을 배우고 싶다면 MySQL 확장 수업을 보자.