47일차 - SQL (DDL)

Yohan·2024년 4월 28일
0

코딩기록

목록 보기
69/156
post-custom-banner

1. 관계형 데이터베이스 개요

데이터베이스 (Database)

데이터베이스는 관련된 데이터들을 체계적으로 저장하고 관리할 수 있도록 구성된 데이터의 집합

DBMS (데이터베이스 관리 시스템)

데이터베이스를 관리하기 위한 소프트웨어 시스템
DBMS는 사용자와 데이터베이스 간의 인터페이스 역할을 하며, 데이터의 저장, 검색, 수정, 삭제 등을 수행

  1. 데이터 정의: 데이터베이스 스키마를 생성, 수정, 삭제할 수 있다.
  2. 데이터 조작: 데이터 삽입, 수정, 삭제, 검색 (crud)
  3. 데이터 보안: 데이터 접근 권한을 관리, 민감한 정보 보호 (사용자 접근 차단)
  4. 데이터 무결성: 데이터가 정확하고 일관성이 유지되게 함.
  5. 트랜잭션 관리: 여러 작업이 동시에 수행될 때 데이터의 일관성을 유지하고, 시스템 장애가 발생했을 때 데이터를 복구함

SQL (Structured Query Language)

관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 정의, 조작, 제어하기 위해 사용되는 표준화된 프로그래밍 언어

  1. DDL (Data Definition Language): 데이터베이스 스키마를 생성, 변경, 삭제하기 위한 명령어
  2. DML (Data Manipulation Language): 데이터를 검색, 삽입, 수정, 삭제하기 위한 명령어
  3. DCL (Data Control Language): 데이터베이스 사용자의 권한을 관리하기 위한 명령어
  4. TCL (Transaction Control Language): 데이터베이스 트랜잭션을 관리하기 위한 명령어
  • DDL (데이터 정의어)
    -> 테이블의 구조를 정의하는 명령어

데이터베이스 테이블

테이블의 구성요소

  1. 행 (Row): 행은 데이터베이스 테이블에서 개별 레코드
  2. 열 (Column): 열은 데이터베이스 테이블에서 특정 속성. 각 열은 이름과 데이터 타입을 가지며, 제약 조건이나 기본값 등 추가 속성 설정가능
  3. 기본 키 (Primary Key): 기본 키는 테이블에서 각 행을 고유하게 식별하는 열입니다. 기본 키로 설정된 열은 NULL 값을 가질 수 없고, 각 행에 대해 고유한 값을 가져야 합니다.
  4. 외래 키 (Foreign Key): 외래 키는 다른 테이블의 기본 키를 참조하는 열입니다. 외래 키를 사용하면 서로 다른 테이블 간의 관계를 정의하고, 데이터 무결성을 유지할 수 있습니다.

2. DDL

CREATE TABLE문

  • 주요 데이터 타입
CREATE TABLE employees (
    employee_id NUMBER(6) PRIMARY KEY,
    first_name VARCHAR2(20),
    last_name VARCHAR2(25) NOT NULL,
    email VARCHAR2(25) NOT NULL UNIQUE,
    phone_number VARCHAR2(15),
    hire_date DATE NOT NULL,
    job_id VARCHAR2(10) NOT NULL,
    salary NUMBER(8, 2),
    commission_pct NUMBER(2, 2),
    manager_id NUMBER(6),
    department_id NUMBER(4)
);

테이블 이름 생성 규칙

  1. 유효한 문자 사용: 테이블 이름은 알파벳, 숫자, 밑줄(_)로 구성되어야 합니다. 특수 문자나 공백을 사용하지 않는 것이 좋습니다.
  2. 첫 글자: 테이블 이름은 알파벳 문자로 시작해야 합니다. 숫자나 밑줄로 시작하는 이름은 피하세요.
  3. 길이 제한: 테이블 이름은 일반적으로 길이 제한이 있습니다. 이 제한은 데이터베이스 시스템마다 다르지만, 일반적으로 30자 이내의 길이로 제한됩니다.
  4. 의미 있는 이름 사용: 테이블 이름은 데이터를 담고 있는 내용을 명확하게 설명할 수 있도록 의미 있는 이름을 사용하세요. 축약어는 가능한 피하고, 전체 단어를 사용하는 것이 좋습니다.
  5. 단수/복수형 일관성: 테이블 이름에 단수형 또는 복수형을 사용할 때 일관성을 유지하세요. 팀 내에서 사용하는 규칙을 명확하게 정하고 따르는 것이 좋습니다.
  6. 예약어 피하기

제약조건

ALTER문

  • 테이블에 열 추가, 수정, 삭제
  • 제약 조건 추가, 수정, 삭제

-- 열 추가
ALTER TABLE employees ADD (middle_name VARCHAR2(20));

-- 열 삭제
ALTER TABLE employees DROP COLUMN middle_name;

-- 데이터 타입 변경
ALTER TABLE employees MODIFY (first_name VARCHAR2(30));

-- 제약 조건 추가
ALTER TABLE employees ADD CONSTRAINT emp_email_unique UNIQUE (email);

-- 제약 조건 삭제
ALTER TABLE employees DROP CONSTRAINT emp_email_unique;

DROP TABLE, TRUNCATE TABLE, RENAME

DROP TABLE

  • 데이터베이스에서 테이블을 완전히 삭제
    -> 테이블의 구조, 인덱스, 제약 조건 등 모두 삭제
DROP TABLE employees;

RENAME

  • RENAME문은 테이블의 이름을 변경
RENAME employees TO staff;

TRUNCATE TABLE

  • TRUNCATE TABLE문은 테이블의 모든 데이터만 빠르게 삭제
    -> 테이블의 구조, 인덱스, 제약 조건 등은 그대로 유지
TRUNCATE TABLE employees;
profile
백엔드 개발자
post-custom-banner

0개의 댓글