[표준 SQL] Standard SQL SELECT 문법

2017.11.22 17:35

졸리운_곰 조회 수:118

SELECT문은 데이터베이스로부터 저장되어 있는 데이터를 검색하는데 사용 한다.

SELECT 문법

INSERT

  • - DISTINCT : 중복되는 행을 제거하는 옵션.
  • - * : 테이블의 모든 column을 출력.
  • - alias : 해당 column에 대해서 다른 이름을 부여할 때 사용.
  • - table_name : 질의 대상 테이블 명
  • - WHERE : 조건을 만족하는 행들 만 검색
  • - condition : column, 표현식, 상수 및 비교 연산자
  • - ORDER BY : 질의 결과 정렬을 위한 옵션(ASC:오름차순(Default),DESC내림차순)

 

SQL문의 작성 방법
  • - SQL 문장은 대소문자를 구별하지 않는다.
  • - SQL 문장은 한 줄 또는 여러 줄에 입력될 수 있다.
  • - 일반적으로 키워드는 대문자로 입력한다. 다른 모든 단어, 즉 테이블 이름, 열 이름은 소문자로 입력한다.(권장)
  • - 가장 최근의 명령어 한 개가 SQL buffer에 저장 된다.
  • - SQL문 마지막 절의 끝에 ";"를 기술하여 명령의 끝을 표시 한다.
 
-- empno와 ename 은 각각 사번과 성명이라는 컬럼 별칭(alias)으로 만들어 출력
-- alias를 사용할 때 as라는 키워드를 사용해도 되고, 생략 할 수도 있다.
SQL> SELECT empno 사번, ename 성명
      FROM   emp
     WHERE  deptno = 10

      사번      성명
---------- ---------------
 7782      CLARK
 7839      KING
 7934      MILLER
    

 

WHERE절에 사용될 수 있는 SELECT 연산자
연산자 설 명
BETWEEN a AND b a와 b사이의 데이터를 출력.(a, b값 포함)
IN (list) list의 값 중 어느 하나와 일치하는 데이터를 출력
LIKE 문자 형태로 일치하는 데이터를 출력(%, _사용)
IS NULL NULL값을 가진 데이터를 출력 합니다.
NOT BETWEEN a AND b a와 b사이에 있지않은 데이터를 출력(a, b값 포함하지 않음)
NOT IN (list) list의 값과 일치하지 않는 데이터를 출력
NOT LIKE 문자 형태와 일치하지 않는 데이터를 출력
IS NOT NULL NULL값을 갖지 않는 데이터를 출력

 

IN, NOT IN 연산자

 

IN 연산자
  
-- 사번이 7900, 7934번인 사원의 사번과 성명 출력
SQL> SELECT empno, ename
     FROM  emp
     WHERE empno IN (7900, 7934) ;

    EMPNO    ENAME
 --------- -------------
    7934      MILLER
    7900      JAMES
    

 

NOT IN 연산자
  
-- 사번이 7900, 7934번이 아닌 사원의 사번과 성명 출력
SQL> SELECT empno, ename
     FROM  emp
     WHERE  empno NOT IN (7900, 7934);

  EMPNO   ENAME
-------- --------------
  7369    SMITH
  7499    ALLEN
  7698    BLAKE
  .... 
    

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

BETWEEN 연산자

AND를 이용해 두 조건을 결합한 검색과 같은 결과값을 보여 준다.

-- 급여가 3000에서 5000사이인 사원만 조회      
SQL> SELECT empno, ename
     FROM  emp
     WHERE  sal BETWEEN  3000 AND 5000;

  EMPNO ENAME
------- ------
   7788 SCOTT
   7839 KING
   7902 FORD  
    

 

LIKE 연산자

  • - 검색 STRING 값에 대한 와일드 카드 검색을 위해서 LIKE 연산자를 사용.
  • - % : 여러 개의 문자열을 나타내는 와일드 카드
  • - _ : 단 하나의 문자를 나타내는 와일드 카드
  • - ESCAPE : 와일드 카드 문자를 일반문자 처럼 사용하고 싶은 경우에 사용.
  •   ex) WHERE name LIKE '%a\_y%' ESCAPE '\'
  • - LIKE 연산자는 대소문자를 구분 한다.
  • - UPPER() 함수를 이용해 대소문자 구분없이 출력 할 수 있다.(인덱스 성능문제 발생, 함수기반 인덱스 사용..)
