PostgreSQL 데이터베이스 생성, 수정, 삭제 및 검색 방법 (How to Create, Modify, Delete, and Query a PostgreSQL Database)

데이터베이스 생성

PostgreSQL에서 새 데이터베이스를 생성하려면 다음 단계를 따른다:

  1. psql 명령어를 사용하여 PostgreSQL에 superuser 권한으로 로그인한다.
   psql -U postgres
  1. CREATE DATABASE 명령어를 사용하여 새 데이터베이스를 생성한다.
   CREATE DATABASE mydb;

이 명령어는 “mydb”라는 이름의 새 데이터베이스를 생성한다.

데이터베이스 수정

PostgreSQL에서 데이터베이스를 수정하려면 ALTER DATABASE 명령어를 사용한다. 예를 들어, 데이터베이스의 이름을 변경하려면 다음 명령어를 사용한다:

ALTER DATABASE mydb RENAME TO newdb;

이 명령어는 “mydb” 데이터베이스의 이름을 “newdb”로 변경한다.

데이터베이스 삭제

PostgreSQL에서 데이터베이스를 삭제하려면 DROP DATABASE 명령어를 사용한다.

DROP DATABASE mydb;

이 명령어는 “mydb” 데이터베이스를 삭제한다. 주의: 이 명령어는 데이터베이스와 그 안의 모든 데이터를 영구적으로 삭제하므로 주의해서 사용해야 한다.

데이터베이스 검색

PostgreSQL에서 데이터베이스를 검색하려면 \l 명령어를 사용한다. 이 명령어는 모든 데이터베이스의 목록을 출력한다.

\l

테이블 생성

데이터베이스에 테이블을 생성하려면 CREATE TABLE 명령어를 사용한다. 예를 들어, “users” 테이블을 생성하려면 다음 명령어를 사용한다:

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  name VARCHAR(50),
  email VARCHAR(50)
);

이 명령어는 “users”라는 이름의 새 테이블을 생성한다. 테이블은 “id”, “name”, “email” 세 개의 열을 가진다.

테이블 수정

PostgreSQL에서 테이블을 수정하려면 ALTER TABLE 명령어를 사용한다. 예를 들어, 테이블에 새 열을 추가하려면 다음 명령어를 사용한다:

ALTER TABLE users ADD COLUMN age INT;

이 명령어는 “users” 테이블에 “age”라는 이름의 새 열을 추가한다.

테이블 데이터 삭제

DELETE 명령어:

DELETE FROM table_name;

이 명령어는 테이블 “table_name”의 모든 행을 삭제한다. DELETE는 테이블의 각 행을 개별적으로 삭제하므로, 대량의 데이터를 삭제할 때는 느릴 수 있다. 또한 DELETE는 트랜잭션 로그를 생성하므로, 삭제 작업을 되돌릴 수 있다.

TRUNCATE 명령어:

TRUNCATE TABLE table_name;

이 명령어도 테이블 “table_name”의 모든 행을 삭제한다. TRUNCATE는 테이블 전체를 삭제하고 다시 생성하는 방식으로 작동하므로, DELETE보다 빠르다. 하지만 TRUNCATE는 트랜잭션 로그를 생성하지 않으므로, 삭제 작업을 되돌릴 수 없다.

주의사항:

  • 이 명령어들은 테이블의 모든 데이터를 영구적으로 삭제하므로, 사용 전에 주의해야 한다.
  • 테이블에 외래 키 제약 조건이 있는 경우, TRUNCATE는 작동하지 않을 수 있다. 이 경우에는 DELETE를 사용해야 한다.
  • DELETETRUNCATE 모두 테이블의 구조 (열, 제약 조건 등)는 변경하지 않는다. 테이블 구조를 변경하려면 ALTER TABLE 명령어를 사용해야 한다.

테이블 삭제

PostgreSQL에서 테이블을 삭제하려면 DROP TABLE 명령어를 사용한다.

DROP TABLE users;

