본문 바로가기
PHP/PHP Database

PHP 데이터베이스 및 테이블 만들기

by 진격의 파파 2013. 7. 4.
반응형

 

이번장에서는 PHP 와 Mysql 을 연동한 데이터베이스와 테이블 만들기에 대해서 알아보겠습니다.

우선 이전 포스팅에서 나왔던 mysqli_query 함수를 이용하여 데이터베이스 만들기에 대해서 알아보겠습니다.

지금부터 "test_db" 를 만들겠습니다. test_db를 만들기 위해서 데이터베이스와 연결이 필요하겠죠.

 

 

데이터베이스 만들기

<?php
$conn = mysqli_connect("localhost","user_id","user_pwd"); // DB connection
if (mysqli_connect_errno()){
echo "MySQL 연결 오류: " . mysqli_connect_error();
}

// Create database
$sql = "CREATE DATABASE test_db";
// CREATE DATABASE 데이터베이스를 만들때 사용하는 mysql 명령어 입니다.
if (mysqli_query($conn,$sql)){
echo "성공적으로 test_db 가 만들어졌습니다.";
} else {
echo "데이터베이스 만들기 오류: " . mysqli_error($conn);
}
?>

// 첫번째 $conn 의 내용을 보면 localhost 서버에 사용자 아이디와 비밀번호를 넣고 mysqli_connect 함수를 이용하여 데이터베이스와 연결시킵니다. 그리고 오류가 있으면 mysqli_connect_error() 함수에서 오류를 반환합니다.

// 그리고 mysql 명령어 "create database"를 이용하여 데이터베이스를 생성합니다. 굳이 해석을 안해도 명령어 자체는 이해를 할거라 생각합니다. 만약 우리나라 언어로된 프로그램이라면 어떨까요.. "테스트디비 데이터베이스 생성" 아마도 요렇게 명령을 내리면 "테스트디비"라는 데이터베이스가 생성되지 않을까 합니다. 하지만 프로그램 언어의 대부분은 영문을 사용하기에 약간의 영어공부도 하시면 프로그램 언어공부에 도움이 많이 되지 않을까 생각합니다.

 

위 코딩을 복사해서 붙여넣기 하지 마시고 직접 코딩을 해가며 데이터베이스를 생성해보기를 바랍니다.

 

데이터베이스를 만들었으니 이제 테이블 만드는 작업을 해보겠습니다.

 

 

테이블 만들기

<?php
$conn = mysqli_connect("localhost","user_id","user_pwd"); // DB connection
if (mysqli_connect_errno()){
echo "MySQL 연결 오류: " . mysqli_connect_error();
}

// table 만들기
$sql = "CREATE TABLE Persons(FirstName CHAR(30), LastName CHAR(30), Age INT)";

// 테이블 생성 명령어는 "create table" 입니다. 위 구문을 자세히 보면 Persons 테이블을 생성하는데

// FirstName CHAR(30), LastName CHAR(30), Age INT 이렇게 3개의 필드가 추가된 테이블을 만들라는 의미 입니다.

// 필드관련 함수는 아래 별도 정리되어 있으니 참조바랍니다.

// query 실행
if (mysqli_query($conn,$sql)){
echo "성공적으로 persons 테이블을 만들었습니다.";
} else {
echo "테이블 생성 오류 : " . mysqli_error($conn);
}
?>

// 위 구문은 Persons 라는 테이블을 생성하는 구문입니다.

아직 정확하게 데이터베이스와 테이블이 구분이 안가는 분들을 위해 아파트와 비교하며 설명드리겠습니다.

예를 들어서 한 동의 아파트를 하나 짓는다고 가정해봅니다.

하나의 아파트 안에는 다수의 집이 들어 있습니다.

그리고 그 집 속에는 다수의 방들이 존재합니다.

포괄적으로 아파트 > 집 > 방 이렇게 정의 되는데 데이터베이스를 만드는 과정도 똑같습니다.

아파트(데이터베이스) > 집(테이블) > 방(필드) 어떤 데이터들을 담기 위해 데이터베이스라는 아파트를 만들어야 하고 테이블 이라는 집을 만들고 필드 라는 집을 만들어서 사용한다고 보면 됩니다.

 

 

 

Primary Keys and Auto Increment 테이블 생성

- 테이블을 만들때 보통 기본키값을 가진 필드를 하나 생성해야 합니다.

- 기본키를 가진 필드의 역할은 데이터가 담긴 행에 대하여 고유의 값을 가지게 합니다. 만약 똑같은 값들이 여러게 있으면 무엇이 어떤값인지 모르겠죠. 그래서 그러한것을 식별하고 구분하기 위해서 기본적으로 테이블 생성시 고유의 키값을 만들어서 생성합니다.

- Auto Increment 의 뜻은 '자동증가'라는 의미 입니다. 어떤 필드가 하나 생성이 되고 기본키가 자동증가 옵션이 들어 있다면 기본키값은 자동으로 1씩 증가되어 보여지게 됩니다. 관련예제를 살펴보겠습니다.

관련예제

<?php
$conn = mysqli_connect("localhost","root","./akzpxld","test"); // Check connection
if (mysqli_connect_errno()){
echo "MySQL 연결 오류 : " . mysqli_connect_error();
}

// Create table
$sql = "CREATE TABLE Persons
(
PID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(PID),
FirstName CHAR(15),
LastName CHAR(15),
Age INT
)";

// Execute query
if (mysqli_query($conn,$sql)){
echo "성공적으로 persons 테이블을 만들었습니다.";
} else {
echo "테이블 생성 오류 : " . mysqli_error($conn);
}
?>

// 바로 위 테이블 만드는 방법과 유사한데 틀린 부분이 있습니다. PID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(PID) 두 개의 내용이 추가되었는데 PID라는 필드를 만들고 not null 공백이 안들어간다는 의미 입니다. 무조건 값이 들어가야 된다는 의미겠죠. 그리고 auto_increment 자동증가 하였습니다. 그리고 마지막에 primary key(PID) 기본키값을 pid 값으로 하겠다는 의미 입니다. 테이블 생성시 기본적으로 위와 같이 사용된다고 보면 됩니다.

 

 

필드의 varchar, char, int, text, timestamp 등 많은 종류의 Data Type이 있는데 그 종류에 관해서 PHP Reference 쪽에서 자세히 정리를 해놓겠습니다.

 

 

일단 오늘 포스팅내용에서 중점을 두어야 하는 부분은 데이터베이스와 테이블을 만들때 어떻게 만드는지에 대한 방법입니다. 그 방법이 확실하게 인식이 되었다면 더 복잡한 테이블 만들기에 도전해도 되겠습니다.

 

지금 까지 데이터베이스, 테이블 생성에 관해 알아보았고 다음 포스팅에서는 테이블에 값을 어떻게 넣는지에 대해서 알아보겠습니다.

반응형

'PHP > PHP Database ' 카테고리의 다른 글

PHP Mysql Where 구문  (0) 2013.07.09
PHP Mysql Select 구문  (0) 2013.07.08
PHP Mysql insert into 구문  (0) 2013.07.05
PHP Mysql Connect(PHP 데이터베이스 연동)  (4) 2013.07.03
PHP MySQL 소개  (0) 2013.07.02