본문 바로가기
Programming/Database

postgres Database 명령어

by 하하호호 2021. 10. 22.
반응형

 

# 중복제거

DISTINCT

# 조건 검색

WHERE

AND

AND + OR : 2개 이상 연산자를 사용해서 DB 검색을 할 수 있다.

 

 

# 연산자

 

SELECT 1=1; // TRUE
SELECT 1=2; // FALSE
SELECT 1>2; // FALSE
SELECT 1<2; // TRUE
# 같지 않음
SELECT 1<>2; // TRUE
SELECT 1<>1; // FALSE

 

# LIMIT

 

# OFFSET

offset은 특정 숫자까지의 DB 객체들을

보여주지 않는다. 그 다음의 숫자부터

객체들을 보여주는 명령어다.

# OFFSET + LIMIT

OFFSET에 LIMIT을 더하면, 

특정 숫자 이후부터 특정 숫자까지의

range를 설정하여 DB검색을 할 수 있다.

# IN

만약 조건 검색시 다양한 조건값이 존재한다면,

중복해서 조건값을 넣어야 한다. 

이런 경우 IN 키워드를 사용하면, 다양한 조건식을

한번에 정리해서 입력할 수 있다.

 

# BETWEEN

특정 조건의 값을 임의로 range를 만들어서

검색가능하도록 하는 키워드다.

# LIKE , # ILIKE

LIKE에서는 wildcard를 이용해서,

유사한 문자열을 찾아내는 키워드다.

 

'%' 는 모든 문자열을 의미한다.

'_'는 문자열의 갯수를 의미한다.

 

 

 

ILIKE는 lowercase를 uppercase로 바꾸어

검색해주는 명령어다.

 

#GROUP BY

중복된 DB를 그룹화해서 보여주는 명령어다.

DISTINCT와 유사하지만, 그룹으로 묶어서 

보여주기 때문에, count도 가능하다.

GROUNT BY는 COUNT와 같이 사용할 경우

그룹내 객체들의 개수를 확인할 수 있다.

 

결과물들을 특정 column에 따라서 정렬도 가능하다.

그룹내 갯수에 따라서도 정렬이 가능하다.

그룹내 객체들의 갯수들의 Descending으로도 order이

가능하다.

 

# HAVING

aggregate funcion이라 부른다.

조건식을 만들어서 쿼리를 효과적으로

검색하는 명령어다.

 

테이블에서 country_of_birth column이 40개 이상인

데이터만 추출하는 명령어로 사용가능하다.

 

# MAX, MIN, AVG

테이블의 데이터 중 숫자에 대한 최대값, 최소값,

평균값을 구할 수 있다. 그리고, 구해진 값을 통해서

순서 정렬도 가능하다.

 

차량의 브랜드와 모델명을 추출하고,

가격이 낮은 데이터만 추출해서

보여주는 명령어다.

 

가격이 가장 높은 메이커와 모델만

보여주는 명령어다.

메이커의 가격 평균을 보여주는 명령어다.

 

 

# SUM

메이커 혹은 모델별로 

가격의 합을 보여주는 명령어다.

 

 

SUM, MAX, MIN, AVG 모두 

GROUP BY 명령어와 함께 사용되어야 한다.

만약 단독으로 사용하게 되면 에러가 발생한다.

 

 

# Artithemetic Operators

postgres에서는 기본적인 수학 연산자를 제공한다.

# ALIAS

TABLE에서 특정 데이터를 출력하면 column name이

제멋대로 변경되어있는 것을 볼 수 있다.

postgres에서는 함수명을 그대로 column네임으로 사용하기

때문이다. 

 

AS "column name" 명령어를 통해 새로운 column에 대한

이름을 지정하여 출력할 수 있다.

 

SELECT id, make, model, price AS original_price, ROUND(price*.10) AS ten_percent_value, ROUND(price-(price*0.10), 2) AS discount_percent_value FROM car;

 

# COALESCE

테이블에 NULL값으로 들어간 데이터들이 존재한다.

이런 데이터들을 그냥 두지 않고, NULL값이 발견

되었을 때 Exception 처리를 해주는 명령어가

COALESCE 명령어다.

 

SELECT COALESCE(email, '** Email Not Provided') FROM person;

 

 

# NULL IF

 

#TIME

postgres에서 시간을 구하는 방법은 다음과 같다.

시간 : NOW()::TIME;

날짜 : NOW()::DATE;

 

# INTERVAL

posgres에서 시간을 더하거나 빼서 결과값을

구해야 하는 경우가 있다. 이럴 경우 INTERVAL

keyword를 사용한다.

 

SELECT NOW() - INTERVAL '1 YEAR';
SELECT NOW() - INTERVAL '10 YEAR';
SELECT NOW() - INTERVAL '10 MONTH';
SELECT NOW() + INTERVAL '10 DAY';
SELECT NOW() + INTERVAL '10 MONTH';
SELECT NOW() + INTERVAL '10 YEAR';

 

 

INTERVAL 로 얻은 결과값을 DATE나 TIME으로

보기 위해서는 전체를 ()로 감싸주면 된다.

 

SELECT (NOW() + INTERVAL '10 YEAR')::DATE;

 

# AGE

특정 출생일을 기준으로 나이를 계산할 수 있다.

파라미터 값으로는 (현재시간 + 출생일자)를

받고 있다.

 SELECT first_name,email,gender, AGE(NOW(), date_of_birth) AS age FROM person;

 

반응형

댓글