소개
이 실습에서는 PostgreSQL의 기본적인 데이터 작업을 살펴봅니다. 주요 목표는 기본적인 SQL 명령어를 사용하여 PostgreSQL 데이터베이스 내의 데이터를 조작하는 방법을 배우는 것입니다.
먼저 데이터베이스에 연결하고 ID, 이름, 부서 컬럼을 포함하는 employees 테이블을 생성합니다. 그런 다음 INSERT INTO 문을 사용하여 테이블에 데이터를 삽입하는 방법을 배웁니다. 이어서 SELECT를 통한 데이터 조회, 기존 레코드 수정, 레코드 삭제 방법을 다룹니다. 이 실습은 PostgreSQL의 필수적인 데이터 관리 기술에 대한 실습 위주의 입문 과정을 제공합니다.
테이블에 데이터 삽입하기
이번 단계에서는 PostgreSQL 테이블에 데이터를 삽입하는 방법을 배웁니다. 데이터 삽입은 데이터베이스에 정보를 채우기 위한 가장 기본적인 작업입니다. 기본적인 구문을 살펴보고 과정을 이해할 수 있도록 예제를 제공합니다.
시작하기 전에 PostgreSQL이 설치되어 있고 실행 중인지 확인하세요. psql 명령줄 도구를 사용하여 PostgreSQL 서버에 연결할 수 있습니다.
먼저 데이터베이스에 연결합니다. 터미널을 열고 다음 명령어를 실행하세요:
sudo -u postgres psql
데이터베이스에 연결되었으므로, 아직 존재하지 않는다면 employees라는 간단한 테이블을 생성해 보겠습니다. 이 테이블은 직원의 ID, 이름, 부서와 같은 정보를 저장합니다.
CREATE TABLE IF NOT EXISTS employees (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50)
);
이 SQL 문은 세 개의 컬럼을 가진 employees 테이블을 생성합니다:
id: 새로운 레코드가 추가될 때마다 자동으로 증가하는 정수입니다(SERIAL사용). 또한 테이블의 기본 키(Primary Key) 역할을 합니다.name: 직원 이름을 저장하기 위한 문자열(최대 50자)입니다.department: 직원 부서를 저장하기 위한 문자열(최대 50자)입니다.
이제 employees 테이블에 데이터를 삽입해 보겠습니다. 세 명의 직원 레코드를 삽입합니다.
INSERT INTO employees (name, department) VALUES ('Alice Smith', 'Sales');
INSERT INTO employees (name, department) VALUES ('Bob Johnson', 'Marketing');
INSERT INTO employees (name, department) VALUES ('Charlie Brown', 'Engineering');
각 INSERT INTO 문은 employees 테이블에 새로운 행을 추가합니다. 테이블 이름(employees)과 데이터를 삽입할 컬럼(name, department)을 지정합니다. VALUES 키워드 뒤에는 괄호로 묶인 삽입할 실제 데이터가 옵니다.
데이터가 올바르게 삽입되었는지 확인하려면 SELECT 문을 사용하여 employees 테이블을 조회할 수 있습니다.
SELECT * FROM employees;
이 명령은 employees 테이블의 모든 행과 컬럼을 표시합니다. 방금 삽입한 세 명의 직원 레코드가 보여야 합니다. 출력 결과는 다음과 비슷할 것입니다:
id | name | department
----+---------------+------------
1 | Alice Smith | Sales
2 | Bob Johnson | Marketing
3 | Charlie Brown | Engineering
(3 rows)

