본문 바로가기

Database/PostgreSQL

PostgreSQL - 02 (pgAdmin)

서버 접속

pgAdmin 설치는 이전 포스트(PostgreSQL - 01 (설치 - Windows))를 참고 하세요.

컴퓨터에서 pgAdmin을 실행합니다.

좌측 탐색기에서 Servers 좌측의 >를 클릭합니다.

설치 시 설정한 비밀번호를 입력하고 OK를 클릭합니다.

데이티베이스 생성

'서버 이름(PostgreSQL 16)'을 마우스 오른쪽 버튼으로 클릭하고 'Create' > 'Database...'를 선택합니다.

데이터베이스 이름을 입력합니다. 저는 mydatabase를 입력하였습니다.

Save를 클릭합니다.

mydatabase가 생성되었습니다.

테이블 생성

저는 fastapi 보안 포스트(FastAPI - 16 (보안2 - QAuth2, Bearer))의 예제 테이블을 생성하겠습니다.

'데이터베이스(mydatabase)' -> 'Schemas' > 'public' > 'Tables'을 마우스 오른쪽 버튼으로 클릭하고 'Create' > 'Table...'를 선택합니다.

'General' 탭에서 'Name'에 테이블 이름을 입력합니다. 저는 tb_users를 입력하였습니다.

'Columns' 탭에서 컬럼을 추가합니다.

  • username (charcter varying, 100, not null, PRIMARY KEY)
  • full_name (charcter varying, 100)
  • email (charcter varying, 100)
  • hashed_password (charcter varying, 1000, not null)
  • disabled (boolean, not null)

Save를 클릭합니다. (화면 캡처 할 때 오타가 있었네요. ful_name -> full_name)

tb_users 테이블이 생성되었습니다.

데이터 입력/조회/수정/삭제

데이터 입력/조회/수정/삭제는 sql을 이용하겠습니다.
'tb_users'에 사용자 정보를 입력하고 조회/수정/삭제를 해보겠습니다.
먼저 Query Tool을 실행합니다.

'데이터베이스(mydatabase)' 또는 '테이블(tb_users)'를 마우스 오른쪽 버튼으로 클릭하고 Query Tool을 선택합니다.

Query Tool이 실행되어 sql을 실행 할 수 있습니다.

데이터 입력

사용자 정보를 입력합니다.

INSERT INTO tb_users (username, full_name, email, hashed_password, disabled)
VALUES ('johndoe', 'John Doe', 'johndoe@example.com', 'hashed_password_here', false);

쿼리를 입력하고 상위메뉴의 '화살표'를 클릭하거나 F5를 누르면 쿼리가 실행됩니다.

하단의 'Messages'에 'Query returned successfully in 57 msec.'가 출력되었습니다.

데이터 조회

방금 입력한 사용자 정보를 조회합니다.

SELECT * FROM tb_users WHERE username = 'johndoe';

쿼리를 입력하고 F5를 눌러 실행합니다.

하단의 'Data Output'에 조금 전 입력한 사용자의 정보가 조회되어 출력됩니다.

데이터 수정

방금 입력한 사용자 정보를 수정합니다.

UPDATE tb_users 
SET 
    hashed_password = 'new_hashed_password_here', 
    disabled = true 
WHERE 
    username = 'johndoe';

쿼리를 입력하고 F5를 눌러 실행합니다.

Query returned successfully in 57 msec.

하단의 'Messages'에 'Query returned successfully in 57 msec.'가 출력되었습니다.

데이터 삭제

방금 입력한 사용자 정보를 삭제합니다.

DELETE FROM tb_users WHERE username = 'johndoe';

쿼리를 입력하고 F5를 눌러 실행합니다.

Query returned successfully in 27 msec.

하단의 'Messages'에 'Query returned successfully in 57 msec.'가 출력되었습니다.