ENUM
문자열 목록형, 최대 65535개, 저장된 문자열 목록 중에 오직 한가지만 얻을 수 있습니다.
SET
문자열 목록형, 최대 64개, 저장된 문자열 목록 중에 0, 1개 이상을 얻을 수 있습니다
헥헥헥;;;
이렇게 자료형은 많이 있습니다....그중에서 우리가 골라써 사용해야죠..
일반적으로 간단하게 세가지를 사용할수가 있는데.....
int와 varchar, 그리고 text입니다.
int는 정수형으로 최대크기는 11이고 int(11)이라고 하면 11자리 정수를 뜻하는거죠...
varchar는 문자형으로 최대 크기는 255입니다. varchar(255)라고 하면 255자를 뜻합니다.
text는 크기를 정해 주지 않고 그냥 text라고 하며 textarea에서 입력받은 값을 넣을때 사용하시면 됩니다.....
그런데 잠깐 char과 varchar의 차이를 짚고 넘어가면...
char(50)이라고 하면 무조건 50자가 들어갈 공간을 비워 놓지만....
varchar(50)이라고 하고 20자를 집어 넣으면 20자 공간만 차지 한답니다..
그래서 용량면에서 varchar를 사용하는게 좋긴 하지만.......
char이 더 속도와 안정성면에서는 좋다고 하더군요...@_@ 암튼알아서;;
자 그럼 저 위에 저렇게 많은 자료형 중에서 우린 딱 두개만 쓰겠습니다.
int와 varchar입니다.... 넣어볼까요?
CREATE TABLE exam_memo (
no int(11),
name varchar(10),
memo varchar(50),
date int(11),
ip varchar(15)
)
no를 int로 한것은 어짜피 번호는 정수형이니까요....;;;
name은 문자열로 10글자 까지만 했습니다.
그리고 memo도 50자만 받습니다.
그런데 date를 int로 했네요.......움;;;
저위에 자료형에 날짜형이 있죠;;;; 그런데 우린 PHP를 더 믿을렵니다;;
PHP에서 유닉스타임스탬프값을 기억하시나요?
time()으로 알아내는 값이죠;;; 그 값하나만 있으면 년월일시분초를 한거번에 알수 있습니다.......그래서 그냥 date에는 그 값을 정수형으로 집어 넣기로 한것 입니다.
ip는 문자열 15자 인데......000.000.000.000 이렇게 ip는 15자 라죠;;;
자 그다음은....primary key를 정해줘야 합니다.....
우리가 정한 primary key는 뭐였죠?......옙;;; no입니다....
그럼 아래와 같이....해줍니다..
CREATE TABLE exam_memo (
no int(11) primary key,
name varchar(10),
memo varchar(50),
date int(11),
ip varchar(15)
)
no를 primary key로 해줬죠?.......
CREATE TABLE exam_memo (
no int(11) DEFAULT '0' primary key,
name varchar(10),
memo varchar(50),
date int(11),
ip varchar(15)
)
이번엔 default값을 줬습니다. 기본값으로 0을 준거죠;;;
그리고 이렇게도 해볼까요?
CREATE TABLE exam_memo (
no int(11) DEFAULT '0' NOT NULL auto_increment
primary key,
name varchar(10),
memo varchar(50),
date int(11),
ip varchar(15)
)
no줄을 보면...default값으로 0을 주고 not null이라고 했습니다.
기본으로 0이란 값을 갖고 비어있는 값은 아니라는거죠...
그리고 auto_increment 라는것은 자동으로 증가 한다는 겁니다...
자 기본값이 0이었죠....그럼 최초에 데이터가 들어오면 no는 1이 됩니다... 왜냐면 기본이 0에다가 auto_increment이기 때문에 +1이 되는거죠....그다음에 또 데이터가 들어오면 2가 되겠죠?.......왜냐면;;; auto_increment이니까요......자동으로 +1이 계속 됩니다.....
그럼결국 값이 중복될 일은 없겠죠?......그래서 no는 primary key가 자동으로 성립됩니다.......
이해가 안가시면 ㅎ_ㅎ 눈 이렇게 뜨시고 계속 쳐다 보시구요;;;
이제 이 완성된 쿼리문을 DB에 넣어야죠;;;
실행을 하면 테이블이 생기는것이겠죠?..........
그래서 이 파일을 install.php로 하고....
아래 소스를 넣어 볼까요;;
<?
include"connect.php";
$query="
CREATE TABLE exam_memo (
no int(11) DEFAULT '0' NOT NULL auto_increment
primary key,
name varchar(10),
memo varchar(50),
date int(11),
ip varchar(15)
)";
저장하고 실행 하셔서 ok라고 화면에 표시되면 exam_memo라는 테이블이 만들어진 것이겠죠?
소스 설명을 드리면.......
지난시간에 connect.php를 만드셨을겁니다......
첫줄은 그 파일을 include하여 DB에 접속하는거죠....
그다음은 $query라는 변수에 앞서 만들어놓은 쿼리문을 넣어두고
mysql_query()라는 함수를 사용하여 mySQL에 보내줍니다...
그리고 $result에 그 결과를 저장하여......
if($result) 즉, 결과가 true이면 echo"ok"; 죠....
그래서 테이블이 성공적으로 만들어졌다면 화면에 ok를 출력합니다.