구 분 설 명
LIKE 'A%' 'A'로 시작하는 데이터만 검색
LIKE '%A' 'A'로 끝나는 테이터들만 검색
LIKE '%KIM%' 'KIM' 문자가 있는 데이터 들만 검색
LIKE '%K%I%' 'K' 문자와 'I'문자가 있는 데이터 들만 검색
LIKE '_A%' 'A'문자가 두 번째 위치한 데이터 들만 검색

 

LIKE 연산자 예제
-- 'K' 문자가 들어있는 사원 정보 조회
-- UPPER() 함수는 k를 대문자로 변환하여 'K'로 인식    
SQL> SELECT empno, ename
     FROM  emp
     WHERE  UPPER(ename) LIKE '%K%';

EMPNO   ENAME
------- -----------
 7698   BLAKE
 7782   CLARK
 7839   KING

-- '_'를 이용한 LIKE검색
SQL> SELECT empno, ename
     FROM  emp
     WHERE UPPER(ename) LIKE '_I%'

  EMPNO ENAME
------- ----------
   7839 KING
   7934 MILLER
    

 

ORDER BY

ORDER BY 절은 데이터의 정렬을 위해 사용합니다.(ASC[오름차순], DESC[내림차순])

-- 아래 두 개의 쿼리는 동일한 결과를 반환 한다.
-- 이름을 ASC로 정렬     
SQL> SELECT empno, ename
     ROM  emp
     WHERE  deptno = 30
     ORDER BY ename ASC;

-- 두 번째 컬럼을 디폴트(ASC) 순으로 정렬
SQL> SELECT empno, ename
     FROM  emp
     WHERE  deptno = 30
     ORDER BY 2
         
   EMPNO ENAME
-------- ---------
    7499 ALLEN
    7698 BLAKE
    7900 JAMES
... 
    

[출처] http://www.gurubee.net/lecture/1017

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 25085
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 24564
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 25943
» SELECT 문법 file 졸리운_곰 2017.11.22 118
384 R 자료들 file 졸리운_곰 2017.11.22 112
383 gmail 수신 메일로 워드클라우드 생성 : Creating a gmail wordcloud 졸리운_곰 2017.11.20 123
382 [빅데이터자격증] 제3회 데이터분석 준전문가(ADsP) 시험 후기 기출문제 정리 file 졸리운_곰 2017.11.19 635
381 [시험후기] 제 11회 ADsP 시험 후기 & 기출문제 복원 file 졸리운_곰 2017.11.19 701
380 데이터 분석의 3단계 프로세스 졸리운_곰 2017.11.08 117
379 [ADsP] 제12회 데이터분석준전문가 시험 복원 file 졸리운_곰 2017.11.05 3605
378 Apply 함수 (데이터 조작) 졸리운_곰 2017.11.02 101
377 R apply 계열 함수 총 정리 1 ( apply / lapply / sapply / vapply ) file 졸리운_곰 2017.11.02 208
376 몽고DB 사용자 계정 관리 졸리운_곰 2017.10.30 144
375 [mongodb] 사용자 계정 관리 졸리운_곰 2017.10.30 100
374 R 실습 학습 2017-10-28 레슨4: 데이터 시각화 졸리운_곰 2017.10.28 177
373 R 실습 학습 2017-10-28 레슨3 : 데이터 전처리 졸리운_곰 2017.10.28 125
372 R 실습 학습 2017-10-26 레슨2 : 데이터 입출력 및 기초통계 졸리운_곰 2017.10.27 176
371 R 실습 학습 2017-10-26 레슨1 졸리운_곰 2017.10.26 98
370 MongoDB (RDB와 비교, 특징과 장단점, 메모리성능 이슈, 주요용어) file 졸리운_곰 2017.10.24 191
369 RDB SQL을 Key-value no sql로 변경하는 방법 SQL in CockroachDB: Mapping Table Data to Key-Value Storage 졸리운_곰 2017.10.24 108
368 R의 데이터 타입 졸리운_곰 2017.10.10 137
367 데이터 크롤링과 데이터세트 확보 file 졸리운_곰 2017.10.01 443
366 블록체인 기반 플랫폼 비즈니스를 이해하자 졸리운_곰 2017.09.10 96
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED