SQL
[MS-SQL] 전체 테이블 목록 / 각 테이블들의 칼럼 현황 조회
zzzin
2022. 4. 5. 22:13
DB를 쓰는데 해당 DB에 존재하는 전체 테이블 목록을 조회해보고 싶은 경우가 생겨 검색해보게 되었다.
이때는 INFORMATION_SCHEMA시스템 테이블을 조회해서 해당 목록을 추출 가능하다.
상단의 사진처럼 현재 DB에 존재하는 전체 테이블 목록을 조회하는 쿼리는 다음과 같으며, 이런 쿼리를 이용하여 조회하면 상단의 사진처럼 결과가 출력된다.
SELECT * FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_NAME
다음으로는, DB의 전체 테이블들을 조회하면서 동시에 각 테이블들의 칼럼현황들도 간단히 출력하고 싶을 때 쓰는 쿼리문이다.
SELECT TABLE_NAME,
ORDINAL_POSITION,
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH,
IS_NULLABLE,
COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
ORDER BY TABLE_NAME, ORDINAL_POSITION
다음과 같은 쿼리를 실행하면 아래 사진과 같이 결과가 출력된다.
다음으로, 앞서 출력한 것과 비슷하지만 각 테이블에 대해 더 자세한 정보를 추가하여 출력하고 싶을 때 쓸 수 있는 쿼리문이다.
SELECT * FROM (
SELECT TABLE_NAME,
ORDINAL_POSITION,
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH,
IS_NULLABLE,
COLUMN_DEFAULT
TABKE_CATALOG
FROM INFORMATION_SCHEMA.COLUMNS
) A
LEFT OUTER JOIN (
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
) B
ON A.COLUMN_NAME = B.COLUMN_NAME
AND A.TABLE_NAME = B.TABLE_NAME
ORDER BY A.TABLE_NAME,A.ORDINAL_POSITION
다음과 같은 쿼리를 실행하면 아래와 같은 결과가 출력된다.