SQL 7

[데이터베이스] 06. 데이터베이스 언어 SQL

관계 데이터베이스에서 데이터를 다루려면 결국 사람이 타이핑할 수 있는 언어가 필요하다. 그 표준 언어가 SQL(Structured Query Language)이다.SQL은 데이터베이스를 다루는 사람이라면 반드시 손에 익혀야 하는 도구다. 오늘은 SQL의 전체 지도(세 가지 분류)와 핵심 문장들을 정리했다.여기서는 "SQL이 어떻게 구조화되어 있는가"라는 큰 틀에 집중한다. 실제 환경에서 함수·조인·서브쿼리를 손으로 다루는 실습은 범위를 벗어나므로 따로 다룬다.1. SQL의 분류모든 SQL 문장은 역할에 따라 셋 중 하나에 속한다.분류대표 명령역할대상DDL (Data Definition Language, 정의어)CREATE, ALTER, DROP테이블·스키마 구조 정의틀(스키마)DML (Data Manip..

data/database 2026.09.01

[데이터베이스] 05. 관계 데이터 연산

데이터를 표(릴레이션)로 저장했으니, 이제 그 표에서 원하는 데이터를 꺼내는 방법을 정의할 차례다.관계 데이터 연산은 "릴레이션을 입력받아 릴레이션을 출력하는" 연산들의 체계다. 다소 수학적이고 추상적이라 처음엔 "이걸 왜 배우나" 싶었다.그런데 우리가 매일 쓰는 SQL의 SELECT가 사실 이 연산들이 옷을 갈아입은 모습이었다. 이 토대를 알아두니 SQL이 내부에서 무슨 일을 하는지가 보였다.1. 관계 대수 vs 관계 해석원하는 데이터를 표현하는 방식에는 두 갈래가 있다. 이 구분은 프로그래밍의 "명령형 vs 선언형"과 정확히 같다.구분성격표현하는 것관계 대수(Relational Algebra)절차적어떻게(How) 얻을지, 즉 연산 순서를 명시관계 해석(Relational Calculus)비절차적무엇(..

data/database 2026.08.25

[데이터베이스실습] 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

[데이터베이스실습] 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

[데이터베이스실습] 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