본문 바로가기
DB/이론 및 개념

[day_02] DB / 05. 기본 SQL 3 - Oracle 함수

by 파프리카_ 2020. 8. 8.
728x90
반응형

COUNT (*) : row 개수 반환

SELECT	COUNT(*)
FROM	PRODUCT;

 

-- PRIMARY KEY column으로 검색해서 0 또는 1 값을 조회할 수 있다 

( 유무 확인 : 0 - 없음, 1- 있음) 

product 테이블에서 id가 1인 row는 있기 때문에 1 반환, id가 ab인 row는 없기 떄문에 0 반환

SELECT	COUNT(*)
FROM 	PRODUCT
WHERE	ID = '1'; -- 있으면 1

SELECT	COUNT(*)
FROM 	PRODUCT
WHERE	ID = 'AB'; -- 없으면 0

 

MIN([column name]) : 최소값 - 숫자형 컬럼일 경우, 사용가능

SELECT	MIN(PRICE)
FROM	PRODUCT;

 

MAX([column name]) : 최대값 - 숫자형 컬럼일 경우, 사용가능

SELECT	MAX(PRICE)
FROM	PRODUCT;

 

AVG([column name]) : 평균값 - 숫자형 컬럼일 경우, 사용가능

SELECT	AVG(PRICE)
FROM	PRODUCT;

 

정렬

오름차순 : ORDER BY ([column name]) (ASC) - ASC 는 default값이므로, 생략 가능

SELECT	 ID, NAME, MAKER, PRICE
FROM	 PRODUCT
ORDER BY PRICE ASC;

 

내림차순 : ORDER BY  ([column name]) DESC

SELECT	 ID, NAME, MAKER, PRICE
FROM	 PRODUCT
ORDER BY PRICE DESC;

 

-- WHERE 조건절과 ORDER BY 정렬을 함께 쓸 경우

1. MAKER가 OB인 상품의 NAME과 PRICE를 조회하되, PRICE 내림차순(비싼거부터!)

SELECT	 NAME, PRICE
FROM	 PRODUCT
WHERE    MAKER = '오비'
ORDER BY PRICE DESC;

 

2. PRICE가 2000원 이상, 2500 이하인 상품의 NAME, PRICE만 출력(PRICE 오름차순)

1) WHERE 조건절에 부등호를 쓰는 경우

SELECT	NAME, PRICE
FROM	PRODUCT
WHERE	PRICE >= 2000 AND PRICE <= 2500
ORDER BY PRICE;

2) WHERE 조건절에 BETWEEN을 쓰는 경우 *BETWEEN는 이상, 이하로 초과, 미만은 적용할 수 없다.

SELECT	NAME, PRICE
FROM	PRODUCT	
WHERE	PRICE BETWEEN 2000 AND 2500
ORDER BY PRICE;

 

DISTINCT([column name])  : 중복을 제외하고, 원하는 column의 종류 출력

-- 중복을 제외하고, MAKER의 종류만 출력

SELECT	DISTINCT(MAKER)    
FROM	PRODUCT;

-- 중복을 제외하고, MAKER의 개수만

SELECT	COUNT(DISTINCT(MAKER))
FROM	PRODUCT;

 

[column name] AS [별칭] : SELECT 시, COLUMN NAME에 별칭 주기

SELECT	ID, NAME, MAKER AS 제조사 
FROM 	PRODUCT;

 

연습 문제

PRODUCT 테이블의 상품 중 MAKER가 오비인 상품들의 NAME, MAKER, PRICE를 조회하되,
PRICE를 200씩 할인해서 조회하고 정렬은 가격 내림차순으로 조회한다
(PRICE는 별칭을 부여해서 컬럼명 대신 '할인가'로 표현)

 

푸는 순서

1. 대상 테이블을 찾는다 → FROM PRODUCT

2. 조회할 대상을 찾는다 → SELECT NAME, MAKER, PRICE

3. 조건을 찾는다 → WHERE MAKE = '오비'

4. 조회 대상의 조건을 확인하여 수정한다 → SELECA NAME, MAKER, PRICE, PRICE-200 AS "할인가"

5. 정렬조건을 확인하여 추가한다 → ORDER BY PRICE DESC;

 

SELECT	 NAME, MAKER, PRICE, PRICE-200 AS "할인가"
FROM 	 PRODUCT
WHERE	 MAKER = '오비'
ORDER BY PRICE DESC;

 

728x90
반응형