728x90
사용자가 생성하지 않아도 DB의 메타 데이터를 가지고 있는 스키마가 있다. 개발을 하다보면 흔하게 마주칠 수 있는 녀석으로, INFORMATION_SCHEMA 스키마이다. 아래에 주로 필요한 경우를 나열하였다.
1. 테이블 정보(테이블명, 테이블이 속한 스키마 등) 조회
SELECT * FROM INFORMATION_SCHEMA.TABLES;
2. 컬럼 정보(컬럼명, 데이터타입과 데이터 크기, 기본값, NOT NULL 여부 등) 조회
SELECT * FROM INFORMATION_SCHEMA.COLUMNS;
3. 테이블 제약조건 조회
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS;
4. 테이블 인덱스 조회
cf. `TABLE_CONSTRAINTS`와 조인하여 해당 [Constraint Name]의 PK에 속하는 컬럼들을 조회할 수 있다.
SELECT * FROM INFORMATION_SCHEMA.STATISTICS;
5. CHECK 제약조건 조회
cf. `STATISTICS` 테이블과 조인하여 해당 [Constraint Name]의 PK에 속하는 컬럼들을 조회할 수 있다.
SELECT * FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS;
cf. CHECK CONSTRAINT : 컬럼 값의 제약을 걸 수 있는 기능. 여러가지 형태로 사용 가능하다.
ex 1)
CHECK([columnName] IN ('a', 'b')
ex 2)
CHECK([columnName] > 10 OR [columnName] <= 100)
cf. FOREIGN KEY를 조회할 때에는 INFORMATION_SCHEMA.`KEY_COLUMN_USAGE`에서 FOREIGN KEY의 ReferenceTable, ReferenceColumn 데이터를 확인하기도 하였다.
반응형
'Database > MySQL, MariaDB' 카테고리의 다른 글
MariaDB TIMESTAMP(Nullable 관련) (0) | 2023.05.11 |
---|---|
SQL) MySQL DDL - RENAME (0) | 2021.05.19 |
SQL) MySQL DDL - ALTER (0) | 2021.05.19 |