[표준 SQL] Standard SQL SELECT 문법

2017.11.22 17:35

졸리운_곰 조회 수:2313

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 86043
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 78568
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95299
18 TensorFlow Lite 101 - MoblieNet 맛보기 file 졸리운_곰 2018.05.30 1089
17 Apache MXNet에서 사전 트레이닝된 모델을 사용해 보세요. 졸리운_곰 2018.05.30 988
16 MXNet을 활용한 이미지 분류 앱 개발하기 file 졸리운_곰 2018.05.30 1424
15 세상에 있는 (거의) 모든 머신러닝 문제 공략법 file 졸리운_곰 2018.05.30 1119
14 sklearn 내부의 pickle lib 를 통해 모델을 저장하고 다시 로드하여 재사용할 수 있다. 졸리운_곰 2018.05.30 1636
13 텐서플로우 기반 딥러닝 훈련 모델 파일 저장, 로딩 및 재활용 file 졸리운_곰 2018.05.30 1765
12 TensorFlow 모델을 저장하고 불러오기 (save and restore) 졸리운_곰 2018.05.30 1637
11 텐서플로우(TensorFlow)를 이용해서 글자 생성(Text Generation) 해보기 – Recurrent Neural Networks(RNNs) 예제 – Char-RNN file 졸리운_곰 2018.05.13 1119
10 외장형 그래픽카드로 우분투에서 텐서플로우 사용 How to setup an eGPU on Ubuntu for TensorFlow file 졸리운_곰 2018.05.09 1426
9 Keras and NLTK 케라스를 이용한 NLTK 자연어처리 졸리운_곰 2018.05.08 1600
8 Windows7에서 "처음 심층 학습 프로그램」을 사경 보면 (1-2) 제 1 장 후반 file 졸리운_곰 2018.05.08 1138
7 CSLAIER CSLAIER에 의한 LSTM file 졸리운_곰 2018.05.08 1661
6 Tensorboard 사용하기 1 file 졸리운_곰 2018.05.08 1410
5 텐서보드 사용법 file 졸리운_곰 2018.05.08 1407
4 Ubuntu 18.04 Settings for TensorFlow 설치 file 졸리운_곰 2018.05.08 1181
3 딥러닝용 서버 설치기 file 졸리운_곰 2018.05.07 1390
2 Installing Tensorflow GPU on Ubuntu 18.04 LTS file 졸리운_곰 2018.05.06 1215
1 TensorFlow Lite 101 - MoblieNet 맛보기 file 졸리운_곰 2018.04.07 1272
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED