게시물 1,375건
MySQL 쿼리 사용법
글쓴이 :
최고관리자
날짜 : 2009-12-01 (화) 10:51
조회 : 22732
글주소 :
MYSQL 기본 쿼리
쿼리(QUERY)란 주는 DB에 명령어이다. 대부분의 DB 시스템에서 사용방법이 비슷하다.
주의사항: 필드의 타입이 문자(CHAR, VARCHAR)인 경우는 값에 작은 따옴표(' ')를 붙여서 사용하고, 정수형(INT)인 경우는 그대로 사용한다.
여기서 설명하는 기본 쿼리는 뒤에서 php와 연동해서 사용하는 것이므로 중요하다.
DB의 생성 및 테이블의 생성도 쿼리로 수행할 수 있으나
초보 단계에서는 앞절의 phpMyAdmin을 이용하면 웹상에서 가능하다,
여기서는 앞에서 만든 DB와 테이블을 이용하여 설명하기로 한다.
no
id
name
passwd
email
1
a001
홍길동
123456
hong@kku.ac.kr
2
a002
성춘향
123456
sung@kku.ac.kr
3
a003
이몽룡
123456
mlee@kku.ac.kr
4
b001
이자겸
123456
jlee@kku.ac.kr
5
b002
홍경래
123456
khong@kku.ac.kr
SELECT 쿼리 : 자료 검색 쿼리
select * from 테이블명 where 검색조건 order by 순서조건
INSERT 쿼리 : 자료 입력 쿼리
insert into 테이블명 values ('값','값',...) ==> 모든 값을 다 입력할 때
insert into 테이블명 (필드명1,필드명2) values ('값1','값2') ==> 지정한 필드에만 값을 입력
UPDATE 쿼리 : 자료 수정 쿼리
update 테이블명 set 필드명='값', ..., 필드명='값' where 검색조건
DELETE 쿼리 : 자료(레코드) 삭제 쿼리
delete from 테이블명 where 검색조건
CREATE 쿼리 : 테이블 만들기 쿼리
create table 테이블명 { 필드이름 타입(길이) [NOT NULL] [default '디폴트값'] [auto_increment], 필드이름 ....................., [PRIMARY KEY (필드 이름) }
이밖에도 필드 추가 , 필드이름변경 등의 많은 쿼리가 있으나 고급수준의 쿼리이고,
대부분의 쿼리들은 phpMyAdmin을 이용하면 웹페이지에서 쉽게 할 수 있으므로 여기서는 자세한 설명을 생략한다.
14.2 INSERT 쿼리
새로운 레코드로 자료를 입력할 때 사용하는 쿼리이다.
모든 필드의 값을 모두 입력할 때
파란색 부분은 그대로 입력하며, 나머지 부분은 테이블명과 입력할 데이터이다.
필드의 타입이 정수(INT)인 경우는 그대로 값을 입력하고
문자(VARCHAR)인 경우는 작은따옴표로 묶어서 입력한다.
암호의 경우는 encrypt('123456')과 같이 입력한다.
insert into member_test values (6,'c001','이순신','123456' ,'slee@kku.ac.kr') ==> 암호를 그대로 입력
insert into member_test values (6,'c001','이순신',encrypt('123456') ,'slee@kku.ac.kr') ==> 암호를 암호화
특정한 필드의 값만 입력할 때
값을 입력하고자 하는 필드명을 괄호 () 로 묶어 나열하고, values 뒤에 값을 입력한다.
이 때, auto_increment로 지정된 변수의 값을 자동적으로 입력된다.
NULL이 아니오로 지정된 변수의 값은 반드시 입력해야 한다.
insert into member_test (id,name,passwd) values ('c001','이순신','123456')
14.3 SELECT 쿼리
데이터베이스를 사용하는 가장 중요한 이유가 바로 SELECT 쿼리의 사용에 있다고 해도 과언이 아니다.
순서에 관계없이 입력되어 있는 데이터로부터 필요한 데이터를 찾아내는 쿼리이다.
기본 사용방법은 다음과 같다.
모든 레코드를 검색하고 지정한 필드명 순서대로 정렬할 때
select * from 테이블명 order by 필드명
select * from 테이블명 order by 필드명 DESC ==> 내림차순
select * from 테이블명 where 필드명 = '값'
select * from 테이블명 where 필드명1 = '값1' and 필드명2='값2'
select * from 테이블명 where 필드명1 = '값1' or 필드명2='값2'
지정한 필드만 보고 싶을 때
위의 * 대신에 필드명을 지정하면 지정된 필드의 내용만 보여준다.
select 필드명 from 테이블명 LIMIT 시작,개수
위에서 설명한 바와 같이 검색조건을 정확하게 지정해주는 것이 SELECT 쿼리를 얼마나 잘 사용하는가가 결정된다.
where문에서의 검색조건은 UPDATE 쿼리나 DELETE 쿼리에서도 사용되므로 따로 설명하기로 한다.
14.4 검색조건 (WHERE 문)과 순서조건
검색조건은 WHERE 다음에 검색하고자 하는 레코드들의 조건을 말한다.
비교연산자 : = (같다) ,> (크다), < (작다) , like
논리연산자 : and , or
와일드 카드 (% ) : 와일드카드란 모든 문자열을 뜻하는 것으로 여기서는 퍼센트(%)를 사용한다.
서식
설명
where id = 'aaa;
id가 aaa인 레코드 검색
where id like 'aaa% ';
id가 aaa로 시작되는 모든 자료 검색
where id like '%aaa%' ;
id에 aaa를 포함하는 모든 자료 검색
where score > 50 and score < 80
score의 값이 50보다 크고, 80보다 작은 자료 검색
order by : 검색 순서
검색되는 레코드들의 정렬 순서를 지정한다.
순서는 기본적으로는 오름차순이고, 내림차순으로 정렬하고자 할 때는 필드이름 뒤에 DESC 를 붙여준다.
정렬하고자 하는 변수의 중복 사용이 가능하다.
예를 들어 id, 이름 순으로 정렬하고자 할 때 다음과 같이 한다.
select * from table where city = '충주' order by id ;
select * from table where city = '충주' order by id, name ;
select * from table where city = '충주' order by id, name, score desc ;
14.5 UPDATE 쿼리
UPDATE 쿼리는 이미 저장되어 있는 레코드의 일부 필드의 내용을 변경할 때 사용한다.
기본적인 사용 서식은 다음과 같다.
update 테이블명 set 필드명='값', ..., 필드명='값' where 검색조건
검색조건을 지정하지 않으면 모든 레코드의 내용이 변경되므로 주의하여야 한다.
작은 따옴표는 문자열의 경우에만 사용하고, 정수형 필드인 경우 생략한다.
14.6 DELETE 쿼리
레코드를 삭제할 때 사용한다.
delete from 테이블명 where 검색조건
역시 검색조건을 만족하는 모든 레코드를 삭제하므로 주의해야 한다.
14.7 CREATE 쿼리
새로운 테이블을 만들 때 사용하는 쿼리이다.
create table로 시작하며 원하는 테이블이름을 지정하고 중괄호를 연다..
필드이름 타입(길이)를 반드시 지정하고 아래에서 대괄호는 필요시 삽입할 수 있다.
한 필드의 정의가 끝나면 콤마로 다음 필드를 정의한다.
마지막 필드를 정의하고 괄호를 닫을 때는 콤마를 생략한다.
마지막의 PRIMARY KEY는 주키이다.
create table 테이블명 { 필드이름 타입(길이) [NOT NULL] [default '디폴트값'] [auto_increment], 필드이름 ....................., [PRIMARY KEY (필드 이름) }
CREATE의 예제 1
no를 주키, 자동증가로 지정한다.
나머지 모든 필드는 가변문자열(varchar)로 정의한다.
CREATE TABLE member_test ( no int(5) NOT NULL auto_increment , id varchar(20) NOT NULL default '', name varchar(20) NOT NULL default '', passwd varchar(20) NOT NULL default '', email varchar(50) NOT NULL default '', PRIMARY KEY (no) )
CREATE의 예제 2
no를 주키, 자동저장으로 정의하고
intro는 자기 소개부분으로 타입을 text로 지정하였다. 자기 소개와 같이 많은 양의 문자열을 입력할 때 사용한다.
CREATE TABLE memberlist ( no int(5) NOT NULL auto_increment, userid varchar(15) NOT NULL default '', password varchar(20) NOT NULL default '', name varchar(20) NOT NULL default '', email varchar(50) NOT NULL default '', dept varchar(20) default NULL, home_address varchar(100) default NULL, home_tel varchar(50) default NULL, handphone varchar(50) default NULL, intro text , cdate varchar(50) default NULL, visit int(5) default '0', PRIMARY KEY (no) )