SQL

SELECT문 ( DUAL / ORDER BY / DISTINCT / WHERE )

peach_h 2022. 10. 4. 23:53

※ Oracle에서 제공하는 OT sampledata를 가지고 실습하였습니다.

 

SELECT 문

# SELECT 원하는 COLUMN FROM 원하는 TABLE;

SELECT 
        CUSTOMER_ID
        , NAME
        , ADDRESS
        , WEBSITE
        , CREDIT_LIMIT
    FROM CUSTOMERS;

 

 

테이블 전체 불러오기

# SELECT * FROM 원하는 테이블;

SELECT * FROM CUSTOMERS;

CUSTOMERS의 전체 테이블을 가져온다

 

 

 

더미테이블 dual
SELECT * FROM DUAL; 
--더미테이블 / 연산처리를 수행할 수 있음

dual은 oracle이 제공하는 더미테이블이다.

주로 연산 처리를 실행함.

 

SELECT (10+5)/2 AS VAL FROM DUAL;

 

 

 

 

ORDER BY

ORDER BY 를 이용해 데이터를 정렬할 수 있다.

ASC : 오름차순 ( 작은거부터 ) 

DESC : 내림차순

SELECT
    NAME
    ,ADDRESS
    ,CREDIT_LIMIT
    FROM CUSTOMERS
ORDER BY NAME ASC;

NAME을 오름차순으로 정렬했다.

 

SELECT
        FIRST_NAME
        ,LAST_NAME
        FROM CONTACTS
        ORDER BY FIRST_NAME, LAST_NAME DESC;

FIRST_NAME은 내림차순, LAST_NAME은 내림차순으로 정렬.

한번에 여러 순서로 정렬도 가능

아무것도 안쓰면 디폴트가 오름차순임

 

 

 

DISTINCT : 중복제거
SELECT
    FIRST_NAME
    FROM CONTACTS
    ORDER BY FIRST_NAME;

정렬 된 FIRST_NAME을 보면, 중복 된 값이 있는 걸 볼 수 있다.

 

SELECT
    DISTINCT FIRST_NAME
    FROM CONTACTS
    ORDER BY FIRST_NAME;

DISTINCT문을 쓰면 SELECT절에서 중복된 값이 제거되어 출력된다.

319줄에서 302줄로 감소한 것을 볼 수 있음.

 

SELECT
    DISTINCT PRODUCT_ID, QUANTITY
    FROM ORDER_ITEMS
    ORDER BY PRODUCT_ID;

PRODUCT_ID와 QUANTITY에서 중복된 값을 제거하고, PRODUCT_ID로 정렬

 

 

 

 

WHERE 절 : 조건주기
 SELECT
    PRODUCT_NAME, DESCRIPTION, LIST_PRICE, CATEGORY_ID
    FROM PRODUCTS
    WHERE PRODUCT_NAME = 'Kingston';

PRODUCTS 테이블에서, PRODUCT_NAME이 Kingston인 사람의

DESCRIPTION, LIST_PRICE, CATEGORY_ID를 가져와라

 

SELECT PRODUCT_NAME, LIST_PRICE, CATEGORY_ID
    FROM PRODUCTS
    WHERE LIST_PRICE > 500
        AND CATEGORY_ID = 4;

WHERE절에 AND를 사용하여 여러 조건을 걸기도 가능함.

PRODUCTS 테이블에서 LIST_PRICE가 500이상이고, CATEGORY_ID가 4인

PRODUCT_NAME, LIST_PRICE, CATEGORY_ID를 가져와라

 

 

SELECT PRODUCT_NAME, LIST_PRICE
    FROM PRODUCTS
    WHERE LIST_PRICE BETWEEN 650 AND 680
    ORDER BY LIST_PRICE;

LIST_PRICE가 650 ~ 680인것의 PRODUCT_NAME과 LIST_PRICE를

LIST_PRICE 내림차순으로 정렬하라

 

 

SELECT PRODUCT_NAME, CATEGORY_ID
    FROM PRODUCTS
    WHERE CATEGORY_ID IN (1,4)
    ORDER BY PRODUCT_NAME;

CATEGORY_ID가 1 이거나 4 인것만

CATEGORY_ID IN (1,4) 

=

CATEGORY_ID = 1 OR CATEGORY_ID = 4

 

 

SELECT PRODUCT_NAME, LIST_PRICE
    FROM PRODUCTS
    WHERE PRODUCT_NAME LIKE 'Asus%'
    ORDER BY LIST_PRICE;

LIKE : ~ 로 시작하는 것

'SQL' 카테고리의 다른 글

연습문제풀이  (0) 2022.10.05
서브 쿼리  (0) 2022.10.05
VIEW  (0) 2022.10.05
INSERT / UPDETE / DELETE  (1) 2022.10.05
데이터베이스 개론 정리  (0) 2022.10.02