본문 바로가기
Codepresso

처음 시작하는 SQL 프로그래밍 강의노트(2)

by 선의 2022. 3. 3.

처음 시작하는 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/)