1. 데이터베이스 개요
1) Data와 정보
(1) Data
Data는 관찰 결과로 나타난 정량적 또는 정성적인 실제 값을 의미한다.
예를 들어 “에베레스트의 높이 8848m”는 데이터이다.
(2) 정보
정보는 데이터를 바탕으로 의미를 부여한 것이다.
예를 들어 “에베레스트는 세계에서 가장 높은 산이다”는 정보라고 볼 수 있다.
2) Database
(1) Database란?
Database는 한 조직에 필요한 정보를 여러 응용 시스템에서 공용할 수 있도록, 논리적으로 연관된 데이터를 모아 중복을 최소화하고 구조적으로 통합하여 저장한 것이다.
(2) Database의 정의
- 운영 데이터 : 조직의 목적을 위해 사용되는 데이터
- 공용 데이터 : 여러 사용자나 시스템이 함께 사용하는 데이터
- 통합 데이터 : 중복을 최소화하여 데이터 불일치 문제를 줄인 데이터
- 저장 데이터 : 컴퓨터 저장장치에 저장된 데이터
(3) Database의 특징
- 실시간 접근성 : 사용자가 요청하면 실시간으로 결과를 제공할 수 있다.
- 계속적인 변화 : 데이터 값은 시간에 따라 계속 바뀔 수 있다.
- 동시 공유 : 여러 사용자나 여러 업무가 동시에 사용할 수 있다.
- 내용에 따른 참조 : 데이터의 실제 저장 위치가 아니라 데이터 값 자체를 기준으로 참조한다.
3) DBMS
(1) DBMS란?
DBMS는 데이터베이스에서 데이터 추출, 조작, 정의, 제어 등을 할 수 있게 해주는 데이터베이스 전용 관리 프로그램이다.
(2) DBMS의 기능
- 데이터 추출(Retrieval) : 사용자가 원하는 데이터를 조회하거나 응용 프로그램이 필요한 데이터를 꺼내는 기능
- 데이터 조작(Manipulation) : 데이터 삽입, 수정, 삭제를 지원하는 기능
- 데이터 정의(Definition) : 데이터 구조를 정의하고 변경하거나 삭제하는 기능
- 데이터 제어(Control) : 사용자 관리, 접근 제어, 백업, 회복, 동시성 제어 등을 지원하는 기능
(3) DBMS의 종류
대표적인 DBMS로는 Access, SQL Server, Oracle, MySQL, DB2, SQLite 등이 있다.
각 DBMS는 운영체제 지원 범위와 용도가 조금씩 다르다.
(4) DBMS 사용 이점
- 데이터 독립화
- 데이터 중복 최소화와 무결성 보장
- 데이터 보안 향상
- 백업과 복구 등 관리 편의성 향상
4) DBMS 변천 과정과 Database 유형
(1) DBMS 변천 과정
데이터 관리 방식은 파일 시스템에서 시작해 계층형, 네트워크형, 관계형, 객체형, 객체-관계형 데이터베이스로 발전해 왔다.
(2) 계층형 데이터베이스
트리 형태의 계층 구조를 가지는 데이터베이스이다.
상위 데이터에서 하위 데이터로 내려가는 방식으로 검색한다.
(3) 네트워크형 데이터베이스
하위 데이터들끼리도 관계를 가질 수 있는 구조이다.
계층형보다 더 복잡한 관계를 표현할 수 있지만, 설계와 구현이 어렵다.
(4) 관계형 데이터베이스
모든 데이터를 2차원 테이블 형태로 표현하는 구조이다.
현재 가장 널리 사용되는 방식이며, 데이터 중복을 줄이고 업무 변화에 유연하게 대응할 수 있다는 장점이 있다.
(5) 객체-관계형 데이터베이스
관계형 데이터베이스에 객체 개념을 추가한 형태이다.
사용자 정의 타입, 참조 타입, 중첩 테이블, 대용량 객체 저장, 상속 관계 지원 등의 특징을 가진다.
2. SQL과 주요 용어
1) 주요 용어
(1) 행(Row), 튜플
테이블에서 가로 한 줄의 데이터를 의미한다.
(2) 컬럼(Column), 도메인
테이블에서 세로 방향의 속성을 의미한다.
(3) 기본키(Primary Key)
테이블에서 각 행을 유일하게 구분할 수 있는 키이다.
(4) 외래키(Foreign Key)
다른 테이블과의 관계를 표현하기 위해 사용하는 키이다.
(5) Null
값이 없거나 아직 정해지지 않은 상태를 의미한다.
(6) 컬럼값, 속성값
각 컬럼에 실제로 저장된 값이다.
2) SQL
(1) SQL이란?
SQL은 관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 언어이다.
원하는 데이터를 어떤 절차로 찾을지 하나하나 적는 것이 아니라, 어떤 조건의 데이터를 원하는지를 기술하는 방식이다.
(2) SQL의 분류
- DQL(Data Query Language) : 데이터 검색 → SELECT
- DML(Data Manipulation Language) : 데이터 조작 → INSERT, UPDATE, DELETE
- DDL(Data Definition Language) : 데이터 정의 → CREATE, DROP, ALTER
- TCL(Transaction Control Language) : 트랜잭션 제어 → COMMIT, ROLLBACK
3. 주요 데이터 타입
1) NUMBER
(1) NUMBER란?
숫자를 저장할 때 사용하는 데이터 타입이다.
전체 자리 수와 소수점 이하 자리 수를 지정할 수 있다.
(2) NUMBER의 형식
NUMBER[(P[, S])]
- P : 표현할 수 있는 전체 자리 수
- S : 소수점 이하 자리 수
예를 들어 NUMBER(7,1)은 전체 7자리 중 소수점 이하 1자리까지 저장할 수 있다는 뜻이다.
2) CHARACTER
(1) CHAR
고정 길이 문자형이다.
지정한 길이보다 짧은 값이 들어오면 남는 공간은 공백으로 채워진다.
(2) VARCHAR2
가변 길이 문자형이다.
입력된 값의 실제 길이만큼만 저장하므로 CHAR보다 공간 활용이 효율적이다.
(3) VARCHAR2와 NVARCHAR2
VARCHAR2는 일반 가변 문자형이고, NVARCHAR2는 유니코드 문자형이다.
한글, 영어, 숫자 등 문자 저장 방식에서 차이가 있다.
3) DATE
(1) DATE란?
날짜와 시간을 함께 저장하는 데이터 타입이다.
기본적으로 화면에는 년, 월, 일만 보이는 경우가 많지만, 시, 분, 초 정보도 함께 관리할 수 있다.
(2) DATE의 특징
- 날짜끼리 연산이 가능하다.
- 날짜끼리 비교도 가능하다.
- 날짜에 숫자를 더하거나 빼서 날짜 계산을 할 수 있다.
4. DML(SELECT)
1) SELECT란?
(1) SELECT의 의미
SELECT는 데이터를 조회할 때 사용하는 구문이다.
조회 결과를 Result Set이라고 하며, SELECT에 의해 반환된 행들의 집합을 의미한다.
(2) SELECT의 특징
- 특정 컬럼만 조회할 수 있다.
- 모든 컬럼을 조회할 수 있다.
- 특정 조건에 맞는 행만 조회할 수 있다.
- 여러 테이블의 데이터를 함께 조회할 수도 있다.
2) SELECT 기본 문법
(1) 작성법
SELECT 컬럼명 [, 컬럼명, …]
FROM 테이블명
WHERE 조건식;
(2) 각 절의 의미
- SELECT : 조회할 컬럼을 적는 부분
- FROM : 조회 대상 테이블을 적는 부분
- WHERE : 조건에 맞는 행만 선택하는 부분
3) 기본 조회
(1) 특정 컬럼 조회
필요한 컬럼만 선택해서 조회할 수 있다.
예)
SELECT EMP_ID, EMP_NAME, SALARY
FROM EMPLOYEE;
(2) 전체 컬럼 조회
모든 컬럼을 조회할 때는 *를 사용할 수 있다.
예)
SELECT *
FROM EMPLOYEE;
4) 컬럼 값 산술 연산
(1) 산술 연산
컬럼 값에 대해 산술 연산을 한 결과도 조회할 수 있다.
예)
SELECT EMP_NAME, SALARY * 12
FROM EMPLOYEE;
(2) 활용
월급을 연봉으로 계산하거나, 보너스를 포함한 총 급여를 계산하는 식으로 활용할 수 있다.
5) 컬럼 별칭
(1) 별칭이란?
조회 결과에 컬럼 이름 대신 다른 이름을 붙여서 보여주는 기능이다.
(2) 작성 방법
- AS 별칭
- “별칭”
- AS “별칭”
예)
SELECT EMP_NAME AS 이름,
SALARY * 12 AS 연봉
FROM EMPLOYEE;
6) 리터럴
(1) 리터럴이란?
테이블에 없는 문자열도 조회 결과에 함께 표시할 수 있다.
(2) 예시
SELECT EMP_ID, SALARY, ‘원’ AS 단위
FROM EMPLOYEE;
리터럴은 조회된 모든 행에 반복해서 표시된다.
7) DISTINCT
(1) DISTINCT란?
중복된 값을 제거하고 한 번씩만 조회하고 싶을 때 사용한다.
(2) 예시
SELECT DISTINCT JOB_CODE
FROM EMPLOYEE;
5. WHERE절과 조건 검색
1) WHERE절
(1) WHERE절이란?
WHERE절은 원하는 조건에 맞는 행만 조회하기 위해 사용한다.
(2) 예시
SELECT EMP_NAME, DEPT_CODE
FROM EMPLOYEE
WHERE DEPT_CODE = ‘D9’;
2) 논리 연산자
(1) AND
모든 조건이 참일 때만 참이 된다.
(2) OR
여러 조건 중 하나만 참이어도 참이 된다.
(3) NOT
조건의 반대 결과를 반환한다.
3) 연결 연산자
(1) 연결 연산자란?
||를 사용하면 컬럼과 컬럼, 또는 컬럼과 문자열을 연결할 수 있다.
(2) 예시
SELECT EMP_NAME || ’의 월급은 ’ || SALARY || ‘원 입니다.’
FROM EMPLOYEE;
6. 비교 연산자
1) 기본 비교 연산자
(1) 기본 연산자 종류
- = : 같다
- , < : 크다, 작다
- =, <= : 크거나 같다, 작거나 같다
- <>, !=, ^= : 같지 않다
2) BETWEEN AND
(1) 의미
특정 범위 안에 포함되는지 확인할 때 사용한다.
(2) 예시
SELECT EMP_NAME, SALARY
FROM EMPLOYEE
WHERE SALARY BETWEEN 3500000 AND 6000000;
3) LIKE
(1) 의미
문자 패턴을 기준으로 검색할 때 사용한다.
(2) 와일드카드
- % : 글자 수 상관없이 아무 문자
- _ : 한 글자
(3) 예시
SELECT EMP_NAME, SALARY
FROM EMPLOYEE
WHERE EMP_NAME LIKE ‘전%’;
4) ESCAPE 옵션
(1) 의미
LIKE 검색에서 %나 _를 문자 자체로 처리하고 싶을 때 사용한다.
(2) 예시
SELECT EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE ‘__#%’ ESCAPE ‘#’;
5) NOT LIKE
(1) 의미
특정 패턴이 아닌 데이터를 찾을 때 사용한다.
(2) 예시
SELECT EMP_ID, EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE EMP_NAME NOT LIKE ‘이%’;
6) IS NULL / IS NOT NULL
(1) 의미
NULL 여부를 확인할 때 사용한다.
(2) 예시
SELECT EMP_NAME, MANAGER_ID, DEPT_CODE
FROM EMPLOYEE
WHERE MANAGER_ID IS NULL
AND DEPT_CODE IS NULL;
7) IN / NOT IN
(1) 의미
여러 값 중 하나와 일치하는지 확인할 때 사용한다.
(2) 예시
SELECT EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE IN (‘D6’, ‘D8’);
7. 연산자 우선순위
1) 우선순위가 필요한 이유
SQL에서도 연산자마다 우선순위가 있다.
특히 AND와 OR를 함께 사용할 때는 괄호를 적절히 사용하지 않으면 결과가 달라질 수 있다.
2) 기본 우선순위
대체로 다음과 같은 순서로 처리된다.
- 산술 연산자
- 연결 연산자
- 비교 연산자
- IS NULL / LIKE / IN
- BETWEEN AND
- NOT
- AND
- OR
3) 괄호의 중요성
AND가 OR보다 먼저 처리되므로, 원하는 조건을 정확하게 표현하려면 괄호를 사용해 우선순위를 명확히 하는 것이 좋다.
예)
WHERE (JOB_CODE = ‘J7’ OR JOB_CODE = ‘J2’)
AND SALARY > 2000000;
'멀티캠퍼스' 카테고리의 다른 글
| [2026.05.11] - TIL 27일차 SQL 날짜 함수, 변환 함수, 그룹 함수, JOIN 정리 (0) | 2026.05.18 |
|---|---|
| [2026.05.08] - TIL 26일차 SQL 기본 조회와 조건문 정리 (0) | 2026.05.13 |
| [2026.05.06] - TIL 24일차 스레드, 네트워크 (0) | 2026.05.07 |
| [2026.04.29] - TIL 23일차 컬렉션(Collection)과 자료구조 (0) | 2026.04.29 |
| [2026.04.28] TIL - 22일차 입출력 (0) | 2026.04.28 |