이제 PostgreSQL 테이블에 데이터를 성공적으로 삽입했습니다. 필요에 따라 더 많은 레코드를 계속 삽입할 수 있습니다.
마지막으로 다음을 입력하여 psql 셸을 종료합니다:
\q
터미널로 돌아오게 됩니다.
SELECT로 데이터 조회하기
이번 단계에서는 SELECT 문을 사용하여 PostgreSQL 테이블에서 데이터를 조회하는 방법을 배웁니다. SELECT 문은 데이터베이스에서 정보를 검색하는 기초가 됩니다. 데이터 검색을 마스터할 수 있도록 기본 구문, 필터링, 정렬 방법을 다룹니다.
먼저 데이터베이스에 연결되어 있는지 확인하세요. 아직 연결되지 않았다면 터미널을 열고 다음 명령어를 실행하세요:
sudo -u postgres psql
특정 컬럼만 선택하는 방법을 배워봅시다. 예를 들어 name과 department 컬럼만 검색하고 싶다면 다음과 같이 합니다.
SELECT name, department FROM employees;
이 문은 employees 테이블의 모든 행에 대해 name과 department 컬럼만 반환합니다. 출력 결과는 다음과 비슷할 것입니다:
name | department
---------------+------------
Alice Smith | Sales
Bob Johnson | Marketing
Charlie Brown | Engineering
(3 rows)
이제 WHERE 절을 추가하여 결과를 필터링해 보겠습니다. 'Sales' 부서에서 근무하는 직원만 검색하고 싶다면 다음과 같이 합니다.
SELECT name, department FROM employees WHERE department = 'Sales';
WHERE 절은 결과 집합에 포함되기 위해 충족되어야 하는 조건을 지정합니다. 이 경우 department 컬럼이 'Sales'와 같은 행만 선택합니다. 출력 결과는 다음과 같습니다:
name | department
---------------+------------
Alice Smith | Sales
(1 row)
마지막으로 ORDER BY 절을 사용하여 결과를 정렬하는 방법을 배웁니다. 모든 직원을 이름순(오름차순)으로 정렬하여 검색하고 싶다면 다음과 같이 합니다.
SELECT name, department FROM employees ORDER BY name;
이 문은 employees 테이블의 모든 행을 반환하지만, 결과는 name 컬럼을 기준으로 알파벳순으로 정렬됩니다. 출력 결과는 다음과 같습니다:
name | department
---------------+------------
Alice Smith | Sales
Bob Johnson | Marketing
Charlie Brown | Engineering
(3 rows)
결과를 내림차순으로 정렬하려면 컬럼 이름 뒤에 DESC 키워드를 추가하면 됩니다.
SELECT name, department FROM employees ORDER BY name DESC;
이렇게 하면 결과가 알파벳 역순으로 정렬됩니다.
이제 SELECT 문을 사용하여 PostgreSQL 테이블에서 데이터를 조회하는 방법, 특정 컬럼 선택, WHERE 절을 이용한 필터링, ORDER BY 절을 이용한 정렬 방법을 모두 배웠습니다.

마지막으로 다음을 입력하여 psql 셸을 종료합니다:
\q
기존 레코드 수정하기
이번 단계에서는 UPDATE 문을 사용하여 PostgreSQL 테이블의 기존 레코드를 수정하는 방법을 배웁니다. 데이터 수정은 데이터베이스 정보를 최신 상태로 정확하게 유지하는 데 필수적입니다. 기본적인 구문을 살펴보고 과정을 이해할 수 있도록 예제를 제공합니다.
먼저 데이터베이스에 연결되어 있는지 확인하세요. 아직 연결되지 않았다면 터미널을 열고 다음 명령어를 실행하세요:
sudo -u postgres psql
'Alice Smith'의 부서를 'Human Resources'로 수정해 보겠습니다.
UPDATE employees SET department = 'Human Resources' WHERE name = 'Alice Smith';
UPDATE 문은 테이블의 기존 행을 수정합니다. SET 절은 수정할 컬럼과 새로운 값을 지정합니다. WHERE 절은 수정할 행을 지정합니다. 이 경우 name 컬럼이 'Alice Smith'인 행의 department 컬럼을 'Human Resources'로 수정합니다.
수정이 성공했는지 확인하려면 employees 테이블을 조회합니다.
SELECT * FROM employees WHERE name = 'Alice Smith';
'Alice Smith'의 행이 표시되며, department 컬럼이 'Human Resources'로 수정된 것을 확인할 수 있습니다. 출력 결과는 다음과 비슷할 것입니다:
id | name | department
----+---------------+------------------
1 | Alice Smith | Human Resources
(1 row)
한 번에 여러 컬럼을 수정할 수도 있습니다. 예를 들어, Bob Johnson의 부서를 'Sales'로, 이름을 'Robert Johnson'으로 수정해 보겠습니다.
UPDATE employees SET department = 'Sales', name = 'Robert Johnson' WHERE name = 'Bob Johnson';
이 문은 name 컬럼이 'Bob Johnson'인 행의 department와 name 컬럼을 모두 수정합니다.
수정을 확인하려면 employees 테이블을 다시 조회합니다.
SELECT * FROM employees WHERE name = 'Robert Johnson';
출력 결과는 다음과 같습니다:
id | name | department
----+----------------+------------
2 | Robert Johnson | Sales
(1 row)
UPDATE 문을 사용할 때는 특히 WHERE 절을 생략할 때 주의해야 합니다. WHERE 절을 생략하면 UPDATE 문은 테이블의 모든 행을 수정합니다. 예를 들어:
UPDATE employees SET department = 'Unknown';
이 문은 employees 테이블의 모든 행에 대해 department 컬럼을 'Unknown'으로 설정합니다. 이러한 문을 실행할 때는 매우 주의해야 합니다.

