웹마스터 팁

4. 쿼리문

2004.12.11 20:34

티다

아 몇달만입니까 -_-;; 다시 돌아왔습니다.
최근 모종의 작업에 빠져 있어서 PHP게시판은 쓸 엄두도 못냈네요.

그런 고로, 오늘은 쿼리문을 하도록 하겠습니다.(어째서?)

쿼리문이 뭐냐 하면...
mysql에 새로 만들거나(CREATE) 고치거나(UPDATE) 불러오거나(SELECT) 삽입하거나(INSERT) 삭제하는(DELETE) 이런 것이 바로 쿼리문이지요.

쉽게 말하자면 mysql_query 같은 주위에서 상당히 흔하게 볼수 있는(-_-) 것이지요

이 쿼리문을 사용하기 위해서는 몇가지 준비운동이 필요합니다.
mysql_connect로 DB에 연결을 하고 나서
2단계 준비운동 동작 mysql_select_db로 DB를 선택하는 겁니다.
<?
$connect=mysql_connect("호스트","아이디","비밀번호");
mysql_select_db("DB명");
?>
이렇게요...

create 쿼리문은 이런 식으로 사용한답니다.
mysql_query("create 테이블 (필드 타입)")

그러면 DB에 tidus라는 테이블을 하나 만들고, 그 속에 1, 2, 3이라는 필드, 그리고 각각 int(10) auto_increment not null, char(20) not null, text not null의 타입을 줘 봅시다.
그리고 no라는 고유의 값을 줍시다.
primary key는고유의 값을 뜻합니다.

mysql_query("create tidus (
                                       1 int(10) auto_increment not null,
                                       2 char(20) not null,
                                       3 text not null,
                                       primary key(no)");

자 그럼 여기서 제 강좌에 내용 때워먹으려고 항상 등장하는거 한번 넣어야죠.
'분석' 크크크...

int(10) auto_increment not null 부분을 한번 보죠.
int(10)은 10자리의 정수형 타입을 뜻합니다.
auto_increment는 별다른 값을 안줘도 자동으로 증가합니다. 1이었다면 2로, 5였다면 6으로...
not null은 비우지 말라는 겁니다. ''를 허용하지 않는단 거죠.

char(20) not null 부분을 한번 봅시다. char(20)은 1~20바이트를 저장할 수 있습니다.
varchar라는것이 있는데요, 이것은 char와 거의 흡사하지만 몇가지 다른 게 있습니다.
char는 1바이트를 저장하든 14바이트를 저장하든 20바이트를 저장하든 무조건 용량은 20바이트입니다.
varchar는 1바이트를 저장하면 1바이트를 차지하고, 20바이트를 저장하면 20바이트를 차지합니다.
그럼 varchar를 쓰는게 용량상 더 좋지......만!! char는 일정한 공간을 차지하고 있기 때문에 검색에 더 좋다고 합니다앗...(이건 주워들은말)

text not null 도 한번 봅시다.
text는 65535개의 문자를 저장할수 있습니다.
65535가 무슨 의미가 있냐..!!
요 숫자 많이 들어봤죠? 전 많이 들어봤는데 -_-;; 2의 16승입니다.
blob나 longtext를 이용해서 65535개 이상의 문자를 저장할 수도 있는데, 65535개 쓰는거 쉬운게 아니죠 -_-;;

primary key(no)는 뭘까요.
앞에서 설명했지만, primary key는 고유값을 뜻합니다.
물론 이거 없다고 동작 안하는건 아닙니다.
하지만 기본키(KEY)는 'no'라는걸 말합니다.

이제 UPDATE부분으로 갑시다. (흑흑 이제 5분의 2 ㅠㅠ)
UPDATE는 고치는걸 말합니다.
그러니까
mysql_query("UPDATE tidus SET 1=1 where 2=0");
하시면
2라는 값의 0의 1을 1로 변경한다는 겁니다.
mysql_query("UPDATE 테이블 SET 수정할거=수정할값 where 조건절");
식으로 쓰이죠.

SELECT는 DB내용을 불러옵니다.
가령
mysql_query("SELECT * from tidus");
를 하면 tidus테이블에 있는 모든 내용을 불러오라는겁니다.
mysql_query("SELECT 필요한값 from 테이블");
이죵.
자 다음으로 갑시다. (CREATE빼고 다 성의없냐 -_-^)

INSERT는 자료를 삽입하는 거죠.
mysql_query("INSERT INTO tidus (1, 2, 3) VALUES (1, 2, 3)";
정도로 대충 해놓읍시다.
tidus테이블안의 1,2,3이란 값에 1,2,3을 넣는다는 거죠.
만약 tidus (1, 2, 3)부분을 tidus (1, 3)으로 바꾸면
2부분의 값은 삽입하지 않습니다.
후후훗...
그리고 tidus (1, 2, 3)부분을 아예 없애버리면 모든 값을 순서대로 써야 됩니다.

DELETE는 자료를 삭제하는거죠.
mysql_query("DELETE from tidus where 1=2");
라고 하시면 tidus테이블의 1의 2라는 값을 지워버린다는 겁니다.
where이 없으면 어떻게 되는지 궁금하신가요?
어떻게 되긴요......................OTL이죠

자 기나긴 쿼리문 강좌가 끝났습니다.
CREATE빼고 다 성의없다고 생각중... OTL

어쨌든 12일 소요된 강좌입니다. 중간에 스타크래프트 하느라요.
제목 글쓴이 날짜
편리한 컴내꺼 포트개방 (com.ne.kr FTP Port Open) [1] phase 2003.08.16
Marquee 태그를 이용한 간단한 스크립트 [7] 뒹굴리스트 2003.08.06
나름대로 만들어본 가운데 팝업 스크립트 [3] phase 2003.07.31
HTML경고창 [수정#2] [14] [락위듀]아렌티 2003.07.26
초강력 울트라..매가톤 간단...랜덤이미지.. [6] 김한샘 2003.07.24
노프레임 홈페이지 수정 편리하게 &용량줄이기. [9] 세죠위그이 2003.07.15
한줄씩 올라가는 뉴스티거용 인데요....제로보드하구는 어케...쩝 [12] 하나비 2003.07.08
이미지 필터를 사용한 간단한 소스 [3] NzeoZen 2003.07.06
상태바에 2개의 메세지가 뜨는 태그 김주형 2003.07.03
마우스 오른쪽 버튼 누르면 원하는 메뉴 뜨게 만들기(다른사이트) [3] 김주형 2003.07.03
제로보드 사용시 아이프레임의 크기를 내용에 따라 바꿔주는 스크립트 [7] 쿨리안 2003.06.28
아이프레임으로 나타낸 문서를 크기에 맞게 자동으로 사이즈 조절 [3] DODGE 2003.06.28
웹에서그림그리기 [5] 카이저 2003.06.27
손쉬운 롤오버 이미지 자동생성 [15] 행복한고니 2003.06.16
[스크립트] 메뉴에 마우슬 데면 서브 메뉴가 나온다 [2] 처절초보 2003.06.16
[스크립트]오른쪽 버튼 누르면 메뉴나오기^^ [1] 처절초보 2003.06.16
Top, Back 함께사용하기 file sharim 2003.06.11
자바스크립트로 두개 이상의 페이지 동시에 열기. [4] 이성헌 2003.06.08
엔터키 걸러내고 코멘트 무조건 10자이상으로 하게하는 자바스크립트 소스 [9] 교행사랑 2003.06.06
오른쪽마우스 클릭금지,드래그금지,하단주소 숨기기 한꺼번에~ [8] 한길 2003.06.03