🗃️ 데이터베이스(Database)
🍚 정형 데이터 vs 비정형 데이터
- 정형 데이터 (Structured Data)
- 행과 열로 구성된 테이블 형태의 데이터
- 예: 엑셀, 관계형 DB 테이블 (MySQL, Oracle 등)
- 비정형 데이터 (Unstructured Data)
- 구조화되지 않은 데이터 (형태가 일정하지 않음)
- 예: 이미지, 동영상, 이메일, PDF, SNS 댓글 등
🍛 데이터 vs 정보
- 데이터: 의미 없는 사실이나 값들의 나열 (raw data)
예: 85
, 2023/10/01
, "서울"
- 정보: 데이터를 가공하여 의미 있게 만든 것
예: "85점은 통과 기준입니다."
, "2023/10/01 서울 날씨는 맑음"
🍙 데이터베이스의 정의
- 데이터를 체계적으로 저장, 관리, 검색, 수정할 수 있도록 한 데이터 저장소
- DBMS(Database Management System)를 통해 조작됨
🍲 관계형 데이터베이스(RDBMS: Relational DBMS)
- 테이블 형태(행과 열)로 데이터를 저장
- 각 테이블은 관계(Relation)를 맺음
- SQL을 이용하여 조작
🧆 관계형 데이터베이스 구성 요소
-

- 테이블(Table): 데이터를 저장하는 구조 (행/열)
- 행(Row): 레코드(Record), 한 사람 또는 한 건의 정보
- 열(Column): 속성(Attribute), 항목
- 스키마(Schema): 데이터 구조 정의 (테이블, 뷰 등)
🍣 주요 특징
특징 | 설명 |
---|
무결성 | 데이터의 정확성과 일관성을 유지 (NOT NULL, UNIQUE 등) |
일관성 | 트랜잭션 완료 후에도 항상 데이터는 일관된 상태 |
독립성 | 데이터와 프로그램은 분리됨 (데이터 구조 변경이 코드에 영향 없음) |
보안성 | 사용자별 접근 권한 제한 가능 |
동시성 | 여러 사용자가 동시에 작업 가능 |
회복성 | 장애 발생 시 데이터 복구 가능 |
🍤 RDBMS 종류
- Oracle: 대기업에서 많이 사용, 성능과 보안 강점
- MySQL: 오픈소스, 웹 서비스에서 널리 사용
- PostgreSQL: 고급 기능 제공, 오픈소스
- SQL Server: 마이크로소프트의 RDBMS
🥐 Oracle DB
🥞Oracle RDBMS
- Oracle은 세계적으로 널리 사용되는 상용 RDBMS
- 대규모 트랜잭션, 보안, 안정성, 성능 측면에서 우수
🥪 기본 계정
계정명 | 용도 |
---|
SYS | 최고 관리자 (시스템 전체 권한) |
SYSTEM | 일반 관리자 (보조 관리 기능) |
SCOTT | 교육용 계정 (기본 테이블 보유, emp , dept 등) |
※ SCOTT
계정은 기본적으로 잠겨 있으므로 해제 필요
ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK;
🛠️ CRUD 기본 명령어
명령어 | 설명 |
---|
INSERT | 행 추가 |
SELECT | 조회 |
UPDATE | 데이터 수정 |
DELETE | 행 삭제 |
🗂️ SELECT 문법 구조
SELECT 컬럼명1, 컬럼명2, ...
FROM 테이블명
WHERE 조건
GROUP BY 그룹기준컬럼
HAVING 그룹조건
ORDER BY 정렬기준컬럼 ASC|DESC;
🔍 구성 요소
절 | 설명 |
---|
SELECT | 조회할 컬럼 지정 |
FROM | 조회 대상 테이블 |
WHERE | 조건에 맞는 행 필터링 |
GROUP BY | 그룹별 집계 (SUM, COUNT 등과 함께) |
HAVING | 그룹 조건 필터링 |
ORDER BY | 정렬 기준 지정 (기본은 오름차순) |
🔣 Oracle의 연산자
📐 비교 연산자
= > < >= <= <>
🔗 논리 연산자
AND OR NOT
📊 포함 / 범위 연산자
IN (값1, 값2, ...)
NOT IN (값1, 값2, ...)
BETWEEN A AND B
NOT BETWEEN A AND B
🔤 문자열 비교
LIKE '%문자%'
LIKE '_문자'
ESCAPE '\'
NOT LIKE
🔤 문자열 비교
LIKE '%문자%'
LIKE '_문자'
ESCAPE '\'
NOT LIKE
➕ 기타
🎯 NULL 관련
IS NULL
IS NOT NULL
🧹 중복 제거
SELECT DISTINCT 컬럼명 FROM 테이블;
🔢 산술 연산자
+ - * /
🔗 문자열 연결 연산자
컬럼1 || 컬럼2
⛓️ 연산자 우선순위
- 괄호
()
- 산술 연산자
- 비교 연산자
- 논리 연산자
✏️ 예시
SELECT ename, sal
FROM emp
WHERE deptno IN (10, 20)
AND sal BETWEEN 2000 AND 5000
ORDER BY sal DESC;