본문 바로가기

UI/BE : DB, Node

[ BE/DB ] SQLlite:기본편 2편

1. IIF (Immediate If)

조건식의 참/거짓 여부에 따라 다른 값을 반환하는 함수입니다. 

SQL 표준은 아니지만, SQLite에서 간편하게 조건부 로직을 구현할 때 유용합니다.
구문: IIF(조건식, 참일_때_값, 거짓일_때_값)

-- products 테이블에서 price가 100보다 크면 'High', 아니면 'Low'를 반환하여 price_category 열로 표시
SELECT product_name, price, IIF(price > 100, 'High', 'Low') AS price_category
FROM products;

 

2. AS (Alias)

테이블 또는 열에 임시 이름을 부여합니다. 쿼리를 더 읽기 쉽게 만들거나, 

복잡한 계산 결과에 의미 있는 이름을 붙일 때 사용합니다.
구문:
열 별칭: SELECT column_name AS alias_name FROM table_name;
테이블 별칭: SELECT t.column_name FROM table_name AS t;

-- products 테이블에서 product_name을 name으로, price를 unit_price로 별칭 지정
SELECT product_name AS name, price AS unit_price
FROM products;

--products p 라고 테이블 명을 변경.
SELECT p.product_name
FROM products p;

 

3. BETWEEN

값이 지정된 범위 내에 있는지 확인합니다. 범위의 양 끝 값(경계값)을 포함합니다.
구문: value BETWEEN low_value AND high_value

-- products 테이블에서 price가 50에서 100 사이인 상품을 조회
SELECT product_name, price
FROM products
WHERE price BETWEEN 50 AND 100;

 

4. DISTINCT

조회된 결과에서 중복된 행을 제거하고 고유한 값만 반환합니다.
구문: SELECT DISTINCT column_name FROM table_name;

-- orders 테이블에서 주문한 고객의 ID를 중복 없이 조회 (고유한 고객 ID 목록)
SELECT DISTINCT customer_id
FROM orders;

 

5. WHERE / AND / OR

WHERE: 쿼리에서 특정 조건을 만족하는 행만 선택하는 데 사용됩니다.
AND: 여러 조건을 모두 만족하는 행을 선택합니다.
OR: 여러 조건 중 하나 이상을 만족하는 행을 선택합니다.

SELECT column_name(s)
FROM table_name
WHERE condition1 AND condition2;

SELECT column_name(s)
FROM table_name
WHERE condition1 OR condition2;


-- customers 테이블에서 city가 'Seoul'이고 age가 30 이상인 고객을 조회
SELECT customer_name, city, age
FROM customers
WHERE city = 'Seoul' AND age >= 30;

-- customers 테이블에서 city가 'Seoul'이거나 country가 'Korea'인 고객을 조회
SELECT customer_name, city, country
FROM customers
WHERE city = 'Seoul' OR country = 'Korea';

 

6. COUNT(*)

특정 테이블 또는 그룹의 행 수를 계산합니다. *를 사용하면 NULL 값을 포함한 모든 행을 카운트합니다.

구문:

SELECT COUNT(*) FROM table_name; (전체 행 수)
SELECT COUNT(*) FROM table_name WHERE condition; (조건을 만족하는 행 수)
SELECT column1, COUNT(*) FROM table_name GROUP BY column1; (그룹별 행 수)

-- orders 테이블의 전체 주문 건수를 조회
    SELECT COUNT(*) AS total_orders
    FROM orders;

    -- orders 테이블에서 product_id가 'P123'인 주문 건수를 조회
    SELECT COUNT(*) AS p123_orders
    FROM orders
    WHERE product_id = 'P123';

 

7. IN

값이 지정된 목록에 포함되는지 확인합니다. 여러 값을 OR 조건으로
 연결하는 것보다 간결하게 표현할 수 있습니다.
구문: value IN (value1, value2, ...)

-- products 테이블에서 product_id가 'P1', 'P3', 'P5' 중 하나인 상품을 조회
SELECT product_name, product_id
FROM products
WHERE product_id IN ('P1', 'P3', 'P5');

 

8. LIKE (와일드카드: %, _)

LIKE: 문자열 패턴을 사용하여 데이터를 검색합니다.
% (퍼센트): 0개 이상의 임의의 문자열을 나타냅니다.
_ (언더스코어): 임의의 단일 문자를 나타냅니다.
구문: value LIKE pattern

-- customers 테이블에서 customer_name이 '김'으로 시작하는 고객을 조회
SELECT customer_name
FROM customers
WHERE customer_name LIKE '김%';

-- customers 테이블에서 email 주소에 '.com'이 포함된 고객을 조회
SELECT customer_name, email
FROM customers
WHERE email LIKE '%.com%';

-- employees 테이블에서 phone_number가 010-XXXX-1234 형식인 직원 조회 (XXXX는 임의의 4자리 숫자)
SELECT employee_name, phone_number
FROM employees
WHERE phone_number LIKE '010-____-1234';

-- products 테이블에서 product_name 이 5글자인 상품을 조회.
SELECT product_name
FROM products
WHERE product_name LIKE '_____';

 

 

출처 :

https://www.youtube.com/watch?v=KBDSJU3cGkc