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;
'DB > 이론 및 개념' 카테고리의 다른 글
[day_04] DB / 07. JDBC Interface 를 다시 한 번 복습하자! (0) | 2020.08.11 |
---|---|
[day_03] DB / 06. SQL 기본 4 - Oracle SEQUENCE 시퀀스 (0) | 2020.08.10 |
[day_02] DB / 04. 기본 SQL 2 - DDL (CREATE, ALTER), DML (INSERT, UPDATE) (0) | 2020.08.07 |
[day_02] DB / 03. JDBC (Java Database Connectivity) (0) | 2020.08.07 |
[day_01] DB / 02. 기본 SQL 1 (DDL, DML) (0) | 2020.08.06 |