[DB/PostgreSQL] 예제로 PostgreSQL 기초문법 익히기

류성훈·2022년 7월 27일
2

DB

목록 보기
2/3


샘플데이터를 다운받아, psql로 Postgresql의 기초문법을 알아보자.

Sample data

dvdrental.tar 샘플데이터 다운로드

데이터를 DB에 넣는 방법

  1. psql 사용

    pg_restore -U postgres -d test1 dvdrental.tar

    dvdrental.tar 데이터 파일을 postgres 사용자가 test1 DB에 restore

  2. pdAdmin4 사용

    프로그램에서 데이터베이스를 골라서 restore → 파일선택

psql 접속하기

  • psql -U postgres
    • postgres라는 사용자의 이름으로 접속한다.
    • 비밀번호 입력

      접속완료

명령어들

  • \l : 데이터베이스 목록을 조회한다.

    데이터베이스 목록

  • \c : 현재 접속정보 조회


    사용자:postgres, 데이터베이스:postgres

  • \connect 데이터베이스명 : 베이터베이스 선택, 연결


데이터베이스가 postgres에서 test1으로 변경됨

  • \dt : 테이블 목록 조회

    15개의 행 조회

  • \d : 관계목록(테이블,보기,시퀀스) 조회

    총 35개의 관계목록

  • \d 테이블이름 : 테이블에개한 개별 정보 조회

    film 테이블에대한 상세정보 조회

  • SELECT <columns> FROM <table>; SELECT의 기본 형식

    • ex) SELECT actor_id, first_name FROM actor;

      쿼리 실행결과 (200개 행)

  • SELECT <columns> FROM <table> LIMIT <int>; 개만큼 데이터를 조회한다. (위에서부터)

    • ex) SELECT actor_id, first_name FROM actor LIMIT 4;

      쿼리 실행결과 (4개 행)

  • SELECT <columns> FROM <table> WHERE <조건>; 조건에 맞는 데이터를 조회한다.

    • ex) SELECT * FROM customer WHERE store_id=2 and customer_id=400;

      store_id = 2 이고, customer_id = 400 인 데이터 (1행)

  • SELECT <columns> FROM <table> WEHRE <조건> BETWEEN <범위1> AND <범위2>; 범위1과 범위2사이 데이터 출력

  • SELECT <columns> FROM <table> WEHRE <조건> IN <범위1>; 범위1안에 들어있는 데이터 출력

  • SELECT <columns> FROM <table> WEHRE <조건> IS NULL; <조건>이 NULL인 데이터 출력

    • ex) SELECT * FROM address WHERE address2 IS NULL;

      address2가 NULL값을 가진 4개의 데이터행

  • SELECT <columns> FROM <table> WEHRE <조건> IS NOT NULL; <조건>이 NULL이 아닌데이터 출력

  • SELECT <columns> FROM <table> ORDER BY <colomn name> DESC; 데이터를 내림차순으로 정렬

    • ex) SELECT film_id, title FROM film ORDER BY film_id DESC LIMIT 4;

      film_id를 기준으로 내림차순으로 출력된 데이터

  • SELECT DISTINCT <columns> FROM <table>; 결과에서 중복 행을 제거. 모든열의 조합에 적용

    • ex) SELECT DISTINCT customer_id, staff_id FROM payment;

      중복이 모두 제거된 amount

  • SELECT min(<columns>) FROM <table>; 최소값을 얻는다

  • SELECT max(<columns>) FROM <table>; 최대값을 얻는다

    • ex) `SELECT max(amount) FROM payment WHERE amount < 4;`

      4보다 작은 amount중 가장 큰(max) amount 조회

dvdrental 데이터 예제 참고

SQL Part 1

profile
(전)Backend Developer / (현)Data Engineer

0개의 댓글