데이터 조회
SELECT 열1, 열2
FROM 테이블
WHERE 조건;
모든 열을 보고자 하는 경우는 *을 입력하는데, 이때 주의해서 사용해야 한다.
비교 연산자
보통 WEHRE 절에서 조건을 정의할 때 사용한다
다르다는 '<>' 또는 '!=' 연산자를 사용한다
논리 연산자
AND 연산자 : 성능면에서 긍정적
OR 연산자 : 성능면에서 부정적
NOT 연산자 : 조건에 대한 부정을 의미
여러 조건을 나열할 경에는 괄호를 사용해 조건을 명확히 식별할 수 있도록 해야 함
NULL
: 0도 아니고 공백도 아닌 알 수 없는 값
IS NULL, IS NOT NULL을 사용해 NULL값을 식별할 수 있음
SELECT * FORM Employee WHERE eng_name = 'NULL'
SELECT * FORM Employee WHERE eng_name IS NULL;
SELECT * FORM Employee WHERE retire_date IS NULL;
SELECT * FORM Employee WHERE retire_date IS NOT NULL;
IFNULL() 함수를 사용해서 NULL값 대신 다른 값을 표시할 수 있음
데이터 정렬
SELECT 엷, 열2 ,,,
FROM 테이블
WHERE 조건
ORDER BY 정렬 기준 열 ASC \ DESC;
ORDER BY절을 활용해 정렬된 결과를 표시할 수 있음
ASC : 오름차순 (기본값)
DESC : 내림차순
복합 정렬은 콤마로 구분해서 정렬 방식을 지정함
CASE문
CASE WHEN 조건1 THEN 값1
WHEN 조건2 THEN 값2
WHEN 조건3 THEN 값3
...
ELSE 값N END
CASE문을 사용해서 쿼리문 안에서 조건에 따른 처리를 수행할 수 있음.
SELECT문에서 중요한 역할을 함
데이터 집계
집계함수와 NULL값
SUM() : NULL 값을 제외한 나머지 값의 합
AVG() : NULL 값을 제외한 나머지 값의 합을 NULL값ㅇㄹ 제외한 값의 개수로 나눔
MIN(), MAX() : NULL 값을 제외한 값 중에서 가장 작은/ 큰값
COUNT() : NULL 값을 제외한 값의 개수
그룹별 집계
SELECT 집계 기준 열, 집계함수1, 집계함수2, ,,,
FORM 테이블
WHERE 조건
GROUP BY 집계 기준 열
ORDER BY 정렬 기준 열 ASC\DESC;
GROUP BY를 사용해 그룹별 집계를 수행
집계에 대한 정렬이 필요한 경우 ORDER BY절을 사용함
SELECT 집계 기준 열, 집계함수1, 집계함수2, ,,,
FORM 테이블
WHERE 조건
GROUP BY 집계 기준 열
HAVING 조건
ORDER BY 정렬 기준 열 ASC\DESC;
WHERE 절 : GROUP BY 하기 전 조건 -> 집계 대상 행 필터링
HAVING 절 : GROUP BY 한 후 조건 -> 집계 후 표시할 행 필터링
순위 함수
RANK, DENSE_RANK, ROW_NUMBER, NTILE 함수 모두 OVER절을 필수로 함
RANK
정렬된 데이터에서 현재 행의 순위를 반환함
OVER 절 안에 ORDER BY 문으로 순위를 정하기 위한 정렬 기준을 지정하고, 최종 출력 결과에 새로운 정렬 기준을 주고 싶으면 쿼리문 마지막에 ORDER BY문을 추가함.
DENSE_RANK
같은 순위가 있어도 이어지는 순위는 건너뛰지 않고 부여함
ROW_NUMBER
PARTITION BY를 사용하지 않는 한 같은 번호는 부여되지 않음
NTILE
몇 개의 그룹으로 나누어 그 그룹마다 번호를 부여함
그룹의 개수를 지정해야 하므로 다른 함수와 달리 NTILE(n) 형태로 함수 안에 숫자 지정
데이터 변경
DML
데이터 조작 언어 = 데이터를 변경하는 쿼리눙
EX) INSERT, UPDATE, DELETE, SELECT
UPDATE문과 DELETE문의 경우 정확한 조건을 지정해야 함.
INSERT
INSERT INTO 테이블 (열1, 열2,,,)
VALUES (값1, 값2),,;
콤마로 구분해 여러 행을 동시에 추가할 수 있음.
UPDATE
UPDATE 테이블
SET 열1 = 값1, 열2 = 값2 ,,,
WHERE 조건;
조건에 맞는 행 값 바꾸기
DELETE
DELETE FROM 테이블
WHERE 조건;
조건/ 테이블에 맞는 행 지우기
다중 테이블 조회
JOIN
- INNER JOIN
양쪽 테이블에서 비교되는 값이 일치하는 행만 가져옴
- OUTER JOIN
비교되는 값이 일치하지 않는 행도 기준 테이블에서 가져옴
LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN으로 구함
- CROSS JOIN
ON 절이 없어 모든 경우의 수 만큼 결과 행을 얻음
대량의 테스트 데이터를 만드는 목적으로 많이 사용됨
Sub-query
괄호 안에 또 다른 쿼리문이 있는 쿼리문
대부분 JOIN문으로 작성해서 같은 결과를 얻을 수 있음
SELECT emp_id, emp_name, salary
FROM employee
WHERE salary = (SELECT MAX(salary) FROM employee);
'Review > KT Aivle School' 카테고리의 다른 글
[4기 에이쁠 기자단] 에이블데이 2차 (0) | 2023.12.26 |
---|---|
[4기 에이쁠 기자단] AIVLE SCHOOL 5기 모집 (1) | 2023.11.28 |
[4기 에이쁠 기자단] 가상화 클라우드 (1) | 2023.11.28 |
[4기 에이쁠 기자단] AIVLE Day (1) | 2023.11.28 |
[4기 에이쁠 기자단] 미니프로젝트 4차 (0) | 2023.10.31 |