개발 기록

처음 시작하는 SQL 프로그래밍 -2 본문

코드프레소

처음 시작하는 SQL 프로그래밍 -2

수염차 2022. 3. 19. 15:30

코드프레소 Java 웹 개발 체험단 활동 중

처음 시작하는 SQL 프로그래밍 강좌를 기반으로 작성하였습니다.

코드프레소 URL: https://www.codepresso.kr/


SQL 명령어를 이용한 데이터의 변경

1. UPDATE 명령어를 이용한 데이터 수정

UPDATE

  • 기존의 데이터를 수정할 때 사용한다.
  • WHERE 절에 명시한 조건에 해당하는 데이터를 변경한다.
    • 명시하지 않으면 모든 ROW의 값이 변경될 수 있다.
UPDATE table_name
SET column1 = value1,
		column2 = value2, 
    ...
WHERE condition;

 

2. DELETE 명령어를 이용한 데이터 삭제

DELETE

  • 기존 데이터를 삭제할 수 있다.
  • WHERE 절에 명시한 조건에 해당하는 데이터를 삭제한다.
    • 명시하지 않으면 해당 테이블의 모든 데이터가 삭제될 수 있다.
  • 지워진 데이터는 복구가 어렵다.
DELETE FROM table_name
WHERE condition;

 


SQL 명령어를 이용한 데이터의 집계

1. COUNT 함수를 이용한 데이터 개수 집계

COUNT 함수

  • 조회된 데이터의 개수를 계산하는 함수
  • WHERE 절을 통해 필터링된 데이터의 개수를 계산할 수 있다.
  • Null Value는 카운트되지 않는다.
SELECT COUNT(column_name)
FROM table_name
WHERE condition;

 

 

2. SUM 함수를 이용한 데이터의 합 집계

SUM 함수

  • 조회된 데이터의 합을 계산하는 함수
  • WHERE 절을 통해 필터링된 데이터의 합을 계산할 수 있다.
  • *을 사용할 수 없고 특정 컬럼명을 명시해야 한다.
SELECT SUM(column_name)
FROM table_name
WHERE condition;

 

 

3. MIN, MAX 함수를 이용한 최댓값, 최솟값 집계

MIN, MAX 함수

  • MIN은 조회된 데이터에서 특정 컬럼의 최솟값을 계산하는 함수
  • MAX는 조회된 데이터에서 특정 컬럼의 최댓값을 계산하는 함수
  • WHERE 절을 통해 필터링된 데이터의 최댓값/최솟값 계산 가능
SELECT MIN(column_name)
FROM table_name
WHERE condition;
SELECT MAX(column_name)
FROM table_name
WHERE condition;

 

 

 

4. AVG 함수를 이용한 평균값 집계

AVG 함수

  • 조회된 데이터에서 특정 컬럼의 평균값을 구하는 함수
  • WHERE 절을 통해 필터링된 데이터에서 특정 컬럼의 평균값을 계산할 수 있다.
SELECT AVG(column_name)
FROM table_name
WHERE condition;

 

5. VARIANCE, STDDEV 함수

VARIANCE, STDDEV 함수

  • VARIANCE: 조회된 데이터에서 특정 컬럼의 분산 계산
  • STDDEV: 조회된 데이터에서 특정 컬럼의 표준편차 계산
  • 분산과 표준편차는 데이터들이 평균에서 벗어나 있는 정도를 측정하는 지표
SELECT VARIANCE(column_name)
FROM table_name
WHERE condition;
SELECT STDDEV(column_name)
FROM table_name
WHERE condition;

 

 

6. GROUP BY 명령어를 이용한 그룹별 데이터 집계

GROUP BY 명령어

  • 특정 컬럼들을 기준으로 데이터를 그룹 지어 분석한다.
    • 한 개 이상의 컬럼으로 그룹화 가능
  • 집계 함수들과 함께 자주 사용된다.
SELECT column_name1, column_name2, ...,
			Aggregation Functions ...
FROM table_name
GROUP BY column_name1, column_name2, ...;

 

 

7. HAVING 명령어를 이용한 집계 데이터 필터링

HAVING

  • 그룹화한 결과를 필터링해준다.
  • 그룹화 전 필터링은 WHERE, 그룹화 후 필터링은 HAVING
SELECT column_name1, column_name2, ...
		   Aggregation Functions ...
FROM table_name
GROUP BY column_name1, column_name2, ...
HAVING condition;

 


SQL 명령어를 이용한 데이터의 결합

1. INNER JOIN 명령어를 이용한 데이터의 Column 결합

SQL JOIN

  • 두 개 이상의 테이블을 결합하여 Column을 확장한다.
  • 종류
    • INNER JOIN
    • LEFT (OUTER) JOIN
    • RIGHT (OUTER) JOIN
    • FULL OUTER JOIN
    • CROSS JOIN
    • SELF JOIN

 

INNER JOIN

  • 두 개의 테이블에 모두 존재하는 데이터만 결합하여 조회한다.
    • ON 명령어 뒤에 정의한 Column 정보를 기준으로 존재 여부를 체크한다.
SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;

 

 

2. OUTER JOIN 명령어를 이용한 데이터의 Column 결합

LEFT (OUTER) JOIN

  • 왼쪽에 위치한 테이블을 기준으로 오른쪽의 테이블의 데이터를 붙인다.
    • 왼쪽 테이블의 데이터는 모두 조회된다.
    • 왼쪽 테이블에는 있지만 오른쪽 테이블에 없는 데이터는 NULL
SELECT column_name(s)
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name;
FROM 사용자 LEFT JOIN 구매정보 ON 사용자.사용자ID = 구매정보.사용자ID

 

 

RIGHT (OUTER) JOIN 

  • LEFT JOIN과 동일하고 기준이 되는 테이블의 방향만 반대이다.
SELECT column_name(s)
FROM table1
RIGHTJOIN table2 ON table1.column_name = table2.column_name;
FROM 사용자 RIGHT JOIN 구매정보 ON 사용자.사용자ID = 구매정보.사용자ID

 

Comments