PostgreSQL은 가장 널리 사용되는 객체 관계형 데이터베이스 시스템 중 하나입니다. 복잡한 데이터 워크로드를 처리하기 위한 추가 기능으로 SQL 언어를 확장하는 무료 오픈 소스 소프트웨어입니다. 신뢰할 수 있고 안전한 다양한 데이터 유형으로 작업할 수 있습니다. PostgreSQL의 기능에 대해 자세히 알아보세요.
이 가이드에서는 PostgreSQL의 스키마에 테이블을 생성하는 방법에 대해 자세히 알아봅니다.
PostgreSQL의 스키마
PostgreSQL 데이터베이스는 하나 이상의 명명된 스키마를 포함할 수 있으며 각 스키마는 테이블을 포함합니다.
충돌 없이 여러 스키마에 동일한 개체 이름을 할당할 수 있습니다. 예를 들어 다음 스키마/테이블 트리는 유효합니다.
- schema_a
- 1 번 테이블
- 테이블_2
- schema_b
- 1 번 테이블
- 테이블_2
운영 체제 수준에서 디렉터리와 같은 스키마를 생각할 수 있습니다. 차이점은 중첩된 스키마가 있을 수 없다는 것입니다. 스키마에 대해 자세히 알아보기 PostgreSQL 설명서 .
스키마를 구현하는 데는 여러 가지 이유가 있을 수 있습니다.
- 서로 충돌하지 않고 동일한 데이터베이스를 사용하는 여러 사용자.
- 데이터베이스를 논리적 그룹으로 더 잘 구성하고 관리합니다.
- 타사 앱은 기존 스키마 또는 다른 개체와 충돌하지 않고 고유한 스키마를 생성할 수 있습니다.
PostgreSQL의 테이블
모든 관계형 데이터베이스는 각각 행과 열로 구성된 여러 관련 테이블로 구성됩니다. PostgreSQL은 다양한 시스템 정보를 포함하는 여러 내장 테이블과 함께 제공됩니다. 그러나 사용자 정의 데이터베이스 및 스키마 아래에 새 테이블을 만들 수도 있습니다.
전제 조건:
이 가이드에 설명된 단계를 수행하려면 다음 구성 요소가 필요합니다.
- 적절하게 구성된 Linux 시스템. 자세히 알아보기 버추얼박스에 우분투 설치하기 .
- PostgreSQL의 적절한 설치. 체크아웃 우분투에 PostgreSQL 설치 .
- 에 대한 액세스 PostgreSQL 사용자 ~와 함께 사용 권한 데이터베이스에.
이 가이드의 목적을 위해 다음을 사용합니다. 포스트그레스 PostgreSQL에서 모든 작업을 수행합니다.
스키마에서 테이블 생성
데모 데이터베이스 생성
앞서 언급했듯이 스키마는 데이터베이스 아래에 존재합니다. 데모 목적으로 더미 데이터베이스를 생성하여 기존 데이터베이스의 중단을 방지합니다.
다음과 같이 PostgreSQL 셸에 액세스합니다. 포스트그레스 :
$ sudo -i -u 포스트그레스 psql
새 데이터베이스 만들기 데모_db:
$ 데이터베이스 demo_db 생성;
데이터베이스가 성공적으로 생성되었는지 확인합니다.
$ \l
마지막으로 새로 만든 데이터베이스에 연결합니다.
$ \connect demo_db;
공개 스키마
PostgreSQL의 모든 새 데이터베이스는 기본 스키마와 함께 제공됩니다. 공공의 . 스키마 이름을 지정하지 않고 개체를 생성하려고 하면 기본적으로 공개 스키마가 선택됩니다.
다음 명령은 PostgreSQL 데이터베이스에서 사용 가능한 모든 스키마를 인쇄합니다.
$ \dn
또는 다음 SQL 쿼리를 사용할 수도 있습니다.
$ 선택 * pg_catalog.pg_namespace에서;
새 스키마 생성
특정 데이터베이스 아래에 새 스키마를 생성하기 위한 명령 구조는 다음과 같습니다.
$ CREATE SCHEMA규칙에 따라 새 스키마 demo_schema를 생성해 보겠습니다.
$ 스키마 만들기 demo_schema;
확인을 위해 스키마 목록을 확인하십시오.
$ \dn
스키마에서 테이블 생성
이제 대상 스키마가 생성되었으므로 테이블로 채울 수 있습니다.
테이블 생성 구문은 다음과 같습니다.
CREATE TABLE <스키마>.<테이블 이름> (...
)
여기:
- 개요 : 이 필드는 테이블이 생성되는 스키마의 이름을 지정합니다. 값이 제공되지 않으면 다음 아래에 테이블이 생성됩니다. 공공의 개요.
데모를 위해 간단한 테이블을 만듭니다.
테이블 생성 demo_schema.demo_table(이름 문자(64),
ID INT는 NULL이 아닙니다.
);
여기:
- 필드 이름 64자의 문자열을 저장하도록 지정되었습니다.
- 필드 ID 정수 값을 포함합니다. 용어 ' NULL이 아님 ”는 것을 나타냅니다. ID 비어 있거나 null일 수 없습니다.
다음 쿼리를 사용하여 테이블의 존재를 확인할 수 있습니다.
$ 선택 * demo_schema.demo_table에서;
테이블에 데이터 삽입
테이블이 준비되면 이제 몇 가지 값을 삽입할 수 있습니다.
demo_schema.demo_table(이름, ID)에 삽입가치
('PQR', 45),
('IJK', 99)
;
테이블의 내용을 확인하십시오.
$ 선택 * demo_schema.demo_table에서;
스키마 관리
스키마 권한
스키마 권한의 도움으로 특정 스키마에서 어떤 역할이 어떤 작업을 수행할 수 있는지 관리할 수 있습니다. 가능한 모든 권한 중에서 스키마는 다음을 지원합니다. 생성 및 사용.
특정 역할에 대한 스키마 권한을 업데이트하기 위한 명령 구조는 다음과 같습니다.
$ GRANT
특정 역할에 대한 스키마 권한을 취소하기 위한 명령 구조는 다음과 같습니다.
$ REVOKE다음 명령을 사용하여 변경 사항을 확인합니다.
$ \dn+
스키마 속성 변경
의 도움으로 변경 스키마 명령문을 사용하여 스키마의 다양한 속성을 수정할 수 있습니다. 예: 소유권, 스키마 이름 등
스키마 이름을 변경하려면 다음 쿼리를 사용합니다.
$ ALTER SCHEMA
스키마 소유권을 변경하려면 다음 쿼리를 사용합니다.
$ ALTER SCHEMA
소유권을 변경하려면 현재 사용자에게 소유권이 있어야 합니다. 만들다 스키마에 대한 권한.
스키마 삭제
스키마가 더 이상 필요하지 않은 경우 다음을 사용하여 삭제할 수 있습니다. 하락 질문:
$ DROP SCHEMA
스키마에 개체가 포함되어 있으면 종속 수식어:
$ DROP SCHEMA
테이블 관리
테이블 권한
스키마와 마찬가지로 각 테이블에는 역할이 테이블에서 수행할 수 있는 작업을 정의하는 권한 관리도 함께 제공됩니다.
테이블의 권한을 확인하려면 psql에서 다음 명령을 사용하십시오.
$ \dp <테이블 이름>
테이블 속성 변경
의 도움으로 테이블 변경 명령문을 통해 이미 존재하는 테이블의 다양한 측면을 수정할 수 있습니다.
예를 들어 열을 삭제하기 위한 쿼리는 다음과 같습니다.
$ ALTER TABLE