Notice
Recent Posts
Recent Comments
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Link
관리 메뉴

개발블로그

DB - 연산자, 함수 본문

DB

DB - 연산자, 함수

춘식스 2022. 2. 4. 17:43

논리연산

AND

  • 둘 다 참인경우 = 참
  • 하나만 참인경우 = 거짓
  • &&, and

OF

  • 둘중에 하나라도 참인경우 = 참
  • ||, of

NOT

  • 모두가 거짓, null이어야한다.

논리연산 정리표
논리연상 정리표 2
논리, 비교 연산자와 조건문 함수

CREATE TABLE example_teble (
	bool_col BOOLEAN
);

INSERT INTO example_table VALUES
(true),
(false),
(NULL);

SELECT * FROM example_table;

SELECT * FROM example_table WHERE bool_col = 'false';
SELECT * FROM example_table WHERE bool_col IS FALSE;
SELECT * FROM example_table WHERE bool_col != 'false';
  • 결과 = true
  • false와 다르다 = true
SELECT * FROM example_table WHERE bool_col IS NOT FALSE;
  • 결과 = null
  • false가 아니면 된다 = null
SELECT NULL = 'false' AS equal_false,
NULL IS FALSE AS is_false;
  • equal_false = null
    • null과 false는 같다 = null
  • is_false = false
    • null은 false다 = false
SELECT NULL = 'false' AS equal_false,
NULL IS NOT FALSE AS is_false;
  • is_false = true
    • null은 false가 아니다 = true
  • AS를 빼고 적어도 표는 나온다
    • 칼럼명을 몰라서 물음표로 나온다.

범위연산

SELECT * FROM example_table
WHERE 1 <= num_col AND num_col <= 9;
  • BETWEEN으로 대체가능하다.
SELECT * FROM example_table
WHERE BETWEEN 1 AND 9;

날짜 및 시간 연산

SELECT DATE '2020-07-15' + INTEGER '7' AS result;
SELECT DATE '2020-07-15' + TIME '13:00' AS result;

date + time의 결과값

SELECT DATE '2020-07-15' - DATE '2020-07-01' AS result;

date - date의 결과값

현재 날짜 정보 반환

SELECT current_date;

현재 날짜 정보 반환 결과값

현재 날짜 + 시간대 정보

SELECT current_time;

현재 날짜 + 시간대 결과값

현재 날짜 및 시간 + 시간대 정보

SELECT current_timestamp;

현재 날짜 및 시간 + 시간대 결과값

서브쿼리 연산

SELECT * FROM real_amount;
SELECT * FROM assumption_amount;
SELECT * FROM exception;

EXISTS

SELECT * FROM real_amount
SHERE EXISTS (
	SELECT * FROM assumption_amount
);

SELECT * FROM real_amount
SHERE EXISTS (
	SELECT * FROM exception
);

IN

SELECT * FROM real_amount
WHERE amount IN (
	10, 20, 30
);
  • 10, 20, 30이 있는게 나온다.

NOT IN

SELECT * FROM real_amount
WHERE amount NOT IN (
	10, 20, 30
);
  • 10, 20, 30 없는게 나온다.

ANY

SELECT * FROM real_amount
WHERE 10 = ANY (
	SELECT amount FROM assumption_amount
);

SELECT * FROM real_amount
WHERE 11 = ANY (
	SELECT amount FROM assumption_amount
);
  • 비교할 대상이 먼저 나온다.
  • () 안에 있는게 서브쿼리이다.

ALL

SELECT * FROM real_amount
WHERE 10 <= ALL (
	SELECT amount FROM assumption_amount
);
  • 모두 같아야한다.

 

'DB' 카테고리의 다른 글

DB - 데이터  (0) 2022.01.19
DB - DATABASE  (0) 2022.01.18
DB - Table  (0) 2022.01.18
PostgreSQL  (0) 2022.01.18
데이터베이스  (0) 2022.01.18
Comments