DB가 복잡해지다보면, 모든 스키마를 외우고 있을 수는 없다.
그래서 테이블들의 스키마를 조회하게되는 경우가 많아지는데, 그 중에서도 실무에서 자주 사용하는 테이블에 적용되어있는 Key 특성을 조회하는 쿼리들을 정리해보았다.
(1) SHOW INDEXES IN "table이름"
: 해당 DB 내에서 사용해야하며, 테이블에 정의되어있는 Key 가 걸려있는 Column과, Cardinality 등까지 자세한 정보를 제공해준다.
(2) SELECT * FROM Information_schema.table_constraints
: DB를 관리할 수 있다면 Information Schema 를 조회하는 방법은 알아두는게 좋다. 굳이 포스팅에서 다루는 Key 조회 이외에도 Information Schema 는 많은 정보를 담고 있다.
다음과 같이 테이블에 대한 정보를 얻어낼 수 있다.
SELECT * FROM Information_schema.table_constraints WHERE table_schema="db이름”;
SELECT * FROM Information_schema.table_constraints WHERE table_schema="db이름” AND table_name="table이름";
(3) SHOW CREATE TABLE "table이름";
: 이 쿼리가 사실 만능이라고 여겨진다. (강조) 세부적인 정보를 도출하기는 힘들지만, 가장 쉽게 자주 필요한 정보들을 조회할 수 있다.
이 쿼리는 테이블 생성 쿼리를 그대로 보여준다.
개인적으로 가장 많이 사용하는 쿼리는 3번의 SHOW CREATE TABLE 구문이지만, 가장 강력한 건 Information_schema 정보를 다룰줄 아는것이다.
다양한 MySQL 의 시스템 테이블들과의 JOIN 연산을 통해 스키마 정보를 디테일하게 추출해낼 수 있으며, 이는 좀 더 자세하게 다룰 예정이다.
MySQL MariaDB/DB,Table 정보
2021. 8. 13.
#--- primary, foreign key 조회 (테이블별)
SELECT *
FROM information_schema.table_constraints
WHERE table_name = '테이블명';
#--- primary, foreign key 조회 (테이터베이스 별)
SELECT *
FROM information_schema.table_constraints
WHERE constraint_schema = '테이블명';
CONSTRAINT_CATALOG | nvarchar (128 ) | 제약 조건자. |
CONSTRAINT_SCHEMA | nvarchar ( 128 ) | 제약 조건을 포함하는 스키마의 이름 |
CONSTRAINT_NAME | sysname | 제약 조건 이름. |
TABLE_SCHEMA | nvarchar ( 128 ) | 테이블을 포함하는 스키마의 이름. |
TABLE_NAME | sysname | 테이블 이름 |
CONSTRAINT_TYPE | varchar ( 11 ) | 제약 유형: CHECK |
//docs.microsoft.com/en-us/sql/relational-databases/system-information-schema-views/table-constraints-transact-sql?view=sql-server-ver15
//mariadb.com/kb/en/information-schema-table_constraints-table/
Mysql에서 PK,FK 등 제약조건, Index 확인, PK 특징아우 ・ 2018. 9. 3. 14:06 1. mysql 테이블 컬럼, 자료형, null, 기본값, 제약조건 등 확인
|