SQL#INFORMATION_SCHEMA

codataffee·2024년 7월 10일
0

SQL

목록 보기
19/19
post-thumbnail

개요


📌 INFORMATION_SCHEMA


1. 정의

INFORMATION_SCHEMA

  • SQL 표준의 일부로, 데이터베이스 메타데이터에 접근할 수 있는
    여러 시스템 뷰들을 제공하는 스키마이다.

  • 이를 통해 사용자는
    데이터베이스의 구조, 테이블, 컬럼, 인덱스, 제약 조건 등
    다양한 정보를 조회할 수 있다.


2. 주요 테이블 및 설명

  1. TABLES
  • 설명: 데이터베이스의 테이블에 대한 정보를 포함

  • 주요 컬럼:

    • TABLE_CATALOG: 테이블이 속한 카탈로그

    • TABLE_SCHEMA: 테이블이 속한 스키마

    • TABLE_NAME: 테이블의 이름

    • TABLE_TYPE: 테이블의 유형 (BASE TABLE, VIEW 등)


  1. COLUMNS
  • 설명: 데이터베이스의 모든 테이블에 있는 컬럼에 대한 정보를 포함

  • 주요 컬럼:

    • TABLE_CATALOG: 컬럼이 속한 테이블의 카탈로그

    • TABLE_SCHEMA: 컬럼이 속한 테이블의 스키마

    • TABLE_NAME: 컬럼이 속한 테이블의 이름

    • COLUMN_NAME: 컬럼의 이름

    • DATA_TYPE: 컬럼의 데이터 타입

    • COLUMN_DEFAULT: 컬럼의 기본값

    • IS_NULLABLE: 컬럼이 NULL 값을 허용하는지 여부


  1. SCHEMATA
  • 설명: 데이터베이스의 스키마에 대한 정보를 포함

  • 주요 컬럼:

    • CATALOG_NAME: 카탈로그의 이름

    • SCHEMA_NAME: 스키마의 이름

    • DEFAULT_CHARACTER_SET_NAME: 스키마의 기본 문자 세트

    • DEFAULT_COLLATION_NAME: 스키마의 기본 콜레이션


  1. STATISTICS
  • 설명: 테이블의 인덱스에 대한 정보를 포함

  • 주요 컬럼:

    • TABLE_CATALOG: 인덱스가 속한 테이블의 카탈로그

    • TABLE_SCHEMA: 인덱스가 속한 테이블의 스키마

    • TABLE_NAME: 인덱스가 속한 테이블의 이름

    • NON_UNIQUE: 인덱스가 고유 인덱스인지 여부

    • INDEX_NAME: 인덱스의 이름

    • SEQ_IN_INDEX: 인덱스에서의 컬럼 순서

    • COLUMN_NAME: 인덱스가 적용된 컬럼의 이름


  1. TABLE_CONSTRAINTS
  • 설명: 테이블 제약 조건에 대한 정보를 포함

  • 주요 컬럼:

    • CONSTRAINT_CATALOG: 제약 조건이 속한 카탈로그

    • CONSTRAINT_SCHEMA: 제약 조건이 속한 스키마

    • CONSTRAINT_NAME: 제약 조건의 이름

    • TABLE_NAME: 제약 조건이 적용된 테이블의 이름

    • CONSTRAINT_TYPE: 제약 조건의 유형 (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK 등)


  1. REFERENTIAL_CONSTRAINTS
  • 설명: 외래 키 제약 조건에 대한 정보를 포함

  • 주요 컬럼:

    • CONSTRAINT_CATALOG: 제약 조건이 속한 카탈로그

    • CONSTRAINT_SCHEMA: 제약 조건이 속한 스키마

    • CONSTRAINT_NAME: 제약 조건의 이름

    • UNIQUE_CONSTRAINT_CATALOG: 참조되는 고유 제약 조건이 속한 카탈로그

    • UNIQUE_CONSTRAINT_SCHEMA: 참조되는 고유 제약 조건이 속한 스키마

    • UNIQUE_CONSTRAINT_NAME: 참조되는 고유 제약 조건의 이름

    • UPDATE_RULE: 외래 키의 업데이트 규칙

    • DELETE_RULE: 외래 키의 삭제 규칙


  1. KEY_COLUMN_USAGE
  • 설명: 키 컬럼 사용에 대한 정보를 포함

  • 주요 컬럼:

    • CONSTRAINT_CATALOG: 제약 조건이 속한 카탈로그

    • CONSTRAINT_SCHEMA: 제약 조건이 속한 스키마

    • CONSTRAINT_NAME: 제약 조건의 이름

    • TABLE_NAME: 컬럼이 속한 테이블의 이름

    • COLUMN_NAME: 컬럼의 이름

    • ORDINAL_POSITION: 키에서의 컬럼 순서

    • POSITION_IN_UNIQUE_CONSTRAINT: 고유 제약 조건에서의 위치


3. 예시 쿼리

모든 테이블 목록 조회

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'database_name'

특정 테이블의 컬럼 목록 조회

SELECT COLUMN_NAME
	 , DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'table_name'

모든 인덱스 목록 조회

SELECT TABLE_NAME
	 , INDEX_NAME
     , COLUMN_NAME 
FROM INFORMATION_SCHEMA.STATISTICS 
WHERE TABLE_SCHEMA = 'database_name'

외래 키 제약 조건 조회

SELECT TABLE_NAME
	 , COLUMN_NAME
     , CONSTRAINT_NAME
     , REFERENCED_TABLE_NAME
     , REFERENCED_COLUMN_NAME 
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME IS NOT NULL
profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보