PostgreSQL은 강력한 오픈소스 관계형 데이터베이스로, 많은 개발자와 데이터베이스 관리자가 사용하는 도구입니다. 이번 포스팅에서는 **PostgreSQL CLI (Command Line Interface)**의 주요 명령어를 다루며, 기본적인 데이터베이스 작업을 수행하는 방법을 설명합니다.
1. PostgreSQL CLI 환경 준비
1.1. PostgreSQL 설치 확인
PostgreSQL이 설치되어 있는지 확인하려면 터미널에서 다음 명령어를 실행합니다:
psql --version
설치되지 않았다면, PostgreSQL 공식 문서를 참고해 설치를 진행하세요.
1.2. PostgreSQL CLI 접속
PostgreSQL CLI(즉, psql)에 접속하려면 다음 명령어를 사용합니다:
psql -U <username> -d <database_name> -h <host> -p <port>
예제:
psql -U postgres -d my_database -h localhost -p 5432
- -U: 사용자 이름 (예: postgres)
- -d: 데이터베이스 이름
- -h: 호스트 주소 (기본값: localhost)
- -p: 포트 번호 (기본값: 5432)
1.3. 기본 psql 명령어 사용법
CLI에 접속한 뒤 기본 명령어는 \로 시작합니다:
- \?: 모든 psql 명령어 목록 표시
- \q: psql 종료
- \h [command]: SQL 문법 도움말 (예: \h SELECT)
2. 데이터베이스 작업
2.1. 데이터베이스 목록 확인
현재 PostgreSQL 서버에 있는 모든 데이터베이스를 확인하려면:
\l
또는:
\list
2.2. 데이터베이스 생성
새로운 데이터베이스를 생성하려면:
CREATE DATABASE my_database;
2.3. 데이터베이스 접속
다른 데이터베이스로 전환하려면:
\c <database_name>
예제:
\c my_database
2.4. 데이터베이스 삭제
데이터베이스를 삭제하려면:
DROP DATABASE my_database;
주의: 데이터베이스를 삭제하면 그 안의 모든 데이터가 사라집니다!
3. 테이블 작업
3.1. 테이블 목록 확인
현재 데이터베이스에 있는 모든 테이블을 확인하려면:
\dt
3.2. 테이블 생성
테이블을 생성하려면 CREATE TABLE 명령어를 사용합니다:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
3.3. 테이블 구조 확인
테이블의 컬럼과 타입을 확인하려면:
\d <table_name>
예제:
\d users
3.4. 테이블 삭제
테이블을 삭제하려면:
DROP TABLE <table_name>;
예제:
DROP TABLE users;
4. 데이터 삽입, 조회, 업데이트, 삭제
4.1. 데이터 삽입
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
4.2. 데이터 조회
SELECT * FROM users;
- 특정 조건으로 조회:
SELECT * FROM users WHERE name = 'Alice';
4.3. 데이터 업데이트
UPDATE users SET email = 'newalice@example.com' WHERE name = 'Alice';
4.4. 데이터 삭제
DELETE FROM users WHERE name = 'Alice';
5. 사용자와 권한 관리
5.1. 사용자 생성
CREATE USER my_user WITH PASSWORD 'mypassword';
5.2. 사용자 권한 부여
데이터베이스에 대한 모든 권한을 사용자에게 부여하려면:
GRANT ALL PRIVILEGES ON DATABASE my_database TO my_user;
5.3. 사용자 목록 확인
모든 사용자를 확인하려면:
\du
6. PostgreSQL 설정 및 로그
6.1. 서버 로그 확인
PostgreSQL 서버 로그를 확인하려면 터미널에서 다음을 실행합니다:
tail -f /var/log/postgresql/postgresql-<version>-main.log
(OS와 설정에 따라 경로는 다를 수 있습니다.)
6.2. 설정 파일 수정
PostgreSQL 설정 파일을 수정하려면:
sudo nano /etc/postgresql/<version>/main/postgresql.conf
변경 후 PostgreSQL 서비스를 재시작해야 적용됩니다:
sudo systemctl restart postgresql
7. 기타 유용한 명령어
7.1. 테이블 외 데이터 구조 보기
- 인덱스 보기: \di
- 시퀀스 보기: \ds
- 뷰 보기: \dv
7.2. SQL 쿼리 결과를 파일로 저장
\o output.txt
SELECT * FROM users;
\o
이렇게 하면 쿼리 결과가 output.txt 파일로 저장됩니다.
8. 실습 예제
예제: 사용자 관리 시스템 구축
- 데이터베이스 생성:
CREATE DATABASE user_management; - 데이터베이스 접속:
\c user_management - 테이블 생성:
CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(50), email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); - 데이터 삽입:
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com'), ('Bob', 'bob@example.com'); - 데이터 조회:
SELECT * FROM users; - 데이터 업데이트:
UPDATE users SET email = 'newbob@example.com' WHERE name = 'Bob'; - 데이터 삭제:
DELETE FROM users WHERE name = 'Alice';
9. 마무리
이번 포스팅에서는 PostgreSQL CLI의 기본 명령어 간단 사용법을 알아봤습니다