data 9

[데이터베이스실습] 06. 다중행 함수와 그룹화

지금까지의 함수는 한 행을 받아 한 결과를 내는 단일행 함수였다. 이번에 다룬 다중행 함수(집계 함수)는 여러 행을 묶어 하나의 값으로 요약한다. "부서별 평균 급여", "직책별 인원 수" 같은 통계가 모두 여기서 나온다.그리고 이 집계를 "무엇을 기준으로 묶을지" 정하는 것이 GROUP BY, 묶은 결과에 조건을 거는 것이 HAVING이다.1. 다중행 함수 (집계 함수)함수설명SUM합계COUNT개수MAX최댓값MIN최솟값AVG평균SELECT SUM(sal) FROM emp; -- 급여 합계SELECT COUNT(*) FROM emp WHERE deptno=30; -- 30번 부서 인원SELECT MAX(sal), MIN(sal) FROM emp WHERE deptno=..

data/oracle 2026.08.06

[데이터베이스실습] 05. 오라클 함수 - 숫자·날짜·변환

문자 함수에 이어, 이번에는 숫자·날짜를 다루는 함수와 자료형을 서로 바꾸는 변환 함수, 그리고 NULL과 조건을 처리하는 함수를 정리했다. 실무 쿼리에서 "보기 좋은 형태로 가공하는" 일의 대부분이 여기서 이뤄진다고 한다.1. 숫자 함수함수설명ROUND(숫자, 위치)특정 위치에서 반올림 (생략 시 소수 첫째 자리)TRUNC(숫자, 위치)특정 위치에서 버림 (생략 시 소수 첫째 자리)CEIL(숫자)올림 (그보다 크거나 같은 가장 작은 정수)FLOOR(숫자)내림 (그보다 작거나 같은 가장 큰 정수)MOD(숫자, 나눌수)나눈 나머지SELECT ROUND(1234.5678, 2), -- 1234.57 TRUNC(1234.5678, 2), -- 1234.56 ROUND(1234.567,..

data/oracle 2026.07.30

[데이터베이스실습] 04. 오라클 함수 - 문자 함수

연산자만으로는 다루기 어려운 데이터 가공을, 오라클은 다양한 내장 함수(built-in function)로 지원한다. 함수는 처리 단위에 따라 두 갈래로 나뉜다.단일행 함수(single-row function): 한 행마다 하나의 결과. 문자·숫자·날짜 함수가 여기 속한다.다중행 함수(multiple-row function): 여러 행을 묶어 하나의 결과. COUNT·SUM 같은 집계 함수다.오늘은 그중 가장 자주 쓰는 문자 함수들을 예제와 함께 정리했다.DUAL 테이블로 함수 테스트하기함수 결과만 가볍게 확인하고 싶을 때, EMP 같은 실제 테이블에 대고 조회하면 14행이 똑같이 반복되어 번거롭다. 이럴 때 오라클이 제공하는 행 하나짜리 더미 테이블 DUAL을 쓰면 결과가 딱 한 줄 나온다.SELECT..

data/oracle 2026.07.23

[데이터베이스실습] 03. SELECT - WHERE 조건

SELECT가 데이터를 꺼내는 명령이라면, WHERE는 그중 원하는 행만 걸러내는 조건이다. 실무 쿼리의 난이도는 사실상 이 WHERE 절을 얼마나 정확히 쓰느냐에 달려 있다고 한다.이번엔 비교·논리 연산자부터 IN·BETWEEN·LIKE, 그리고 내가 가장 많이 헤맨 NULL 처리까지, 조건을 거는 도구들을 예제와 함께 익혔다.1. WHERE 절SELECT [열] FROM [테이블] WHERE [조건식];조건식이 참(TRUE)인 행만 결과에 포함된다.SELECT * FROM EMP WHERE DEPTNO = 30; -- 30번 부서 사원만SELECT * FROM EMP WHERE SAL >= 3000; -- 급여 3000 이상문자열은 작은따옴표, 대소문자 구분문자 데이터는 반드시 작은따옴표로 감..

data/oracle 2026.07.16

[데이터베이스] 03. 데이터 모델링 (개체-관계 모델)

테이블을 곧장 만들기 전에, "현실 세계의 무엇을 어떻게 데이터로 옮길 것인가"를 먼저 설계해야 한다. 이 설계 과정이 데이터 모델링이고, 그 첫 단추가 개체-관계(ER, Entity-Relationship) 모델이다.코드를 짜기 전에 그림을 그리는 단계라 처음엔 가볍게 봤는데, 여기서 구조를 잘못 잡으면 나중에 테이블·쿼리·정규화가 전부 어긋난다는 걸 알고 생각이 달라졌다. 오늘은 현실을 데이터로 번역하는 이 첫 단계를 정리했다.1. 데이터 모델링과 데이터 모델모델링은 추상도를 단계적으로 낮추며 진행된다. 현실에서 개념으로, 다시 논리로 내려가는 순서다. 단계데이터 모델결과물개념적개체-관계 모델(ER)E-R 다이어그램(ERD)논리적관계 데이터 모델릴레이션(테이블) 스키마 이 글은 첫 단계인 개념적 모델..

data/database 2026.07.09

[데이터베이스실습] 02. 테이블 기초와 SELECT

오늘부터 실제로 데이터를 꺼내봤다. SQL에서 데이터 조회를 담당하는 명령은 SELECT 하나인데, 이 한 명령어에 붙는 절(clause)들의 조합으로 거의 모든 조회가 이뤄진다.이번엔 실습 환경(SCOTT 계정)을 살펴보고, SELECT의 기본형부터 중복 제거·연산·별칭·정렬까지 손으로 따라가 봤다. 앞으로의 모든 실습이 이 SELECT 위에 쌓이니, 여기서 감을 확실히 잡아두는 게 좋겠다 싶었다.1. 실습용 계정과 테이블실습 환경DBMS → Oracle 11g Enterprise Edition실습 계정 → ID: SCOTT / PW: tigerDBeaver나 SQL*Plus로 접속해 DESC 테이블명; 으로 테이블 구조를 확인할 수 있다. SCOTT 계정에는 오라클 학습에서 수십 년간 표준으로 쓰여 ..

data/oracle 2026.07.05

[데이터베이스실습] 01. 데이터베이스 기초

이 시리즈는 오라클(Oracle)을 직접 다루며 SQL을 손에 익히는 실습 과정이다. 본격적으로 테이블을 만들고 쿼리를 던지기 전에, 첫 글에서는 무엇을 다루는가에 대한 토대를 잡는다.관계형 데이터베이스가 무엇이고, 데이터를 담는 그릇인 릴레이션이 어떤 규칙 위에 서 있으며, 데이터가 망가지지 않게 지키는 제약조건이 무엇인지를 짚어야한다. 이 토대가 흔들리면 이후의 SELECT·조인·서브쿼리가 전부 모래 위 집이 된다.여러명이 동시 사용할 수 있는, 검색이라는 목적을 가진.1. 데이터베이스와 DBMS데이터베이스와 DBMS데이터베이스: 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터(operational data)가 구조적으로 통합된 모임.DBMS: 데이터베이스를 정의하고, 질의어를 지원하며, 리포..

data/oracle 2026.06.26

[데이터베이스] 02. DBMS 데이터베이스 시스템

DBMS와 3단계 스키마데이터베이스는 여러 사용자를 위해 데이터를 통합·공유하고, 위치가 아닌 내용으로 데이터를 찾게 해준다. 그런데 누가 그걸 실현해줄까?사용자가 직접 디스크를 뒤져 데이터를 통합하고 동시 접근을 조율할 수는 없다. 그 일을 전담하는 소프트웨어가 바로 DBMS다.이 글에서는 DBMS가 무엇이고, 그것이 데이터를 세 층(3단계 스키마)으로 나눠 다루는 이유, 그리고 그 결과로 얻는 데이터 독립성이라는 핵심 가치를 살펴본다.1. DBMS와 발전 세대DBMS(DataBase Management System)란?데이터베이스를 관리하고, 사용자/응용 프로그램과 데이터베이스 사이를 중재하는 소프트웨어. 오라클·MySQL·PostgreSQL 등이 여기 해당한다. DBMS의 핵심 역할은 "사용자가 데..

data/database 2026.06.25

[데이터베이스] 01. 데이터베이스 기본 개념

데이터베이스를 흔히 "데이터의 집합"이라고 정의한다. 그런데 이 정의를 처음 만나면 자연스럽게 궁금해진다. 그럼 엑셀 파일이나 메모장에 적은 전화번호 목록도 데이터베이스라고 부를 수 있을까?이 글에서는 "그냥 데이터를 모아둔 것"과 "데이터베이스"를 가르는 기준이 무엇인지, 그리고 왜 굳이 파일 대신 데이터베이스라는 별도의 체계를 만들게 되었는지를 차근차근 짚어본다.이 출발점을 제대로 잡아두면, 데이터베이스가 갖춰야 할 여러 성질이 결국 "이 기준을 지키기 위한 장치"로 자연스럽게 이해된다.1. 데이터와 정보데이터(data) : 현실 세계에서 관찰·측정으로 수집한 사실이나 값 그 자체.정보(information) : 의사결정에 유용하도록 데이터를 처리·가공한 결과물. 둘의 차이는 "가공 여부"다. "오늘..

data/database 2026.06.24