이제 UPDATE 문을 사용하여 PostgreSQL 테이블의 기존 레코드를 수정하는 방법을 배웠습니다.
마지막으로 다음을 입력하여 psql 셸을 종료합니다:
\q
레코드 삭제하기
이번 단계에서는 DELETE 문을 사용하여 PostgreSQL 테이블에서 레코드를 삭제하는 방법을 배웁니다. 데이터 삭제는 데이터베이스에서 오래되었거나 잘못된 정보를 제거하는 중요한 작업입니다. 기본적인 구문을 살펴보고 과정을 이해할 수 있도록 예제를 제공합니다.
먼저 데이터베이스에 연결되어 있는지 확인하세요. 아직 연결되지 않았다면 터미널을 열고 다음 명령어를 실행하세요:
sudo -u postgres psql
employees 테이블에서 'Charlie Brown'의 레코드를 삭제해 보겠습니다.
DELETE FROM employees WHERE name = 'Charlie Brown';
DELETE FROM 문은 테이블에서 행을 제거합니다. WHERE 절은 삭제할 행을 지정합니다. 이 경우 name 컬럼이 'Charlie Brown'인 행을 삭제합니다.
삭제가 성공했는지 확인하려면 employees 테이블을 조회합니다.
SELECT * FROM employees WHERE name = 'Charlie Brown';
아무 행도 반환되지 않아야 하며, 이는 'Charlie Brown'의 레코드가 삭제되었음을 의미합니다. 출력 결과는 다음과 같습니다:
id | name | department
----+------+------------
(0 rows)
더 복잡한 WHERE 절을 사용하여 한 번에 여러 행을 삭제할 수도 있습니다. 예를 들어, 'Marketing' 부서에 여러 직원이 있다면 한 번의 문장으로 모두 삭제할 수 있습니다.
DELETE FROM employees WHERE department = 'Marketing';
DELETE 문을 사용할 때는 특히 WHERE 절을 생략할 때 매우 주의해야 합니다. WHERE 절을 생략하면 DELETE 문은 테이블의 모든 행을 삭제합니다. 예를 들어:
DELETE FROM employees;
이 문은 employees 테이블의 모든 행을 삭제하여 테이블을 비우게 됩니다. 이러한 문을 실행하기 전에 모든 행을 삭제하려는 것이 확실한지 확인하세요.
이제 DELETE 문을 사용하여 PostgreSQL 테이블에서 레코드를 삭제하는 방법을 배웠습니다.

employees 테이블을 확인하여 삭제가 성공했는지 확인하세요.
SELECT * FROM employees;
출력 결과는 다음과 같습니다:
id | name | department
----+----------------+-----------------
1 | Alice Smith | Human Resources
2 | Robert Johnson | Sales
(2 rows)
마지막으로 다음을 입력하여 psql 셸을 종료합니다:
\q
요약
이 실습에서는 PostgreSQL의 기본적인 데이터 작업을 다루었으며, 특히 테이블에 데이터를 삽입하는 데 중점을 두었습니다. 먼저 psql 명령줄 도구를 사용하여 데이터베이스에 연결했습니다. 그런 다음 id, name, department 컬럼을 가진 employees 테이블을 생성하고, id를 자동 증가 기능이 있는 기본 키로 지정했습니다.
마지막으로 INSERT INTO 문을 사용하여 세 명의 직원 레코드를 employees 테이블에 삽입했습니다. 이때 테이블 이름과 데이터를 삽입할 컬럼, 그리고 각 레코드에 해당하는 값을 지정했습니다. 이를 통해 PostgreSQL 테이블에 데이터를 채우는 기본적인 구문을 익혔습니다.


