일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 방콕
- ISNA
- append
- Linked List
- 열거 타입
- 중첩 클래스
- gdgm
- inteliJ
- try-catch
- visual studio code
- tunder client
- 집계함수
- extend
- tail
- 패키지
- node.js
- iconsiam
- sklearn
- 태국
- dropna
- Package
- 꽉뚝짝 시장
- 중첩 인터페이스
- sqld
- React Native
- fillna
- order by
- preprocessing
- nodemon
- react
- Today
- Total
ABCD
SQL 1회독 정리장 본문
🐢 데이터베이스(DB, DataBase)
모인 테이블을 한 곳에 담아놓는 공간
🐢 데이터베이스와 유사한 개념들
- 데이터웨어하우스: 회사 전반의 여러 데이터 소스들을 저장하기 위한 거대한 저장소 개념
- 데이터마트: 데이터웨어하우스보다는 좀 더 작은 개념으로 데이터들을 특정 주제 및 조직에 따라 필요한 부분만 가공하여 모아둔 저장소
🐢 SQL(Structured Query Language)
데이터와 테이블을 활용하기 위한 구조화된 질의 언어
(SQL 문을 작성하다 == 쿼리를 입력 및 실행하다)
🐢 SQL 문법 종류
문법 종류 | 설명 | 명령어 |
데이터 정의어 DDL(Data Definition Language) |
테이블 구조와 관련된 문법, 데이터를 어떤 항목들로 쌓을지 기준을 정해 구조를 수정하거나 삭제 | CREATE, ALTER, DROP, RENAME |
데이터 조작어 DML(Data Manipulation Language) |
테이터와 관련된 문법 | SELECT, INSERT, DELETE, UPDATE |
데이터 제어어 DCL(Data Control Language) |
테이터 제어와 관련된 문법 (사용 권한 관리) |
GRANT, REVOKE |
트랜잭션 제어어 TCL(Transaction Control Language) |
잘못되었다고 판단되면 이전 상태로 되돌린다. COMMIT: 발생한 작업을 저장 및 확정 ROLLBACK: 잘못되었다고 판단되어 이전 상태로 되돌림 |
BEGIN TRAN, COMMIT, ROLLBACK |
🐢 SELECT문
- SELECT절: 칼럼들의 이름
- FROM절: 적재된 테이블의 이름
- WHERE절: 필터링하기 위한 조건
- GROUP BY절: 그룹화를 진행할 특정 기준
- HAVING절: 그룹화 이후 필터링
- ORDER BY절: 정렬할 기준
🐢 SELECT문의 처리 순서
테이블 확인 --> 필터링 --> 그룹화 --> 그룹화 후 필터링 --> 내가 조회할 칼럼 확인 --> 정렬
🐢 SELECT절 표현식
- ALIAS(AS) (칼럼의 별칭) --> 별명 같은 거!!
조회될 때 별칭으로 출력된다.
- DISTINCT
중복되는 정보를 제거한다.
- *
모든 칼럼을 보여달라!
🐢 SQL 함수
- 문자열 함수
- 숫자 함수
ROUND: (1) 반올림하여 (2) 지정한 소수점 자리까지 출력
ceiling - 올림, floor - 내림
** MS-SQL에서만 절삭처리를 ROUND 함수로 한다. (다른 DBMS에서는 TRUNK 함수 쓰기)
- 날짜 함수
- 순위 함수
윈도우 함수: 전체 데이터를 참조해 각 행의 결괏값을 출력
PARTITION BY: 특정 범위를 기준으로 적용하겠다는 의미
ORDER BY: 특정 기준으로 정렬해 적용하겠다는 의미
DESC: 내림차순
ASC: 오름차순 (적지 않으면 기본으로 오름차)
🐢 CASE문
🐢 WHERE절
- 비교연산자
부등호
BETWEEN
IN: 조건과 하나라도 일치하는 행을 필터링할 때 사용
LIKE: 값의 일부분이라도 조건과 일치하는 행을 필터링할 때 사용
LIKE('%김')
IS NULL: 값이 NULL 값인 행을 필터링할 때 사용
- SQL연산자
- 논리연산자
AND: 여러 가지 조건을 모두 만족하는 행을 필터링 (모두 만족하는 행만)
WHERE절에 AND연산자를 사용
OR: 여러 조건 중에서 하나 이상의 조건을 만족하는 행 (하나라도 만족하는 행만)
- 부정연산자
NOT IN: 조건과 일치하지 않는 행을 필터링할 때 사용하는 연산자
IS NOT NULL
** 각각의 처리 순서
괄호 --> 부정연산자 --> 비교연산자 --> 논리연산자AND --> 논리연산자OR
🐢 GROUP BY절
데이터를 그룹화할 때 사용
- 집계함수: 다양한 데이터 값을 한곳에 모아 계산하는 것을 의미하는 함수
COUNT: 행의 개수 세기
COUNT(칼럼명): 칼럼의 값 중에서 NOT NULL값의 행의 개수를 세기
COUNT(*): 모든 행의 개수를 세기
COUNT(DISTINCT 칼럼명): 칼럼의 값 중에서 중복 값을 제외하고 NOT NULL값의 행의 개수를 세기
SUM: 합계를 내기
AVG
MIN
MAX
--> 집계함수는 SELECT절에 작성되며 대부분 GROUP BY절과 함께 사용된다.
🐢 HAVING절
그룹화 이후 필터링 조건을 작성하는 절
! 반드시 GROUP BY절로 데이터가 묶인 다음 진행되어 그룹화 결과에 따라 필터링한다.
🐢 ORDER BY절
특정 기준으로 데이터를 정렬하고 싶을 때 (정렬은 행에 대한 정렬을 의미한다.)
🐢 서브쿼리
쿼리문에 포함된 또 다른 쿼리문을 의미
** 서브쿼리 분류
SELECT절 서브쿼리
FROM절 서브쿼리: 서브쿼리 결괏값이 하나의 테이블로 기능
! 하나의 임시 테이블로 사용되어 실무에서도 1차 가공한 결과물을 FROM절에서 서브쿼리로 사용하고 이를 2차로 가공해 쿼리문을 작성하는 경우가 많다.
WHERE절 서브쿼리
🐢 테이블 + 테이블
RDB(Relational Database): 관계형 데이터베이스
ERD(Entity-Relationship Diagram): 개체 관계 모델
Entity(엔터티): 테이블
Relationship(관계): 테이블 관계
Diagram(모델): 점과 선으로 구성된 테이블 간의 구조
🐢 JOIN
결합
ON절: 어떤 조건으로 결합할지에 대한 조건
LEFT JOIN: 왼쪽을 기준으로 테이블을 결합하는 것
RIGHT JOIN: 오른쪽을 기준으로 테이블을 결합하는 것
OUTER JOIN: 양쪽을 기준으로 테이블을 결합하는 것
INNER JOIN: 양쪽 공통을 기준으로 테이블을 결합하는
🐢 UNION
둘 이상의 테이블을 단일 테이블로 데이터를 통합하기 위해 작성 (아래 방향으로 결합)
UNION: 중복을 모두 제거
UNION ALL: 중복을 제거하지 않은 채 (모두)
'STUDY HARD > SQL STUDY' 카테고리의 다른 글
SQLD 자격증 공부에서 참고하면 좋을 영상들 모음 (0) | 2024.06.21 |
---|