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

 

다음과 같은 쿼리를 실행하면 아래와 같은 결과가 출력된다.