PostgreSQL 기본 데이터 연산

PostgreSQLBeginner
지금 연습하기

소개

이 랩에서는 PostgreSQL 에서 기본적인 데이터 연산을 탐구합니다. 주요 목표는 기본적인 SQL 명령어를 사용하여 PostgreSQL 데이터베이스 내에서 데이터를 조작하는 방법을 배우는 것입니다.

먼저 데이터베이스에 연결하고 ID, 이름, 부서 열을 가진 employees 테이블을 생성하는 것으로 시작합니다. 그런 다음, INSERT INTO 문을 사용하여 테이블에 데이터를 삽입하는 방법을 배웁니다. 그 후, SELECT를 사용한 데이터 쿼리, 기존 레코드 업데이트, 레코드 삭제를 다룹니다. 이 랩은 PostgreSQL 에서 필수적인 데이터 관리 기술에 대한 실질적인 소개를 제공합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 88%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

테이블에 데이터 삽입

이 단계에서는 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 사용). 또한 테이블의 기본 키입니다.
  • 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)
Output after inserting data in table

이제 PostgreSQL 테이블에 데이터를 성공적으로 삽입했습니다. 필요에 따라 더 많은 레코드를 계속 삽입할 수 있습니다.

마지막으로, 다음을 입력하여 psql 셸을 종료합니다.

\q

그러면 터미널로 돌아갑니다.

SELECT 로 데이터 쿼리

이 단계에서는 SELECT 문을 사용하여 PostgreSQL 에서 테이블의 데이터를 쿼리하는 방법을 배웁니다. SELECT 문은 데이터베이스에서 정보를 검색하는 기본입니다. 데이터 검색을 마스터하는 데 도움이 되도록 기본 구문, 필터링 및 정렬을 다룹니다.

먼저, 데이터베이스에 연결되어 있는지 확인하십시오. 아직 연결되지 않은 경우 터미널을 열고 다음 명령을 실행합니다.

sudo -u postgres psql

특정 열을 선택하는 방법을 배워보겠습니다. namedepartment 열만 검색하려는 경우를 가정해 보겠습니다.

SELECT name, department FROM employees;

이 문은 employees 테이블의 모든 행에 대해 namedepartment 열만 반환합니다. 출력은 다음과 유사해야 합니다.

     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 절을 사용하여 결과를 정렬하는 방법을 배웠습니다.

Illustration for querying data in PostgreSQL

마지막으로, 다음을 입력하여 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'과 같은 행에 대해 departmentname 열을 모두 업데이트합니다.

업데이트를 확인하려면 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'으로 설정합니다. 이러한 문을 실행할 때는 매우 주의하십시오.

Illustration for updating records in PostgreSQL

이제 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 테이블에서 레코드를 삭제하는 방법을 배웠습니다.

Illustration for record deletion in PostgreSQL

삭제가 성공했는지 확인하려면 employees 테이블을 확인하십시오.

SELECT * FROM employees;

출력은 다음과 같아야 합니다.

 id | name | department
----+------+------------
(0 rows)

마지막으로, 다음을 입력하여 psql 셸을 종료합니다.

\q

요약

이 랩에서는 PostgreSQL 의 기본적인 데이터 연산을 다루었으며, 테이블에 데이터를 삽입하는 데 중점을 두었습니다. 먼저 psql 명령줄 도구를 사용하여 데이터베이스에 연결했습니다. 그런 다음, id, name, department 열이 있는 employees 테이블을 생성하고, id를 자동 증가 기능이 있는 기본 키로 지정했습니다.

마지막으로, INSERT INTO 문을 사용하여 세 개의 직원 레코드를 employees 테이블에 삽입했습니다. 테이블 이름과 데이터를 삽입할 열을 지정하고 각 레코드에 해당하는 값을 함께 지정했습니다. 이는 PostgreSQL 테이블에 데이터를 채우는 기본 구문을 보여주었습니다.