[SQL] information_schema

DeMar_Beom·2023년 10월 20일
0

SQL

목록 보기
13/17

information_schema

메타데이터(metadata)

  • 데이터의 종류가 너무 많아질 경우 이를 목록화하여 확인할 수 있도록 생겨난 것이 바로 메타데이터(metadata)
  • 메타데이터는 데이터베이스와 같이 빅데이터를 다뤄야 하는 경우에 효율적인 처리를 위해 만든 "정보에 대한 정보"

MySQL의 메타데이터

  • MySQL은 메타데이터들을 종류별로 묶어 테이블을 만들고, 이 테이블을 모아 데이터베이스를 생성
  • 이러한 데이터베이스가 information_schema
  • information_schema 데이터베이스 내의 모든 테이블은 읽기 전용이며, 단순 조회만 가능(사용자 수정 불가)
use information_schema;
show tables;

information_schema 주요 테이블

  • COLUMNS : 모든 스키마의 컬럼 확인
  • ENGINES : 사용되는 엔진 확인
  • EVENTS : 생성된 EVENT(스케줄) 확인
  • KEY_COLUMN_USAGE : 사용된 키 컬럼 확인
  • PROCESSLIST : 수행중인 프로세스 리스트
  • SCHEMATA : 생성된 스키마 확인
  • SCHEMA_PRIVILEGES : 스키마 권한 확인
  • TABLES : 생성된 모든 테이블 정보
  • TABLE_PRIVILEGES : 테이블 권한 확인
  • TRIGGERS : 생성된 트리거 확인 가능
  • USER_PRIVILEGES : 사용자 권한 정보
  • VIEWS : 생성된 뷰 정보

information_schema 주요 명령어

현재 MySQL서버 접속 유저목록 출력

select user()

사용자의 권한 확인

SELECT grantee,privilege_type,is_grantable FROM information_schema.user_privileges;

해당 스키마의 테이블 목록 확인

# `project`스키마의 테이블 목록 확인
SELECT * FROM information_schema.`TABLES`
WHERE information_schema.`TABLES`.TABLE_SCHEMA = 'project';

해당 스키마의 모든 컬럼 출력

SELECT table_name,column_name FROM COLUMNS WHERE table_schema='project';

0개의 댓글