PHP MySQL 데이터베이스 생성

데이터베이스는 하나 이상의 테이블을 포함합니다.

데이터베이스 생성

CREATE DATABASE 문은 MySQL에서 데이터베이스를 생성하는 데 사용됩니다.

문법

CREATE DATABASE database_name

위의 문장을 PHP가 실행하려면 mysql_query() 함수를 사용해야 합니다. 이 함수는 MySQL 연결에 쿼리나 명령어를 보내는 데 사용됩니다.

예제

아래의 예제에서는 "my_db"라는 데이터베이스를 생성했습니다:

<?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_close($con);
?>

테이블 생성

CREATE TABLE은 MySQL에서 데이터베이스 테이블을 생성하는 데 사용됩니다.

문법

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
.......
)

이 명령어를 실행하려면 mysql_query() 함수에 CREATE TABLE 문을 추가해야 합니다.

예제

아래의 예제는 "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();
  }
// my_db 데이터베이스에서 테이블 생성
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).

MySQL 데이터 타입

사용할 수 있는 다양한 MySQL 데이터 타입:

数值 타입 설명
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
정수만 지원합니다. size 매개변수에서 숫자의 최대 값을 지정합니다。
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

소수점을 포함한 숫자를 지원합니다。

size 매개변수에서 숫자의 최대 값을 지정합니다. d 매개변수에서 소수점 오른쪽의 숫자의 최대 값을 지정합니다。

텍스트 데이터 타입 설명
char(size)

고정 길이의 문자열을 지원합니다. (알파벳, 숫자 및 특수 기호를 포함할 수 있습니다).

size 매개변수에서 고정 길이를 지정합니다。

varchar(size)

가변 길이의 문자열을 지원합니다. (알파벳, 숫자 및 특수 기호를 포함할 수 있습니다).

size 매개변수에서 최대 길이를 지정합니다。

tinytext 가변 길이의 문자열을 지원합니다. 최대 길이는 255 문자입니다。
  • text
  • blob
가변 길이의 문자열을 지원합니다. 최대 길이는 65535 문자입니다。
  • mediumtext
  • mediumblob
가변 길이의 문자열을 지원합니다. 최대 길이는 16777215 문자입니다。
  • longtext
  • longblob
가변 길이의 문자열을 지원합니다. 최대 길이는 4294967295 문자입니다。
날짜 데이터 타입 설명
  • 날짜(yyyy-mm-dd)
  • 날짜와 시간(yyyy-mm-dd hh:mm:ss)
  • 타임스탬프(yyyymmddhhmmss)
  • 시간(hh:mm:ss)
날짜 또는 시간을 지원합니다
기타 데이터 유형 설명
enum(value1,value2,ect) ENUM은 ENUMERATED 목록의 약자입니다. 괄호 안에 최대 65535개의 값을 넣을 수 있습니다.
set SET과 ENUM은 유사하지만, SET은 최대 64개의 목록 항목을 가질 수 있으며, 여러 선택을 저장할 수 있습니다.

주키와 자동 증가 필드

모든 테이블은 주키 필드를 가져야 합니다.

주키는 테이블의 행을 고유하게 식별하는 데 사용됩니다. 테이블에서 주키 값은 유일해야 합니다. 또한, 주키 필드는 비어 있을 수 없습니다. 이는 데이터베이스 엔진이 기록을 위치하기 위해 값을 필요로 하기 때문입니다.

주키 필드는 항상 인덱스에 포함되어야 합니다. 이 규칙에는 예외가 없습니다. 주키 필드에 인덱스를 설정해야 합니다. 이렇게 하면 데이터베이스 엔진이 주키 값에 따라 행을 빠르게 위치할 수 있습니다.

아래의 예제는 personID 필드를 주키 필드로 설정합니다. 주키 필드는 일반적으로 ID 번호로 사용되며, AUTO_INCREMENT 설정이 일반적입니다. AUTO_INCREMENT는 새 레코드가 추가될 때마다 필드 값이 순차적으로 증가합니다. 주키 필드가 비어 있지 않도록 보장하기 위해 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);