SQL 논리 연산자

·2024년 4월 4일
0

MySQL

목록 보기
7/14
post-thumbnail

NOT LIKE

같지 않음을 표현

SELECT title FROM books WHERE title NOT LIKE '%a%';
-- 제목에 a가 포함되지 않은 것을 선택

&& (AND 연산자)

SELECT title FROM books WHERE CONCAT(author_fname, " ",author_lname) = "Dave Eggers" && released_year < 2010;

SELECT title, pages FROM books WHERE CHAR_LENGTH(title) > 30 && pages > 500;

BETWEEN

비교 연산자를 이용하여 5와 20 사이 또는 하한 임계값과 상한 임계값 사이로 값을 좁힐 수 있음.

SELECT title FROM books WHERE released_year >= 2004 && released_year <= 2015

-- 아래처럼 표현도 가능함.

SELECT * FROM people WHERE birthtime 
BETWEEN CAST('12:00:00' AS TIME) 
AND CAST('16:00:00' AS TIME);

시간 및 기간 비교하기

SELECT * FROM people WHERE birthtime 
BETWEEN CAST('12:00:00' AS TIME) 
AND CAST('16:00:00' AS TIME);
 
 
SELECT * FROM people WHERE HOUR(birthtime)
BETWEEN 12 AND 16;

⭐️IN⭐️ 연산자

IN 연산자를 사용하기 전

SELECT title, author_lname FROM books WHERE  author_lname = "Lahiri" || author_lname = "Carver";

IN 연산자를 사용 후,

SELECT title, author_lname FROM books
WHERE author_lname = 'Carver' 
OR author_lname = 'Lahiri'
OR author_lname = 'Smith';
 
SELECT title, author_lname FROM books
WHERE author_lname IN ('Carver', 'Lahiri', 'Smith');
 
SELECT title, author_lname FROM books
WHERE author_lname NOT IN ('Carver', 'Lahiri', 'Smith');


-- 번외 : 홀수년도의 책만 선택하여 조회
SELECT title, released_year FROM books WHERE released_year >= 2000 && released_year % 2 = 1;

IN 연산자 뒤에 괄호를 만들어 집합을 만들어준다.

NOT IN 연산자를 사용하면, 기존과 반대되는 결과를 가져올 수 있다.

⭐️CASE⭐️

CASE를 사용하여 값에 대한 결정을 내리고, 값에 따라 다른 결과를 얻을 수 있습니다.

발행년도에 따른 CASE문 작성

SELECT
  title,
  released_year,
  CASE
        WHEN released_year >= 2000 THEN 'Modern Lit'
        ELSE '20th Century Lit'
    END AS GENRE
FROM books ORDER BY GENRE;

재고량에 따른 CASE문 작성

SELECT title, stock_quantity,
    CASE
        WHEN stock_quantity BETWEEN 0 AND 50 THEN "*"
        WHEN stock_quantity BETWEEN 51 AND 100 THEN "**"
        ELSE '***'
    END AS STOCK
FROM books;

위 구문을 비교 연산자로 아래처럼 축약 가능하다.

SELECT title, stock_quantity,
    CASE
        WHEN stock_quantity <= 50 THEN "*"
        WHEN stock_quantity <= 100 THEN "**"
        WHEN stock_quantity <= 200 THEN "***"
        ELSE "****"
    END AS stock
FROM books;

IS NULL

IS NULL 연산자를 사용하면 NULL값을 선택할 수 있음.

profile
- 배움에는 끝이 없다.

0개의 댓글