관계형 데이터베이스 개요
- 데이터베이스: 데이터를 저장하고 관리하는 시스템입니다.
- 관계형 데이터베이스: 데이터를 행과 열의 테이블 형태로 저장하는 데이터베이스입니다.
- Table: 데이터를 저장하는 가장 기본적인 단위입니다. 열과 행으로 이루어져 있습니다.
- SQL (Structured Query Language): 관계형 데이터베이스에서 데이터를 검색, 수정 및 처리할 때 사용하는 언어입니다.
SELECT 문
- SELECT: 데이터베이스에서 데이터를 검색할 때 사용하는 명령어입니다.
- 산술 연산자: SELECT 문에서 덧셈, 뺄셈, 곱셈, 나눗셈 등의 수학 연산을 수행할 때 사용하는 연산자입니다.
- 합성 연산자: SELECT 문에서 여러 개의 열을 하나로 합치거나, 문자열을 연결할 때 사용하는 연산자입니다.
함수
- CHR (ASC|| 코드): ASCII 코드를 문자로 변환합니다.
- LOWER (문자열): 문자열을 모두 소문자로 변환합니다.
- UPPER (문자열): 문자열을 모두 대문자로 변환합니다.
- LTRIM (문자열 [, 특정 문자]): 문자열의 왼쪽에 있는 특정 문자를 제거합니다. 특정 문자를 생략하면 공백을 제거합니다.
- RTRIM(문자열 [, 특정 문자]): 문자열의 오른쪽에 있는 특정 문자를 제거합니다. 특정 문자를 생략하면 공백을 제거합니다.
- TRIM ([위치]) [특정 문자] [FROM] 문자열 ): 문자열 앞뒤에 있는 특정 문자를 제거합니다. [위치]는 생략 가능하며, 생략하면 공백을 제거합니다.
- SUBSTR (문자열, 시작점 [, 길이]): 문자열에서 시작점부터 길이만큼의 문자열을 반환합니다. 길이를 생략하면 시작점부터 끝까지의 문자열을 반환합니다.
- LENGTH (문자열): 문자열의 길이를 반환합니다.
- REPLACE (문자열, 변경 전 문자열 [, 변경 후 문자열]): 문자열에서 변경 전 문자열을 찾아 변경 후 문자열로 교체합니다. 변경 후 문자열은 생략 가능합니다.
- 숫자 함수
- ABS (수): 수의 절댓값을 반환합니다.
- SIGN (수): 수가 양수이면 1, 음수이면 -1, 0이면 0을 반환합니다.
- ROUND (수 [, 자릿수]): 수를 반올림합니다. 자릿수를 생략하면 기본값으로 0이 입력됩니다.
- TRUNC (수 [, 자릿수]): 수를 버림합니다. 자릿수를 생략하면 기본값으로 0이 입력됩니다.
- CEIL(수): 수보다 크거나 같은 최소 정수를 반환합니다.
- FLOOR (수): 수보다 작거나 같은 최대 정수를 반환합니다.
- MOD(수1, 수2): 수1을 수2로 나눈 나머지를 반환합니다.
NULL 관련 함수
- NVL(인수1, 인수2): 인수1이 NULL인 경우 인수2를 반환합니다.
- NULLIF (인수1, 인수2): 인수1과 인수2가 같은 경우 NULL을 반환하고, 서로 다른 경우 인수1을 반환합니다.
- COALESCE (인수1, 인수2, 인수3 …): NULL이 아닌 첫 번째 인수를 반환합니다.
각 함수는 SQL 기본 강의에서 자세히 다루고 있습니다.날짜 함수
- SYSDATE: 현재 날짜와 시간을 반환합니다.
- EXTRACT(특정 단위 FROM 날짜 데이터): 날짜 데이터에서 특정 단위의 값을 추출합니다.
- ADD_MONTHS (날짜 데이터, 특정 개월 수): 날짜 데이터에 특정 개월 수를 더합니다.
변환 함수
- 명시적 형변환과 암시적 형변환: 데이터 타입을 변환하는 방법입니다. 명시적 형변환은 변환 함수를 사용하여 직접 데이터 타입을 변환하는 것이고, 암시적 형변환은 데이터 연산 시 자동으로 데이터 타입을 변환하는 것입니다.
- 명시적 형변환에 쓰이는 함수: TO_CHAR, TO_NUMBER, TO_DATE, TO_TIMESTAMP 등이 있습니다.
NULL 관련 함수
- NVL(인수1, 인수2): 인수1이 NULL인 경우 인수2를 반환합니다.
- NULLIF (인수1, 인수2): 인수1과 인수2가 같은 경우 NULL을 반환하고, 서로 다른 경우 인수1을 반환합니다.
- COALESCE (인수1, 인수2, 인수3 …): NULL이 아닌 첫 번째 인수를 반환합니다.
각 함수의 개념과 사용 방법은 SQL 기본 강의에서 자세히 다루고 있습니다.
CASE
WHERE 절
- 비교 연산자: 두 피연산자를 비교하는 연산자로, 주로 WHERE 절에서 사용된다. 비교 연산자에는 =, <>, >, >=, <, <= 등이 있다.
- 부정 비교 연산자: 비교 연산자의 결과를 부정하는 연산자로, != 또는 <>로 표현된다.
- SQL 연산자: LIKE, IN, BETWEEN 등의 연산자로, WHERE 절에서 복수의 값을 처리할 때 사용한다.
- LIKE: 문자열 패턴 매칭 연산자로, %와 _를 사용해서 와일드 카드를 처리한다.
- IN: WHERE 절에서 복수의 값을 선택할 때 사용하는 연산자로, OR로 연결된 여러 개의 비교식을 대체할 수 있다.
- BETWEEN: BETWEEN A AND B 형태로 사용되며, A와 B 사이의 값에 대해서 참인지 거짓인지 판별하는 연산자이다.
- 부정 SQL 연산자: NOT LIKE, NOT IN, NOT BETWEEN 등으로, 해당 연산자의 결과를 부정하는 연산자이다.
- 논리 연산자: AND, OR, NOT으로, WHERE 절에서 여러 개의 비교식을 조합할 때 사용한다.
GROUP BY, HAVING 절
GROUP BY
- GROUP BY는 데이터를 그룹으로 분류할 때 사용하는 절입니다.
- GROUP BY 절은 SELECT 문에서 집계 함수와 함께 사용합니다.
- GROUP BY 절은 집계 함수가 적용될 그룹을 지정합니다.
집계 함수
- COUNT: 그룹 내의 행 수를 반환합니다.
- SUM: 그룹 내의 값을 합산합니다.
- AVG: 그룹 내의 값의 평균을 반환합니다.
- MAX: 그룹 내의 최대 값을 반환합니다.
- MIN: 그룹 내의 최소 값을 반환합니다.
HAVING
- HAVING 절은 GROUP BY 절에서 그룹화한 집계 결과를 필터링할 때 사용합니다.
- HAVING 절은 WHERE 절과 유사하지만, WHERE 절은 개별 행을 필터링하고, HAVING 절은 그룹을 필터링합니다.
- HAVING 절에서는 집계 함수를 사용할 수 있습니다.
ORDER BY 절
- ORDER BY
- ORDER BY 절은 SELECT 문에서 결과 집합을 정렬하여 반환하는 데 사용됩니다. ORDER BY 절에는 정렬 기준이 될 하나 이상의 열이 포함됩니다. 이 절은 오름차순(ASC) 또는 내림차순(DESC)으로 정렬할 수 있습니다. 만약 ORDER BY 절에 복수의 열이 지정될 경우, 첫 번째 열을 기준으로 오름차순으로 정렬하고, 첫 번째 열 값이 같을 경우 두 번째 열을 기준으로 정렬하며, 이와 같은 방식으로 정렬이 이루어집니다.
JOIN
- JOIN이란?
- 둘 이상의 테이블에서 데이터를 검색하려면 테이블을 결합하여 하나의 결과 집합으로 만들어야 합니다. SQL에서 JOIN은 이러한 테이블을 결합하는 방법입니다.
- EQUI JOIN
- 두 테이블에서 일치하는 값을 가진 열에 대해 데이터를 결합하는 방법으로, 두 테이블에서 일치하는 값만 출력됩니다.
- Non EQUI JOIN
- 비교 연산자를 사용하여 두 테이블을 결합하는 방법으로, 일치하지 않는 값을 포함하여 출력할 수 있습니다.
- 3개 이상 TABLE JOIN
- 세 개 이상의 테이블을 결합하는 방법으로, 두 개의 JOIN을 사용하여 구현할 수 있습니다.
- OUTER JOIN
- LEFT OUTER JOIN: 왼쪽 테이블의 모든 행을 출력하면서, 오른쪽 테이블과 일치하는 값을 포함합니다.
- RIGHT OUTER JOIN: 오른쪽 테이블의 모든 행을 출력하면서, 왼쪽 테이블과 일치하는 값을 포함합니다.
- FULL OUTER JOIN: 양쪽 테이블의 모든 행을 출력하면서, 일치하는 값과 일치하지 않는 값을 모두 포함합니다.
- INNER JOIN과 유사하지만, 일치하지 않는 값도 출력됩니다. OUTER JOIN은 LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN으로 구분됩니다.
STANDARD JOIN
- INNER JOIN: 두 개 이상의 테이블에서 공통된 값을 가진 열에 대해 데이터를 결합하는 방법으로, 두 테이블에서 일치하는 값만 출력된다.
- OUTER JOIN: INNER JOIN과 유사하지만, 일치하는 값 뿐만 아니라 일치하지 않는 값도 출력된다.
- LEFT OUTER JOIN: 왼쪽 테이블의 모든 행을 출력하면서, 오른쪽 테이블과 일치하는 값을 포함한다.
- RIGHT OUTER JOIN: 오른쪽 테이블의 모든 행을 출력하면서, 왼쪽 테이블과 일치하는 값을 포함한다.
- FULL OUTER JOIN: 양쪽 테이블의 모든 행을 출력하면서, 일치하는 값과 일치하지 않는 값을 모두 포함한다.
- NATURAL JOIN: 두 개 이상의 테이블에서 동일한 이름을 가진 열을 찾아서 JOIN하는 방법으로, 중복된 열은 하나만 출력된다.
- CROSS JOIN: 두 개 이상의 테이블에서 모든 행에 대해 JOIN하는 방법으로, Cartesian Product라고도 한다.
'[F-Lab 66해빗 페이백 챌린지 ]' 카테고리의 다른 글
| [F-Lab 페이백 모각코 56일차] (SQL) 관리 구문 (0) | 2023.09.09 |
|---|---|
| [F-Lab 페이백 모각코 55일차] (SQL) SQL 활용 (0) | 2023.09.09 |
| [F-Lab 페이백 모각코 53일차] (SQL) 데이터 모델과 SQL (0) | 2023.09.09 |
| [F-Lab 페이백 모각코 52일차] (SQL) 데이터 모델링의 이해 (0) | 2023.09.09 |
| [F-Lab 페이백 모각코 51일차] SpringBoot 3 (3.1.2) + SpringDoc ( OAS3) (0) | 2023.08.19 |