[PHP DB] MySQL, DB와 테이블 생성하기
[+] 한 데이터베이스는 하나, 혹은 그 이상되는 여러개의 테이블을 가지고 있습니다.
참고: 필드, 쿼리, 레코드같은 용어를 모르실 경우에는 이전 PHP 강좌를 보시면 됩니다^^
데이터베이스 생성하기
CREATE DATABASE 선언문은 MySQL에 데이터베이스를 생성할때 사용됩니다.
문법
CREATE DATABASE 데이터베이스_이름 |
일단 저렇게 선언문을 만들어둔뒤, PHP가 위의 선언문을 실행하도록 하려면 mysql_query() 함수를 사용해야만 합니다.
이 함수는 쿼리나 명령어를 MySQL 연결로 전송할때 사용됩니다.
예제
아래 예제에서는 "my_db"라고 불리는 하나의 데이터베이스를 생성합니다.
<?php if (mysql_query("CREATE DATABASE my_db",$con)) mysql_close($con); |
테이블 생성하기
CREATE TABLE 선언문은 MySQL에서 테이블을 생성할때 사용됩니다.
문법
CREATE TABLE 테이블이름 |
테이블을 생성하기 위해서는 mysql_query() 함수에 CREATE TABLE 선언문을 추가해야만 합니다.
예제
아래의 예제에서는 3개의 컬럼을 가진 "Persons"라는 이름의 테이블을 하나 만듭니다.
컬럼의 이름은 각각 "FirstName", "LastName", "Age"입니다:
<?php // 데이터베이스 생성하기 // 테이블 생성 // 쿼리 실행 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 mysql_query($sql,$con); |