SQLD/2과목 SQL 기본 및 활용

[SQLD]Ⅱ- 1장 SQL 기본 - 2절 DDL(DATA DEFINITION LANGUAGE)

ss__jae2 2022. 3. 29. 17:43
반응형

1. 데이터 유형

- 데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 자료의 유형별로 나누는 기준

  • 자주 쓰이는 데이터 유형
    자주 쓰이는 데이터 유형
  • CHAR vs VARCHAR
    • VARCHAR 유형은 가변 길이이므로 필요한 영역은 실제 데이터 크기뿐이다.
      그렇기 때문에 길이가 다양한 칼럼과, 정의된 길이와 실제 데이터 길이에 차이가 있는 칼럼에 적합하다.
      저장 측면에서도 CHAR 유형보다 작은 영역에 저장할 수 있으므로 장점이 있다.
    • 문자열의 비교 방법
      • CHAR에서는 문자열을 비교할 때 공백(BLANK)을 채워서 비교
      • VARCHAR 유형에서는 맨 처음부터 한 문자씩 비교하고 공백도 하나의 문자로 취급하므로 끝의 공백이 다르면 다른 문자로 판단
    • CHAR 유형 : 'AA' = 'AA      '
    • VARCHAR 유형 : 'AA' ≠ 'AA      '

2. CREATE TABLE

- 테이블 및 칼럼 생성 명령어

  • 테이블 및 칼럼 명명 규칙
    구문형식
    • 테이블명은 객체를 의미할 수 있는 적절한 이름을 사용하고 가능한 단수형을 권고함
    • 테이블 명은 다른 테이블의 이름과 중복되지 않아야 함
    • 한 테이블 내에서는 칼럼명이 중복되게 지정될 수 없음
    • 각 칼럼들은 콤마 ","로 구분되고, 테이블 생성문의 끝은 항상 세미클론 ";"으로 끝남
    • 칼럼 뒤에 데이터 유형은 꼭 지정되어야 함
    • 테이블명과 칼럼명은 반드시 문자로 시작해야 하고, 벤더별로 길이에 대한 한계가 있음
    • 예약어는 쓸 수 없고 A-Z, a-z, 0-9, _, $, # 문자만 허용
  • 제약조건
    제약조건
    • NULL 의미
      - NULL은 공백이나 숫자 0과는 전혀 다른 값이며, 조건에 맞는 데이터가 없을 때의 공집합과도 다르다.
      - 'NULL'은 '아직 정의되지 않은 미지의 값'이거나 '현재 데이터를 입력하지 못하는 경우'를 의미한다.
    • DEFAULT 의미
      - 데이터 입력 시에 칼럼의 값이 지정되어 있지 않을 경우 기본값(DEFAULT)을 사전에 설정할 수 있다.
      - 데이터 입력시 명시된 값을 지정하지 않은 경우 NULL 값이 입력된다.
      - DEFAULT 값을 정의했다면 해당 칼럼에 NULL값이 입력되지 않고 사전에 정의된 기본값이 입력된다.
  • 생성된 테이블 구조 확인
    - Oracle의 경우 "DESCRIBE 테이블명;"
    - SQL Server의 경우 "sp_help 'dbo.테이블명'"
  • 예시
    테이블 조건
    테이블 생성
    생성된 테이블 구조 확인
  • SELECT 문장을 통한 테이블 생성(복사)
    SELECT 문장을 통한 테이블 생성

3. ALTER TABLE

- 테이블 칼럼 관련 변경 명령어

  • 칼럼 추가
    - 마지막 칼럼으로 추가됨(칼럼 위치 지정 불가)
    구문형식
    칼럼 추가
  • 칼럼 삭제
    - 삭제 후 복구 불가
    구문형식
    칼럼 삭제
  • 칼럼 설정 변경
    - NULL만 있거나 행이 없는 경우에만 칼럼의 크기 축소 가능
    - NULL만 있을 때는 데이터 유형도 변경 가능
    - NULL이 없으면 NOT NULL 제약조건 추가 가능
    - 기본값 변경 작업 이후 발생하는 데이터에 대해서만 기본값이 변경됨
    구문형식
    칼럼 설정 변경
  • 칼럼명 변경
    구문형식
    구문형식(SQL Server
    칼럼명 변경
  • 제약조건 추가
    구문형식
    제약조건 추가
  • 제약조건 제거
    구문형식
    제약조건 제거

4. RENAME TABLE

- 테이블명 변경

구문형식
테이블명 변경

5. DROP TABLE

- 테이블의 데이터화 구조 삭제, 복구 불가

- CASCADE CONSTRAINT 옵션으로 관련 테이블의 참조 제약조건도 삭제하여 참조 무결성을 준수할 수 있음

구문형식
테이블 구조 삭제

6. TRUNCATE TABLE

- 테이블의 전체 데이터 삭제(↔ DROP TABLE은 테이블 자체를 제거함 )

- 로그를 기록하지 않기 때문에 ROLLBACK 불가

구문형식
전체 데이터 삭제(로그 기록 X)

반응형