이 명령어는 “users” 테이블을 삭제한다. 주의: 이 명령어는 테이블과 그 안의 모든 데이터를 영구적으로 삭제하므로 주의해서 사용해야 한다.

테이블 검색

PostgreSQL에서 테이블을 검색하려면 \dt 명령어를 사용한다. 이 명령어는 현재 데이터베이스의 모든 테이블 목록을 출력한다.

\dt

사용자 생성

PostgreSQL에서 새 사용자를 생성하려면 CREATE USER 명령어를 사용한다.

CREATE USER myuser WITH PASSWORD 'secret';

이 명령어는 “myuser”라는 이름의 새 사용자를 생성하고, 비밀번호를 “secret”로 설정한다.

사용자 수정

PostgreSQL에서 사용자를 수정하려면 ALTER USER 명령어를 사용한다. 예를 들어, 사용자의 비밀번호를 변경하려면 다음 명령어를 사용한다:

ALTER USER myuser WITH PASSWORD 'newsecret';

이 명령어는 “myuser” 사용자의 비밀번호를 “newsecret”로 변경한다.

사용자 삭제

PostgreSQL에서 사용자를 삭제하려면 DROP USER 명령어를 사용한다.

DROP USER myuser;

이 명령어는 “myuser” 사용자를 삭제한다.

사용자 검색

PostgreSQL에서 사용자를 검색하려면 \du 명령어를 사용한다. 이 명령어는 모든 사용자의 목록을 출력한다.

\du

권한 부여

PostgreSQL에서 사용자에게 권한을 부여하려면 GRANT 명령어를 사용한다. 예를 들어, 사용자에게 테이블에 대한 SELECT 권한을 부여하려면 다음 명령어를 사용한다:

GRANT SELECT ON users TO myuser;

이 명령어는 “myuser” 사용자에게 “users” 테이블에 대한 SELECT 권한을 부여한다.

모든 데이터베이스에 대한 모든 권한을 부여하려면 다음 명령어를 사용한다:

GRANT ALL PRIVILEGES ON ALL DATABASES TO myuser;

이 명령어는 “myuser” 사용자에게 모든 데이터베이스에 대한 모든 권한 (CREATE, CONNECT, TEMPORARY, 등)을 부여한다.

모든 테이블에 대한 모든 권한을 부여하려면 다음 명령어를 사용한다:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO myuser;

이 명령어는 “myuser” 사용자에게 “public” 스키마의 모든 테이블에 대한 모든 권한 (SELECT, INSERT, UPDATE, DELETE, 등)을 부여한다.

이러한 변경사항을 적용하려면 다음 명령어를 사용한다:

ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO myuser;

이 명령어는 “public” 스키마에서 새로 생성되는 모든 테이블에 대해 “myuser” 사용자에게 모든 권한을 자동으로 부여하도록 설정한다.

주의: 이러한 방법은 사용자에게 매우 강력한 권한을 부여하므로, 신중하게 사용해야 한다. 일반적으로는 각 사용자에게 필요한 최소한의 권한만 부여하는 것이 좋다.

권한 수정

PostgreSQL에서 사용자의 권한을 수정하려면 REVOKE 명령어와 GRANT 명령어를 함께 사용한다. 예를 들어, 사용자의 INSERT 권한을 취소하려면 다음 명령어를 사용한다:

REVOKE INSERT ON users FROM myuser;

이 명령어는 “myuser” 사용자로부터 “users” 테이블에 대한 INSERT 권한을 취소한다.

권한 삭제

PostgreSQL에서 사용자의 권한을 삭제하려면 REVOKE 명령어를 사용한다. 예를 들어, 사용자의 모든 권한을 삭제하려면 다음 명령어를 사용한다:

REVOKE ALL ON users FROM myuser;

이 명령어는 “myuser” 사용자의 “users” 테이블에 대한 모든 권한을 삭제한다.

권한 검색

PostgreSQL에서 사용자의 권한을 검색하려면 \z 명령어를 사용한다. 이 명령어는 모든 테이블과 그에 대한 권한을 출력한다.

\z

Leave a Reply

error: Content is protected !!