상세 컨텐츠

본문 제목

SQL - 구문 기초

Computer Science/데이터베이스

by Dohangang 2024. 4. 4. 15:10

본문

 

 

 

 

 

 

 

SQL의 골조를 잡고자 새로 학습하면서 postgreSQL을 기본으로 하는 학습을 하였습니다.

저는 본래 mysql을 다루었는데 postgreSQL을 사용해 보며 시야를 조금 더 넓힐 수 있었습니다.

둘 모두 공통된 부분이 많고 서로 지원하지 않는 부분도 있어 이 글을 읽는 분들도 차이를 인지하고 자신이 사용하는 것에 맞게 SQL을 작성하시기 바랍니다.

 

이번 글은 데이터베이스에서 정보들을 불러오는 구문들 중 가장 쉽고 기본이 되는 것들에 대해 작성했습니다.

예시들을 보시고 이해에 도움이 되셨길 바랍니다.

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

SELECT

  • 데이터베이스에서 데이터를 조회할 때 사용하는 기본적인 구문

 

SELECT DISTINCT

  • 중복된 값을 제외하고 고유한 값을 반환한다

 

SELECT COUNT (DISTINCT column) FROM table    —>    괄호가 있어야 한다

  • 특정 열의 고유한 값들의 수를 세는데 사용된다

 

SELECT WHERE

  • 조건에 따라 데이터를 필터링할 때 사용된다
  • SELECT name,choice FROM table WHERE name = ‘David’ AND choice = ‘RED’
  • SELECT title FROM film WHERE rental_rate > 4 AND replacement_cost >= 19.99 AND rating != 'R';
  • SELECT * FROM film WHERE rating = 'R' OR rating = 'PG-13';

 

ORDER BY

  • 결과를 정렬할 때 사용한다. ASC(오름차순) DESC(내림차순)을 사용하여 순서 지정
  • SELECT column_1, column_2 FROM table ORDER BY column_1 ASC/DESC
  • SELECT column_1, column_2, column_3 FROM table ORDER BY column_1, column_2   
    → column_1에 대해 먼저 정렬하고 column_2를 이후에 정렬한다
  • SELECT column_1, column_2, column_3 FROM table ORDER BY column_1 DESC, column_2 ASC
    → 개별로 가능
  • SELECT 에 존재하지 않는 column도 ORDER BY 할 수 있지만 논리적으로 좋지 않다

 

LIMIT

  • 쿼리 결과에 반환되는 행의 수를 제한하는 데 사용한다
  • SELECT * FROM payment WHERE amount != 0 ORDER BY payment_date DESC LIMIT 10;

 

BETWEEN

  • 주어진 범위에 값이 있는지 확인하는 데 사용한다
  • SELECT * FROM payment WHERE amount BETWEEN 8 AND 9;
    → datetime에 관련, BETWEEN 2024-02-12 AND 2024-02-13 이라고 했을 때, 2월 13일 정보는 없다. 닫힌구간

 

IN

  • 특정 값들 중 하나에 대해 일치하는 행을 선택할 수 있게 해 준다
  • SELECT color FROM table WHERE color IN (’red’, ‘blue’);
  • SELECT color FROM table WHERE color NOT IN (’red’, ‘blue’);

 

LIKE, ILIKE (패턴 매칭, 와일드카드 연산자<%, _, …>, LIKE는 대소문자 구분, ILIKE는 대소문자 구분 안 함)

  • 문자열 패턴을 매칭하는 데 사용된다
  • SELECT * FROM customer WHERE first_name NOT LIKE 'J%’
  • SELECT * FROM customer WHERE first_name LIKE 'J%' AND last_name LIKE 'S%’
  • ‘_her%’, ‘%her%’ etc

 

 

 

 

 

 

 

관련글 더보기