[DBMS]SQL 기초

Date:     Updated:

카테고리:

태그:

[7] SQL 기초

7.1. 데이터 타입

  • 테이블에 데이터가 저장되는 형태
  • 데이터 유형
  • 문자형
    • CHAR(길이) : 고정길이 문자열 저장
    • CHARATER(길이)
      • 예) CHAT(5) : 컬럼에 4자리 문자열을 저장하면 맨 끝이 1자리가 공백으로 채워짐
    • VARCHAR(길이) : 가변길이 문자열 저장
    • CHARCTER VARCHAR(길이)
      • 예) VARCHAR(5) : 컬럼에 4자리 문자열을 저장하면 4자리 문자열만 저장함
    • TEXT : 길이 제한이 없는 가변길이 문자열 저정
      • VARCHAR
  • 숫자형
    • NUMERIC(총자리수, 소수점자릿수)
      • 예) NUMERIC(7,3) : 최대 9999.999 까지 저장
    • NUMERIC(총자리수)
      • 예) NUMERIC(7) : 최대 9999999 까지 저장
    • SMALLINT : 정수형 데이터 저장 , 크기는 2BYTE
    • INTEGER , INT : 크기는 4BYTE
    • BIGINT (스토리지 용량 많이 사용, DBMS 성능 저하)
    • SERIAL
      • 데이터가 저장될때 순차적으로 유일한 숫자(번호)가 저장
  • 날짜형
    • DATE
      • 날짜값 저장
      • 일자 데이터를 저장
      • yyyy-mm-dd (2020-09-21) 과 같은 형식 사용
    • TIME
    • TIME(정밀도)
      • 시간값 저장
      • 시간 데이터 저장
      • 시간값 최대 6자리의 정밀도를 가짐
    • TIMESTAMP
      • 일자와 시간 데이터를 모두 저장
    • TIMESTAMPTZ
      • 시간대(TIMEZONE)가 없는 년월일시분초.마이크로세컨드 저장
    • TIMESTAMP’Z’?
      • 시간대(TIMEZONE)가 있는 년월일시분초.마이크로세컨드 저장
    • INTERVAL
      • 시간 간격
  • BOOLEAN 형
    • BOOLEAN
      • 참과 거짓의 값을 저장

7.2. 테이블 생성

  • 제약조건
    • 테이블을 구성하는 각각의 컬럼들은 제약조건을 가질 수 있음.
      • NOT NULL
        • 컬럼의 값이 NULL이 들어갈수 없다.
        • 반드시 데이터 값이 들어가야 함.
      • UNIQUE
        • UNIQUE 컬럼에 들어가는 값은 테이블 내에서 유일함을 보장함
        • 해당 제약 조건이 있는 컬럼의 값은 테이블 내에서 유일해야 한다
      • PRIMARY KEY
        • NOT NULL + UNIQUE 한 값이 들어가는 것을 보장함
      • CHECK
        • 해당 제약 조건이 있는 컬럼은 지정하는 조건에 맞는 값이 들어가야 함.
        • 컬럼의 값이 사용자가 지정하는 특정 표현식을 만족하는 데이터가 들어감.
        • ex) 학점 컬럼은 0.00 ~ 4.50 범위의 값만 허용함
      • FOREIGN KEY
        • 해당 칼럼의 값은 참조하는 부모 테이블에 PK로써 존재하는 것을 보장함
      • REFERENCES
        • 해당 제약 조건이 있는 컬럼의 값은 참조하는 테이블의 특정 컬럼에 값이 존재해야 함
  • CTAS (CREATE TABLE AS SELECT)
    • SELECT 문을 기반으로 하는 CREATE TABLE 할수 있는 CREATE 문
    • 문법

      CREATE TABLE NEW_TABLE
      AS
      SELECT 
      
      CREATE TABLE IF NOT EXISTS NEW_TABLE
      AS
      SELECT 
      

7.3. 테이블 수정

  • 컬럼에 대한 ADD, DROP, RENAME
  • 컬럼에 대한 CHECK 제약조건 추가
  • 컬럼에 대한 UNIQUE 제약조건 추가

7.4. 테이블 내용(데이터) 비우기

  • TRUNCATE table : 데이터 비우기
  • drop table : 테이블 삭제
  • drop table if exists : 오류 대신 ‘테이블 없음, 무시함’ 뜸
  • delete from 조건 : 튜플 단위 삭제

7.5. 테이블 복사 명령

  • 기존 테이블의 테이블 구조 및 데이터를 복사. 단, 제약조건은 복사 안됨.

7.6. 기본키 (PK, PRIMARY KEY)

  • 테이블내에서 고유하게 행을 식별하는데 사용되는 컬럼 또는 컬럼들의 조합
  • 테이블 생성 + 기본키 지정
  • 테이블 생성 + 기본키 지정 + 제약조건명 정의
  • 테이블 생성, 기본키지정(ALTER TABLE + ADD)
  • 테이블 생성, 데이터 입력, SERIAL 형싱의 기본키 추가

7.7. 외래키 (FK, FOREIGN KEY)

  • (부모) 테이블의 기본키를 참조하는 (자식)테이블의 컬럼 또는 컬럼들의 조합
    • 부모/자식 테이블 생성 및 외래키 생성 옵션 - NO ACTION : 삭제 안됨
    • 부모/자식 테이블 생성 및 외래키 생성 옵션 - SET NULL : 삭제 후 NULL 채움
    • 부모/자식 테이블 생성 및 외래키 생성 옵션 - CASCADE : 종속된 자식것까지 삭제

7.8. CHECK 체크 제약조건

  • 컬럼값에 대한 제약을 거는 것임

7.9. UNIQUE 제약조건

  • 컬럼 혹은 컬럼 조합에 대한 유니크 제약을 거는 것임.
  • 유니크 제약이 걸린 컬럼 혹은 컬럼 조합에 대한 인덱스가 자동으로 생성됨.

7.10. NOT NULL

  • 특정 칼럼에 값이 NULL 이 들어오는 것을 차단
  • NULL
    • 알 수 없거나 정보가 누락되었음
    • 빈 문자열이나 숫자 0 과는 다름
  • NULL 비교
    • 특정 컬럼 값이 NULL 인지 아닌지 비교하는 방법
    • IS NULL : NULL 인지 판단
    • IS NOT NULL : NULL 이 아닌지 판단

DBMS 카테고리 내 다른 글 보러가기

댓글 남기기