[PHP DB] MySQL, DB와 테이블 생성하기

[+] 한 데이터베이스는 하나, 혹은 그 이상되는 여러개의 테이블을 가지고 있습니다.

참고: 필드, 쿼리, 레코드같은 용어를 모르실 경우에는 이전 PHP 강좌를 보시면 됩니다^^


 

데이터베이스 생성하기

 

CREATE DATABASE 선언문은 MySQL에 데이터베이스를 생성할때 사용됩니다.

 

문법

CREATE DATABASE 데이터베이스_이름

 

일단 저렇게 선언문을 만들어둔뒤, PHP가 위의 선언문을 실행하도록 하려면 mysql_query() 함수를 사용해야만 합니다.

이 함수는 쿼리나 명령어를 MySQL 연결로 전송할때 사용됩니다.

 

예제

아래 예제에서는 "my_db"라고 불리는 하나의 데이터베이스를 생성합니다.

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
mysql_close($con);
?>

 


 

테이블 생성하기

 

CREATE TABLE 선언문은 MySQL에서 테이블을 생성할때 사용됩니다.

 

문법

CREATE TABLE 테이블이름
(
컬럼_이름1 데이터형,
컬럼_이름2 데이터형,
컬럼_이름3 데이터형,
....

)

테이블을 생성하기 위해서는 mysql_query() 함수에 CREATE TABLE 선언문을 추가해야만 합니다.

 

예제

아래의 예제에서는 3개의 컬럼을 가진 "Persons"라는 이름의 테이블을 하나 만듭니다. 

컬럼의 이름은 각각 "FirstName", "LastName", "Age"입니다:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('연결 불가: ' . mysql_error());
}
// 데이터베이스 생성하기
if (mysql_query("CREATE DATABASE my_db",$con))
{
echo "데이터베이스 생성됨.";
}
else
{
echo "데이터베이스 생성오류: " . mysql_error();
}
// 테이블 생성
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
// 쿼리 실행
mysql_query($sql,$con);
mysql_close($con);
?>

중요: 테이블을 생성하려면 그전에 꼭 데이터베이스가 선택되어야만 합니다. 데이터베이스는 mysql_select_db() 함수로 선택할 수 있습니다.

 

참고: varchar형의 데이터베이스 필드를 생성할때, 그 필드의 최대 길이를 지정해야만 합니다.

예: varchar(15). 데이터형은 컬럼이 가질수 있는 데이터의 형태를 지정합니다.

 


 

주키(Primary Key, 프라이머리키)와 자동 증가(Auto Increment) 필드

 

각각의 테이블은 하나의 주키, 프라이머리키(Primary Key) 필드를 가져야만 합니다.

 

프라이머리키는 한 테이블에서 유일하게 행(row)을 구분하는데 사용됩니다.

각각의 프라이머리키 값은 그 테이블내에서 겹치는값 없이 유일해야, 하나여야 합니다.

뿐만아니라, 프라이머리키 필드는 널(null)이 될 수 없는데 그 이유는 데이터베이스 엔진이 레코드를 위치시키는데 값이 필요하기 때문입니다.

 

아래의 예제에서는 personID 필드를 프라이머리키 필드로 설정합니다.

프라이머리키 필드는 대개 숫자값을 가지며, 대부분의 경우 AUTO_INCREMENT 설정과 함께 사용됩니다.

AUTO_INCREMNT는 새로운 레코드가 추가될때마다 자동적으로 필드의 값을 1씩 증가시킵니다.

프라이머리키가 널(null)이 될 수 없음을 확실히 하기위해, 예제에서는 필드에 NOT NULL 설정을 추가합니다.

 

예제

$sql = "CREATE TABLE Persons 
(
personID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);
최종 수정일:
서지스윈

서지스윈

IT와 기술을 이해하고, 유용한 소프트웨어를 발견하도록 돕고 싶습니다. 윈도우(Windows), 맥(macOS), 리눅스(Linux), 스마트폰 앱, 웹 서비스, 기획 시리즈물까지. 더 많은 것을 발견하고, 더 많은 것을 해보세요.