본 포스팅은
BDA 빅데이터분석학회 SQLD 스터디 학습내용입니다.
[2024 이기적 SQL 개발자 이론서+기출문제]
서적과 강의를 바탕으로 서술한 내용임을 밝힙니다.
01. 관계형 데이터베이스 개요
- 데이터베이스(DataBase, DB): 데이터를 일정한 형태로 저장해 놓은 것
- 데이터베이스 관리시스템(DataBase Management System, DBMS): 기존 데이터베이스 기능에 추가로 데이터 손상을 방지 및 복구, 인증된 사용자만 접근 등 추가 기능을 지원하는 관리 시스템
- 관계형 DBMS(Relational DBMS, RDBMS): 테이블로 데이터를 관리하고 테이블간 관계를 이용해 데이터를 정의하는 방식으로 대부분의 기업이 사용하며 지금도 공부하는 Oracle도 RDBMS 중 하나
- 테이블(Table): RDBMS에서 실제 데이터가 저장된 조회되는 2차원 배열 형태의 저장소 공간. 엔티티, 속성, 인스턴스가 각각 DB가 이해할 수 있는 형태인 테이블, 칼럼, 튜플로 변경된 것
SQL(Structured Query Language)
:RDBMS에서 데이터 정의, 조작, 조회, 제어 등을 하기 위해 사용하는 언어
DDL(Data Definition Language, 데이터 정의어) | CREATE, ALTER, DROP, RENAME, TRUNCATE |
DML(Data Manipulation Language, 데이터 조작어) | SELECT, INSERT, UPDATE, DELETE, MERGE |
DCL(Data Conrol Language, 데이터 제의어) | GRANT, REVOKE |
TCL(Transaction Control Language, 트랜잭션 제의어) | COMMIT, ROLLBACK, SAVEPOINT |
일반집합연산자와 순수관계연산자
일반집합연산자 종류 | 순수관계연산자 종류 | ||
UNION | UNION 으로 구현 | SELETE | 쿼리에서 WHERE 로 구현 |
INTERSECTION | INTERSECT 로 구현 | PROJECT | 쿼리에서 SELETE 로 구현 |
DIFFERENCE | MINUS 로 구현 | (NATURAL) JOIN | 쿼리에서 조인으로 구현 |
PRODUCT | 카티션곱(조인)으로 구현 | DIVIED | 현재 사용 X |
SELETE
:테이블에서 원하는 데이터를 조회할 때 사용하는 문법
SELECT CUST_ID, CUST_NAME, BIRTH_DY
FROM TB_CUST
WHERE MONEY = 10000;
1. TB_CUST 테이블에서(FROM) 데이터를 가져오겠습니다.
2. TB_CUST 테이블에서 MONEY (보유금액) 이 10000 인 튜플(행)만 가져오겠습니다.
3. 출력되는 튜플(행)에 대해 CUST_ID, CUST_NAME, BIRTH_DY 컬럼(열)만 가져오겠습니다.
SELETE * FROM TB_PRD;
:TB_PRD 테이블의 모든 칼럼 정보를 출력합니다.
*(애스터리스크)는 SELETE 뒤에 사용되며 테이블 내의 모든 칼럼 정보를 출력
SELETE DISTINCT PRD_TYPE FROM TB_PRD;
:TB_PRD 테이블의 PRD_TYPE 칼럼을 기준으로 값을 중복없이 출력
DISTINCT는 SELETE 뒤, 칼럼 앞에 사용되며 해당 칼럼 정보에 대해 중복을 제거
AS
:SELETE 부분에서 출력하려는 칼럼에 대해 새로운 별명(ALIAS)를 부여
- 띄어쓰기 불가
- 문자로 시작
- 예약어 불가
- 특수문자는 $ _ #만 가능
02. 함수
함수: 입력 값을 넣어 특정한 기능을 통해 결과 값을 출력
내장형(built-in) 함수
: 미리 만들어 놓은 함수
1. 문자형 함수: UPPER, SUBSTR, TRIM, REPLACE
- 입력 값: 문자형 리터럴 1개 혹은 문자형 컬럼
- 출력 값: 문자형 리터럴 1개
UPPER: 입력받은 문자열에서 소문자를 대문자로 바꿔준다.
SUBSTR: 입력받은 문자형 리터럴에서 시작위치에서 길이만큼 잘라낸다.
TRIM: 입력받은 문자형 리터럴에서 양 끝의 공백을 제거한다.
2. 숫자형 함수: MOD, ROUND
- 입력 값: 숫자형 리터럴 2개(실수, 소수점자릿수)
- 출력 값: 숫자형 리터럴 값
ROUND: 실수를 소수점 자릿수까지 반올림한 결과를 출력한다.
3. 날짜형 함수: SYSDATE
SYSDATE: 입력시 바로 출력되며, 현재 시간을 초단위까지 날짜형 리터럴로 출력
연산을 하기 전에 형변환이 발생한다.
형 변환 우선 순위: 날짜형 > 숫자형 > 문자형
NULL은 정상적인 산술, 비교 연산 등이 불가능
NULL함수: NULL값을 대체할 수 있는 함수 → NVL, DECODE
NVL(data1, data2): data1에 NULL 값이 들어오면 data2를 출력하고 NULL이 아니면 data1을 출력
DECODE(data1, data2, data3, data4, ...): data1과 data2이 동일하면 data3을 출력하고, 그렇지 않으면 data4를 출력
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 2파트 SQL 기본 및 활용 - SQL 활용 (0) | 2024.11.16 |
---|---|
[SQLD] 1파트 데이터 모델과 SQL (8) | 2024.10.28 |
[SQLD] 1파트 데이터 모델링(Data Modeling) (5) | 2024.10.27 |
댓글