게시물 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 (필드 이름)
  • DROP 쿼리 : 테이블 삭제하기 쿼리
     drop 테이블명;
  • 이밖에도 필드 추가, 필드이름변경 등의 많은 쿼리가 있으나 고급수준의 쿼리이고,
  • 대부분의 쿼리들은 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 테이블명
       
    • 모든 레코드를 검색하고 지정한 필드명 순서대로 정렬할 때
       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 테이블명
       
    • 몇 개만 보고 싶을 때
      • 시작은 0부터
       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)
         )

 


이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 
사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.