관계형 데이터베이스와 SQL

 

1. Database(데이터베이스)

 

데이터베이스는 데이터를 체계적이고 구조적으로 저장하며, 관리할 수 있도록 만든 데이터의 집합이다.

 

1-1) DBMS : Database Management System 

 

DBMS는 데이터를 효과적으로 관리하기 위한 시스템을 말하며, 데이터베이스를 생성, 수정, 저장, 검색할 수 있도록 해주는 소프트웨어 시스템이다. 데이터를 구조화된 형태로 저장하고, 효율적으로 관리할 수 있게 해주며, 많은 양의 데이터를 빠르게 검색하거나, 보안 및 무결성을 유지하면서 데이터를 처리하는 데 강점이 있다. 

종류) 계층형데이터베이스, 망형데이터베이스, 관계형데이터베이스 

 

1-2) RDBMS : Relational Database Management System

 

RDBMS는 관계형 데이터베이스 관리 시스템이며, 데이터를 행과 열로 구성된 테이블 형태로 저장하고, 관계를 통해 데이터를 연결해준다.

 

📌 특징 

- 데이터의 분류, 정렬, 탐색 속도가 빠름

- 신뢰성이 높고, 데이터의 무결성 보장

- 기존의 작성된 스키마를 수정하기 어려움

- 데이터베이스의 부하를 분석하는 것이 어려움

 

2. SQL

 

관계형 데이터베이스(RDBMS)에서 데이터를 조회하거나 조작하고, 데이터베이스 시스템을 관리하는 데 사용하는 표준 언어입니다.  비 절차적 언어로 무엇을 하는지에 대해서는 명시하지만 어떻게 할지에 대해서는 명시하지않는다. 

 

2-1 SQL(Structured Query Language)

 

  • DML(Data Manipulation Language)  : SELECT , INSERT, UPDATE, DELETE
  • DDL(Data Definition Language) : CREATE, ALTER, DROP, RENAME
  • DCL(Data Control Language) : GRANT, REVOKE
  • TCL(Transaction Control Language) : COMMIT, ROLLBACK 

2-2 SELECT문의 구조

 

SELECT * | [DISTINCT] 컬럼|수식 [AS 별명], ...... FROM 테이블명;

 

  • SELECT 절에는 출력 대상을 기술하며, * 단독으로만 쓰인다. 
  • FROM 절에는 테이블 명을 기술한다.
  • 모든테이블을검색한다. > SELECT * FROM tab;
  • 테이블구조를검색한다. > DESC 테이블;
  • SQL 문은반드시 ';' 으로끝난다.
  • SQL 문은 대소문자를 구별하지 않는다.
  • SQL 문은 여러 줄에 기술 가능하다.
  • SQL 문은 반드시 결과(출력)가 존재한다.
  • SQL문 뿐 아니라 검색 결과도 문제가 없어야한다.
  • 검색 결과는 질의의 의미가 충족돼야한다.
  • 검색 결과는 구분이 돼야한다. - 무결성
  • SELECT 절에 컬럼이 없는 경우 FROM절에는 더미 테이블명인 dual을이용한다. > SELECT [수식] FROM dual;
  • 별명(AS)을 이용한 검색에서 AS는 생략 가능하다.
  • 중복 제거 > DISTINCT는 중복된 행은 한번만 검색한다.

3. NULL이 포함된 연산

  • NULL은 결정되지않은(알수없는, 미지의,..)값을 의미한다.
  • NULL의 연산결과는 NULL이다.
  • NULL은 공백이나 0 또는 False와 다르다.
  • 보안상 부정으로 간주될 수있다.
  • 예) NVL 함수 : 컬럼의 값이 NULL이면 치환값으로 바꾼다.

 

4. 연결 연산자를 이용한 검색

  • 연결 연산자(||)는 리터럴이나 컬럼을 하나의 문자열로 검색한다.
  • 리터럴이란 SQL문에 쓰인문자, 숫자, 날짜를 의미한다.
  • 연결 연산자는 SELECT 문을 이용하며, 다양한 문장을 만들 때 많이 사용된다.

예) SQL> SELECT ename||sal 이름_급여 

FROM emp;

 

 

'SQL' 카테고리의 다른 글

서브쿼리, 집합 연산자 ,단일 행 함수 , GROUP BY, HAVING  (1) 2025.10.08
ORDER BY , WHERE 절 , JOIN  (0) 2025.10.06