소개
테이블 생성, 관계 확인, 보고서 생성 같은 데이터베이스 관리 작업을 하고 있다면 PostgreSQL information_schema를 이해해 두면 아주 유용해요. 이 튜토리얼에서는 코드 예제와 함께 PostgreSQL information_schema의 기본을 살펴볼게요.
이 튜토리얼은 주로 PostgreSQL을 기준으로 작성했지만, 일부 개념은 다른 SQL 관계형 데이터베이스에도 적용할 수 있어요.
계속 읽기 전에, 저희의 모던하고 빠른 PostgreSQL 데이터베이스 관리 도구인 Beekeeper Studio를 소개해 드릴게요. 스키마 탐색이 정말 쉬워지고, PostgreSQL용으로는 무료로 사용할 수 있어요. 여기에서 다운로드하세요.
Information_Schema란?
information_schema는 PostgreSQL 데이터베이스에서 ‘현재 데이터베이스’의 메타데이터에 접근할 수 있게 해 주는 핵심 기능이에요. 기본적으로 ‘현재 데이터베이스’ 안의 여러 객체에 대한 정보를 담은 뷰의 모음이에요. 테이블부터 컬럼, 제약 조건까지 PostgreSQL의 information_schema는 데이터베이스 구조의 세부 정보를 제공해요.
SELECT *
FROM information_schema.tables;
예를 들어 Beekeeper Studio의 SQL 에디터에서 위 명령을 실행하면 현재 데이터베이스의 테이블 목록이 표시돼요.
더 깊이 살펴보기
public 테이블 조회하기
현재 데이터베이스에서 사용할 수 있는 모든 public 테이블을 나열하려면 다음을 실행하세요:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public';
이 명령은 ‘현재 데이터베이스’의 ‘public’ 스키마에 있는 모든 테이블 이름 목록을 반환해요.
‘chinook’ 샘플 데이터베이스를 사용한 출력 결과
| table_name |
|---|
| artist |
| album |
| employee |
| customer |
| invoice |
| invoice_line |
| track |
| playlist |
| playlist_track |
| genre |
| media_type |
컬럼 살펴보기
information_schema.columns 뷰를 사용하면 특정 테이블의 컬럼에 대한 상세 정보를 가져올 수 있어요:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name ='album';
이 코드는 선택한 테이블의 모든 컬럼 이름과 데이터 타입 목록을 반환해요.
‘chinook’ 샘플 데이터베이스를 사용한 출력 결과
| column_name | data_type |
|---|---|
| album_id | integer |
| artist_id | integer |
| title | character varying |
제약 조건 표시하기
information_schema.table_constraints 뷰는 테이블에 정의된 제약 조건에 대한 정보를 제공해요.
다음 쿼리로 특정 테이블의 제약 조건을 가져올 수 있어요:
SELECT constraint_name, constraint_type
FROM information_schema.table_constraints
WHERE table_name='album';
이 명령을 실행하면 ‘your_table’의 제약 조건 이름과 유형이 출력되어, 이 테이블에 적용된 규칙을 파악할 수 있어요.
‘chinook’ 샘플 데이터베이스를 사용한 출력 결과
| constraint_name | constraint_type |
|---|---|
| album_pkey | PRIMARY KEY |
| album_artist_id_fkey | FOREIGN KEY |
| 2200_65375_1_not_null | CHECK |
| 2200_65375_2_not_null | CHECK |
| 2200_65375_3_not_null | CHECK |
마무리
PostgreSQL information_schema는 데이터베이스의 구조와 세부 정보를 탐색하고 이해하는 데 중요한 도구예요. 어떻게 활용할지는 필요와 데이터베이스 구성에 따라 달라져요. 예제 명령이 제대로 실행되도록 샘플 테이블과 컬럼 이름을 여러분의 데이터베이스에 맞는 이름으로 바꾸는 것을 잊지 마세요.
참고: 이 튜토리얼의 모든 예제는 PostgreSQL(9.4~13.3 버전)에 가장 적합하며 다른 데이터베이스 엔진과는 호환되지 않을 수 있어요. 항상 사용 중인 데이터베이스 엔진에 맞게 쿼리를 조정하세요. PostgreSQL information_schema를 활용하면 데이터베이스 탐색 작업을 더 쉽고 효과적으로, 훨씬 적은 시간으로 할 수 있어요.
Beekeeper Studio는 무료 오픈 소스 PostgreSQL GUI예요
제가 찾던 바로 그 PostgreSQL 클라이언트예요! UI가 차별점이에요. 깔끔하고 직관적이며 강력해요. 투박한 PGAdmin이여, 안녕. - David Cyprian
Beekeeper Studio는 빠르고 직관적이며 사용하기 쉬운 PostgreSQL 클라이언트예요. 그 밖에도 다양한 데이터베이스를 지원하고, Windows, Mac, Linux에서 모두 잘 작동해요.
PostgreSQL 사용자들의 Beekeeper Studio 후기
pgAdmin과 달리 Beekeeper는 놀라울 만큼 사용하기 쉬우면서도 기능이 부족하지 않아요. 가격도 적당하고요! 특히 데이터베이스 백업 기능이 유용해요. 정말 훌륭한 소프트웨어예요.
멋진 도구예요. 지금까지 써 본 Postgres와 MySql DB 관리용 IDE 중 가장 실용적이에요. 번거로움 없이 그냥 잘 돌아가요 :-)