🚨 postgresql 정리
👉postgres -# 과 postgres=# 차이
- postgres -#: 이 프롬프트는 슈퍼유저 또는 슈퍼관리자(superuser) 권한으로 PostgreSQL 콘솔에 접속한 경우 나타난다. 슈퍼유저는 PostgreSQL 데이터베이스 시스템 전체를 제어하고 모든 데이터베이스와 객체에 대한 권한을 가지는 특별한 사용자이다. 이 프롬프트에서는 시스템 관리 및 데이터베이스 생성 및 삭제와 같은 고급 작업을 수행할 수 있다.
- postgres=#: 이 프롬프트는 일반 사용자 또는 일반 데이터베이스 관리자가 PostgreSQL 콘솔에 접속한 경우 나타난다. 이 프롬프트에서는 데이터베이스와 관련된 일반적인 쿼리 작업을 수행할 수 있지만, 시스템 관리와 데이터베이스 생성 및 삭제와 같은 고급 작업은 슈퍼유저 권한이 필요하다.
👉postgresql 스키마에 대해...
Postgresql의 스키마를 사용하는 이유는 DB 내부에 있는 객체들(테이블,함수,시퀀스 등)의 관리를 더 편하게 해주고, 여러 사용자나 프레임워크가 하나의 DB 안에서 돌아갈 때 충돌이 없게 해 준다.
이 스키마를 사용하는 가장 큰 이유로는 동일한 DB에 똑같은 테이블 이름을 사용하더라도 충돌이 없다는 것으로 생각된다.
- 객체 그룹화 : 여러 테이블, 뷰, 함수 및 다른 데이터베이스 객체를 논리적으로 그룹화하여 관리하기 쉽게 만든다.
- 이름 공간 분리 : 서로 다른 스키마 내의 객체는 동일한 이름을 가질 수 있다. 이로 인해 이름 충돌을 방지하고 다른 스키마 내의 객체에 대한 충돌을 피할 수 있다.
- 권한 제어 : postgresql에서 스키마는 권한을 부여하거나 제한하는데 사용된다. 특정 사용자 또는 역할에 대한 권한을 특정 스키마에 부여할 수 있고, 다른 스키마에 대한 액세스를 제한할 수 있다.
예를 들어, "mydb"라는 데이터베이스 내에 "schema1" 스키마와 "schema2" 스키마가 있고, 각 스키마 내에 "users"라는 이름의 테이블을 만들었다고 가정해 봅시다. 이렇게 하면 "schema1.users"와 "schema2.users"라는 서로 다른 테이블이 같은 데이터베이스 내에 존재할 수 있다.
👉 처음 postgresql 접속
$ su postgres
그 후 psql을 실행하면 postgresql db에 접속하여 sql 쿼리를 실행할 수 있다.
postgres@dev87:/root$ psql
👉 기본 postgresql 명령어
- DB 목록 조회
: \l or \list
- 다른 DB 접속
: \c [db명]
- psql 종료
: \q
- 특정 테이블 정보 조회
: \d [테이블명]
- DB내의 table 조회
: \dt
- schema 조회
: \dn
'Database > SQL' 카테고리의 다른 글
PostgreSQL (0) | 2023.10.03 |
---|---|
시퀀스(SEQUENCE) (0) | 2023.07.05 |
오라클 테이블 데이터 추가 및 조회 (0) | 2023.07.05 |
오라클 - DB 테이블 생성 및 삭제 (0) | 2023.07.05 |
오라클 - 계정 생성 및 권한 부여 (0) | 2023.07.05 |