728x90
◎ SQL_SELECT
# CUSTOMERS 테이블에서 3개의 변수 뽑아내기
SELECT
CUSTOMER_ID
, NAME
, CREDIT_LIMIT
FROM CUSTOMERS
;
# CUSTOMERS 테이블에서 전체 내용 보기
SELECT
*
FROM CUSTOMERS
;
# DUMMP TABLE 생성
SELECT
(10 + 5) / 2 AS VAL
FROM DUAL
;
◎ SQL_ORDER BY
# ORDER BY문은 정렬 구문으로 기본값은 ASC (생략 가능)
# ASC : 오름차순, DESC : 내림차순
SELECT
NAME
, ADDRESS
, CREDIT_LIMIT
FROM CUSTOMERS
ORDER BY NAME DESC # NAME변수를 내림차순 정리
;
# 두개의 변수가 ORDER BY일때
SELECT
FIRST_NAME
, LAST_NAME
FROM CONTACTS
ORDER BY FIRST_NAME, LAST_NAME DESC # FIRST는 오름차순, LAST는 내림차순 정리
;
C
◎ SQL_DISTINCT
# DISTINCT문은 중복값 제거를 해준다.
SELECT
DISTINCT PRODUCT_ID # PRODUCT_ID, QUANTITY 두개의 변수에 존재하는 중복값 제거
, QUANTITY
FROM ORDER_ITEMS
ORDER BY PRODUCT_ID
;
◎ SQL_WHERE
# WHERE은 원하는 값을 추출하기 위해 사용
SELECT
PRODUCT_NAME
, DESCRIPTION
, LIST_PRICE
, CATEGORY_ID
FROM PRODUCTS
WHERE PRODUCT_NAME = 'Kingston' # Kingston인것 추출
;
SELECT
PRODUCT_NAME
, LIST_PRICE
, CATEGORY_ID
FROM PRODUCTS
WHERE LIST_PRICE > 500
AND CATEGORY_ID = 4;
SELECT
PRODUCT_NAME
, CATEGORY_ID
FROM PRODUCTS
WHERE CATEGORY_ID IN (1, 4) # 1 또는 4 포함 추출
ORDER BY PRODUCT_NAME
;
SELECT
PRODUCT_NAME
, LIST_PRICE
FROM PRODUCTS
WHERE PRODUCT_NAME LIKE 'Asus%' # Asus로 시작하는 값 모두 추출
ORDER BY LIST_PRICE
;
◎ SQL_INSERT
# 1. 테이블 생성
CREATE TABLE DISCOUNTS
(
DISCOUNT_ID NUMBER GENERATED BY DEFAULT AS IDENTITY # 변수명과 조건들을 설정한 것을 확인할 수 있다.
, DISCOUNT_NAME VARCHAR2(255) NOT NULL
, AMOUNT NUMBER(3, 1) NOT NULL
, START_DATE DATE NOT NULL
, EXPIRED_DATE DATE NOT NULL
);
# 2. 데이터 삽입(INSERT)
INSERT INTO
DISCOUNTS (
DISCOUNT_NAME
, AMOUNT
, START_DATE
, EXPIRED_DATE
)
VALUES ( 'Summer Promotion'
, 9.5
, DATE '2017-05-01'
, DATE '2017-08-31'
);
COMMIT;
◎ SQL_UPDATE
# UPDATE는 테이블 값 수정이라고 생각하면 된다.
# PART_ID가 1인 값에 대해 COST를 130으로 UPDATE
UPDATE PARTS
SET COST = 130
WHERE PART_ID = 1
;
COMMIT;
# SET으로 조건을 지정하지 않았기에 전체 행에 대한 업데이트
UPDATE PARTS
SET COST = COST * 1.05
;
COMMIT;
◎ SQL_DELETE
# 원하는 ROW를 삭제하고 싶을때 DELETE문 사용
# ORDER_ID가 1인 값을 가지는 ROW 삭제
DELETE
FROM SALES
WHERE ORDER_ID = 1
;
COMMIT;
# 전체 ROW 삭제
DELETE
FROM SALES
;
COMMIT;
◎ SQL_서브쿼리
# 서브 쿼리
SELECT
PRODUCT_ID
, PRODUCT_NAME
, LIST_PRICE
FROM PRODUCTS
WHERE LIST_PRICE = (
SELECT # WHERE절 안에 있는 SELECT문으로 서브쿼리라 한다.
MAX(LIST_PRICE) # 서브 쿼리를 이용하여 단 한 개의 SQL문으로 출력 완료
FROM PRODUCTS
);
# 스칼라 서브 쿼리 (SELECT절 안에 있는 서브 쿼리)
SELECT
A.PRODUCT_NAME
, A.LIST_PRICE
, ROUND( (SELECT AVG(K.LIST_PRICE)
FROM PRODUCTS K
WHERE K.CATEGORY_ID = A.CATEGORY_ID
), 2
) AVG_LIST_PRICE
FROM PRODUCTS A
ORDER BY A.PRODUCT_NAME
# 인라인 뷰 서브 쿼리 (FROM절 안에 있는 서브 쿼리)
SELECT ORDER_ID
, ORDER_VALUE
FROM
(
SELECT ORDER_ID
, SUM( QUANTITY * UNIT_PRICE ) ORDER_VALUE
FROM ORDER_ITEMS
GROUP BY ORDER_ID
ORDER BY ORDER_VALUE DESC
)
WHERE ROWNUM <= 10;
728x90
'Data scientist > SQL' 카테고리의 다른 글
SQL_함수(2) (0) | 2021.08.09 |
---|---|
SQL_Practice_기온 데이터 분석 (0) | 2021.08.08 |
SQL_함수 (0) | 2021.08.06 |
SQL_TABLE (0) | 2021.08.05 |
SQL_데이터베이스 (0) | 2021.08.04 |