개발/SQL

📝 SQL의 주요 개념

예니03 2025. 2. 24. 08:21
반응형

SQL(Structured Query Language)은 데이터베이스 관리 시스템(DBMS)에서 데이터를 생성, 조회, 수정, 삭제하기 위해 사용되는 표준 언어입니다. 주로 관계형 데이터베이스(Relational Database)에서 데이터를 관리하고 조작할 때 사용합니다.

1. SQL의 구성 요소 (명령어 분류)

SQL은 기능에 따라 여러 종류로 나뉩니다.

분류 설명 예시

분류 설명 예시
DDL (Data Definition Language) 데이터베이스 구조(스키마, 테이블 등)를 정의 CREATE, ALTER, DROP, TRUNCATE
DML (Data Manipulation Language) 데이터 조회 및 조작 SELECT, INSERT, UPDATE, DELETE
DCL (Data Control Language) 권한 및 보안 관리 GRANT, REVOKE
TCL (Transaction Control Language) 트랜잭션 제어 COMMIT, ROLLBACK, SAVEPOINT

 

2. 기본 개념 및 용어

  • 데이터베이스 (Database): 데이터를 저장하는 공간. 여러 테이블을 포함.
  • 테이블 (Table): 데이터가 행(row)과 열(column)로 구성된 구조.
  • 행(Row)/레코드(Record): 테이블 내의 한 데이터 단위 (데이터 한 줄).
  • 열(Column)/필드(Field): 데이터 속성이나 항목.
  • 스키마 (Schema): 데이터베이스 내 객체들의 논리적 구조 (테이블, 뷰, 인덱스 등 포함).
  • 뷰(View): SELECT 쿼리 결과를 저장한 가상 테이블.

 

3. SQL의 핵심 개념

🗂️ 관계형 데이터베이스(RDB)

  • 데이터를 테이블(관계) 형태로 저장하며, 각 테이블은 기본 키(primary key)로 식별됩니다.
  • 테이블 간의 관계는 **외래 키(Foreign Key)**로 연결합니다.

📑 트랜잭션(Transaction)

  • 데이터베이스에서 하나의 작업 단위를 의미하며, ACID 속성을 가집니다.
    • A(Atomicity): 원자성 – 모두 성공하거나 모두 실패.
    • C(Consistency): 일관성 – 트랜잭션 전후에 데이터 일관성 유지.
    • I(Isolation): 독립성 – 동시에 실행 시 서로 영향 없음.
    • D(Durability): 지속성 – 성공 시 영구 반영.

🔑 키(Key)

  • 기본 키 (Primary Key): 테이블 내 각 행을 고유하게 식별.
  • 외래 키 (Foreign Key): 다른 테이블의 기본 키를 참조하여 관계 설정.
  • 고유 키 (Unique Key): 중복 불가하지만 NULL 허용.
  • 복합 키 (Composite Key): 여러 열을 결합해 유일성 확보.

 

4. 자주 쓰는 SQL 명령어 예시

📄 데이터 조회 (SELECT)

SELECT name, age FROM employees WHERE age > 30 ORDER BY age DESC;
  • WHERE: 조건 지정
  • ORDER BY: 정렬
  • LIMIT: 결과 제한

데이터 추가 (INSERT)

INSERT INTO employees (id, name, age) VALUES (1, 'John', 28);

✏️ 데이터 수정 (UPDATE)

UPDATE employees SET age = 29 WHERE id = 1;

🗑️ 데이터 삭제 (DELETE)

DELETE FROM employees WHERE id = 1;

🏗️ 테이블 생성 (CREATE)

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

 

 

5. 함수와 집계 (Functions & Aggregation)

  • 집계 함수: COUNT(), SUM(), AVG(), MAX(), MIN()
  • 문자열 함수: CONCAT(), SUBSTR(), UPPER(), LOWER()
  • 날짜 함수: SYSDATE, TO_DATE(), MONTHS_BETWEEN()
  • 숫자 함수: ROUND(), TRUNC(), MOD()

 

6. 인덱스와 성능 최적화

  • 인덱스(Index): 검색 속도를 빠르게 하지만, 삽입/수정 시 성능 저하 가능.
  • 뷰(View): 복잡한 쿼리를 단순하게 사용 가능.

 

7. 관계형 데이터베이스의 제약조건 (Constraints)

  • NOT NULL: NULL 값 허용하지 않음.
  • UNIQUE: 중복 값 허용하지 않음.
  • CHECK: 특정 조건 만족 여부 확인.
  • DEFAULT: 값 미입력 시 기본 값 지정.

 

정리:
SQL은 데이터베이스와 소통하는 언어로, 데이터를 효과적으로 생성, 조회, 수정, 삭제할 수 있게 도와줍니다. DML을 주로 사용하지만, DDL, DCL, TCL을 적절히 사용하면 데이터 관리와 보안, 트랜잭션 제어까지 체계적으로 할 수 있어요.

반응형