본문 바로가기
MySQL
2011.01.04 10:24

MySQL 쿼리 사용법

조회 수 14003 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

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


Title
List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
36 MySQL 한글 깨짐 현상 해결법 Hojung 2011.08.25 24186
35 HTML 색상코드표 Hojung 2010.10.22 17496
34 MySQL mysql 쿼리문 모음 Hojung 2011.01.04 15231
33 MySQL MySql쿼리 최적화 Hojung 2011.01.04 14402
» MySQL MySQL 쿼리 사용법 Hojung 2011.01.04 14003
31 PHP Special Characters in HTML Hojung 2011.07.13 13683
30 cURL을 이용해 로그인 후 파일 다운로드 하기 Hojung 2010.12.31 12432
29 간단한 리다이렉트 페이지 소스 Hojung 2010.10.22 12363
28 MySQL 쿼리 한번으로 데이터베이스 용량 알아내기 Hojung 2011.01.04 11492
27 MySQL MySQL Change User Password Hojung 2011.04.12 10151
26 PHP에서 리눅스 스크립트 실행 Hojung 2010.10.22 9342
25 How to prevent duplicate record insertion while refresh the php page? Hojung 2010.10.22 8629
24 MySQL 전체 멤버 중 블랙리스트 멤버를 빼고 출력하기 Hojung 2011.08.31 8515
23 Embedded Media HTML Generator Hojung 2010.10.22 8295
22 PHP Automatic Login Using Curl Hojung 2011.07.23 8043
21 PHP PHP XML 파서 Hojung 2012.02.02 7133
20 PHP PHP-MySQLi-Wrapper Hojung 2012.03.28 6940
19 MySQL Xpressengine 정회원 메일주소만 Hojung 2011.12.15 6472
18 MySQL 특정게시판의 메일리스트 정보 업데이트 Hojung 2011.12.15 6242
17 PHP Program execution Functions (exec, system, shell_exec) Hojung 2012.03.11 6204
Board Pagination ‹ Prev 1 2 Next ›
/ 2

Designed by sketchbooks.co.kr / sketchbook5 board skin

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5