처음 시작하는 SQL 프로그래밍(2)
ORDER BY 명령어를 이용한 데이터의 정렬
select * from products **order by prod_price**;
내림차순 정렬(DSC)
select * from products order by prod_price **desc**;
select * from order by item_price **desc**;
1차 정렬 + 2차 정렬
select * from orderitems order by quantity desc, order_item;
WHERE + ORDER BY
SELECT * FROM products WHERE prod_price <= ORDER BY prod_price;
LIMIT, OFFSET 명령어를 이용한 조회 데이터의 제한
LIMIT : 조회된 결과 값의 개수를 제한
OFFSET: LIMIT과 함께 페이지 처리를 하는 데 사용
SELECT *
FROM products
ORDER BY prod_price DESC LIMIT 2 OFFSET 3;
IN 연산자를 이용한 데이터 필터링
select * from vendors where vend_id in ('BR501', 'DLL01');
BETWEEN 연산자를 이용한 데이터의 필터링
두 값 사이의 데이터 조회
select *
from products
where prod_price between 3 and 6;
LIKE 연산자를 이용한 데이터의 필터링
select *
from customers
where cust_contact like 'J%';
# J 뒤에 어떤 값이던 상관 X
select *
from vendors
where vend_name like '%Inc.';
DISTINCT 명령어를 이용한 중복 데이터 제거
select distinct prod_price # 고유한 값
from products;
누락(NULL Value) 데이터의 처리
SELECT column_names
FROM table_name
WHERE column_name **IS NULL; # || IS NOT NULL;**
SQL 명령어를 이용한 데이터의 변경
UPDATE 명령어를 이용한 데이터 수정
기존의 데이터를 수정할 때 사용되며, WHERE 절에 명시한 조건에 해당하는 데이터를 변경(명시 X → ROW의 값 변경 가능성)
cust_id가 ‘1000002’인 사용자의 cust_email을 변경
update customers
set cust_email = 'support@kidsplace.com'
where cust_id = '1000002';
DELETE 명령어를 이용한 데이터 삭제
기존 데이터를 삭제 가능. WHERE 절에 명시한 조건에 해당하는 데이터를 삭제(명시 X → ROW의 값 변경 가능성). 지워진 데이터는 복구하기 어렵다.
예시
DELETE FROM table_name
WHERE condition;
삭제하기 전 데이터 백업(rollback)을 해 두는 게 좋다
SQL 명령어를 이용한 데이터의 집계
COUNT 함수를 이용한 데이터 개수 집계
조회된 데이터의 개수를 계산하는 함수. WHERE절을 통해 필터링 된 데이터의 개수를 계산 가능. NULL Value는 카운트하지 않음.
예시
SELECT COUNT(column_name)
FROM table_name
WHERE condition;
예제
SELECT COUNT(*)
FROM Products;
SELECT COUNT(prod_price)
FROM Products;
SUM 함수를 이용한 데이터의 합 집계
조회된 데이터의 합. WHERE 절을 통해 필터링 된 데이터의 합을 계산 가능. ‘*’ 사용 불가, 특정 컬럼 명 명시해야 함
SELECT SUM(column_name)
FROM table_name
WHERE condition;
MIN, MAX 함수를 이용한 최대값, 최소값 집계
특정 컬럼의 최소(MIN), 최대(MAX) 값을 계산하는 함수
SELECT MIN(column_name)
FROM table_name
WHERE condition;
SELECT MAX(column_name)
FROM table_name
WHERE condition;
AVG 함수를 이용한 평균값 집계
특정 컬럼의 평균 값을 구하는 함수
SELECT AVG(column_name)
FROM table_name
WHERE condition;
VARIANCE, STDDEV 함수를 이용한 분산, 표준편차 집계
SELECT VARIANCE(column_name)
FROM table_name;
SELECT STDDEV(column_name)
FROM table_name;
GROUP BY 명령어를 이용한 그룹별 데이터 집계
특정 컬럼들을 기준으로 데이터를 그룹지어 분석 — 한 개 이상의 컬럼으로 그룹화 가능, 집계 함수들과 자주 사용
SELECT colum_name1, colum_name2, ...,
Aggregation Functions ...,
FROM table_name
GROUP BY colum_name1, colum_name2;
HAVING 명령어를 이용한 집계 데이터 필터링
그룹화 한 결과를 필터링(그룹화 전 필터링은 WHERE, 그룹화 후 필터링은 HAVING)
SELECT colum_name1, colum_name2, ...,
Aggregation Functions ...,
FROM table_name
GROUP BY colum_name1, colum_name2 ...,
HAVING condition;
SQL 명령어를 이용한 데이터의 결합
INNER JOIN 명령어를 이용한 데이터의 Column 결합
SQL JOIN
두 개 이상의 테이블을 결합 → Column을 확장
INNER JOIN
두 개의 테이블에 모두 존재하는 데이터만 결합하여 조회
ON 명령어 뒤에 정의한 Column 정보를 기존으로 존재 여부 체크
SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;
OUTER JOIN 명령어를 이용한 데이터의 Column 결합
LEFT (OUTER) JOIN
왼쪽에 위치한 테이블을 기준으로 오른쪽의 테이블 데이터를 붙임
SELECT column_name(s)
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name;
RIGHT (OUTER) JOIN
LEFT JOIN과 동일 && 기준이 되는 테이블의 방향만 반대
SELECT column_name(s)
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;
코드프레소 Java 웹 개발 체험단 활동 중(https://www.codepresso.kr/)
'Codepresso' 카테고리의 다른 글
Spring Boot를 활용한 웹 개발 초급 (0) | 2022.03.19 |
---|---|
SW 유지보수성 향상을 위한 Clean Code 강의노트 (0) | 2022.02.09 |
MySQL 입문 강의노트 (0) | 2022.02.08 |
Spring Boot 웹 개발 입문 강의노트 (0) | 2022.02.08 |
[Java 프로그래밍 초급] 강의노트 (0) | 2022.01.25 |