회원가입아이디/비번찾기
홈으로

mySQL테이블 만들기
13년 전
자 그럼 테이블을 만들어 보죠...

대부분의 datebase들은 SQL이란 명령어를 써서 작업을 하게 되는데 기본적인 명령어들은 모두 같습니다....

테이블을 만드는 명령어는 create table이라죠....형식은...아래와 같습니다.

CREATE TABLE 테이블이름 (
이름 자료형(크기)
이름 자료형(크기)
.......
)

우리가 만들려고 했던 메모장에 들어가는 항목은....
번호//이름//내용//작성시간//IP 였죠....위 쿼리에 대입해 볼까요?
테이블 이름은 exam_memo이고 각 항목은 영어로....
no//name//memo//date//ip 로 하겠습니다....

CREATE TABLE exam_memo (
no 자료형(크기),
name 자료형(크기),
memo 자료형(크기),
date 자료형(크기),
ip 자료형(크기)
)

위와 같이 각 항목은 ,(쉼표)로 구분해주시면 되고요....
엇....근데 자료형과 크기..는 대체 뭘까요...@_@;;;

간단하게 말하면.....입력할 값이 숫자냐....문자냐.... 뭐 이런겁니다..
크기는 몇자리 숫자냐......문자로 몇글자냐...이런거겠죠....
아래 정리된 내용을 참고 하세요~~~


TINYINT
정수형(-128~127) [UNSIGNED]-정수형(0~255)

SMALLINT
정수형(-32768~32767) [UNSIGNED]-정수형(0~65535)

MEDIUMINT
정수형(-8388606~8388607) [UNSIGNED]-정수형(0~16777215)

INT
정수형(-2147483648~2147483647) [UNSIGNED]-정수형(0~4294967295)

INTEGER
INT와 동일

BIGINT
정수형(-9223372036854775808~9223372036854775807) [UNSIGNED]-정수형(0~18446744073709551615)

FLOAT(정밀도)
부동소수점실수

FLOAT(L, F)
단정도 부동소수점 실수 (-3.402823466E+38 ~ 1.175494351E-38, 0,1.175494351E-38 ~ 3.402823466E+38)

DOUBLE
배정도 부동소수점 실수 (-1.7976931348623157E+308 ~ -2.2250738585072014E-308,0,2.2250738585072014E-308 ~ 1.7976931348623157E+308)

DECIMAL 부동 소수점 실수 CHAR 형태로 동작

NUMERIC ECIMAL과 동일

DATE 날짜형(1000-01-01 ~ 9999-12-31)

DATETIME 날짜와 시간형(1000-01-01 00:00:00 ~ 9999-12-31 23:59:59)

TIMESTAMP 타임스템프형(1970-01-01 ~ 2037년 임의 시간)

TIME
시간형(-838:59:59 ~ 838:59:59)

YEAR
년도형(1901 ~ 2155, 0000)

CHAR
고정폭 문자열

VARCHAR
가변폭 문자열

TINYBLOB / TINYTEXT
BOLB, TEXT형, 최대길이 255문자

BLOB / TEXT
BOLB, TEXT형, 최대길이 65535문자

MEDIUMBLOB / MEDIUMTEXT
BOLB, TEXT형, 최대길이 16777215문자

LONGBLOB / LONGTEXT
BOLB, TEXT형, 최대길이 4294967295문자

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)
)";

$result=mysql_query($query,$connect);
if($result){echo"ok";}
?>

저장하고 실행 하셔서 ok라고 화면에 표시되면 exam_memo라는 테이블이 만들어진 것이겠죠?

소스 설명을 드리면.......
지난시간에 connect.php를 만드셨을겁니다......
첫줄은 그 파일을 include하여 DB에 접속하는거죠....

그다음은 $query라는 변수에 앞서 만들어놓은 쿼리문을 넣어두고
mysql_query()라는 함수를 사용하여 mySQL에 보내줍니다...
그리고 $result에 그 결과를 저장하여......
if($result) 즉, 결과가 true이면 echo"ok"; 죠....
그래서 테이블이 성공적으로 만들어졌다면 화면에 ok를 출력합니다.

@_@;;;; 여기까지 테이블 만들기였습니다....
추천추천 : 349 추천 목록
번호 제목
2,885
input 입력 필드 앞뒤 공백 실시간 제거
2,884
Placeholder 포커스시 감추기
2,883
MySQL 중복된 데이터를 삭제
2,882
MySQL 중복 데이터 확인
2,881
sessionStorage.getItem 와 sessionStorage.setItem
2,880
제이쿼리 랜덤으로 배경색 변경
2,879
preg match에 관한 정규식
2,878
Stream an audio file with MediaPlayer 오디오 파일 스트리밍 하기
2,877
Audio Streaming PHP Code
2,876
PHP $ SERVER 환경 변수 정리
2,875
Vimeo (비메오) API 를 사용하여 플레이어 컨트롤하기
2,874
iframe 사용시 하단에 발생하는 공백 제거방법
2,873
아이프레임(iframe) 전체화면 가능하게 하기
2,872
부트스트랩(bootstrapk)에서 사용하는 class명 정리
2,871
부트스트랩 CSS
2,870
크롬에서 마진 조절
2,869
PHP 현재 페이지의 도메인명이나 url등의 정보 알아오기
2,868
PHP preg match all()
2,867
PHP 로 웹페이지 긁어오기 모든 방법 총정리!
2,866
[PHP] 원격지 파일 주소 노출 안하고 curl로 다운로드 받기
2,865
PHP 함수 정리
2,864
아이프레임(iframe) 비율 유지하면서 크기 조절하는 방법
2,863
PHP 배열에서 무작위로 하나 뽑아주는 array rand() 함수
2,862
PHP 정규식 정리
2,861
PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
2,860
php 크롤링 또는 파싱 함수, 정규식 모음
2,859
제이쿼리 기본 명령어
2,858
웹페이지 가로 모드세로 모드 인식하기
2,857
모바일 웹 화면 강제 회전(가로모드 고정)
2,856
[HTML5]에서 frameset 대체 방법과 iframe 속성
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright ⓒ musictrot All rights reserved.