-- where절
-- orderable_status = 'N'인 행들 조회하기
-- 주문 불가능한 메뉴 조회(메뉴명, 메뉴코드)
SELECT
menu_name
, menu_code
--, orderable_status
FROM tbl_menu
WHERE orderable_status = 'N';
-- desc를 통한 컬럼명 빠르게 확인
DESC tbl_menu;
-- --------------------------------------------------------------------------------------
-- 1) 10,000원 이상의 메뉴 조회
SELECT * FROM tbl_menu;
SELECT *
FROM tbl_menu
WHERE menu_price >= 10000;
-- 2) 10,000원 미만의 메뉴 조회
SELECT *
FROM tbl_menu
WHERE menu_price < 10000;
-- 3) 10,000원 이상 12,000원 이하 메뉴 조회
SELECT *
FROM tbl_menu
WHERE menu_price >= 10000
AND menu_price <= 12000;
-- and or 연산자 > 논리 연산자(=참과 거짓만으로 연산하는 것)
-- and > 둘 다 만족, 이면서, 그리고, 동시에
-- or > 둘 중에 아무거나, 또는, 이거나
-- -------------------------------------------------------------------------------
-- '기타' 카테고리에 해당하지 않는 메뉴를 조회하시오.
-- 1) '기타' 카테고리의 번호 파악하기
SELECT *
FROM tbl_category
WHERE category_name = '기타'; -- category_code가 '10번'임을 알아냄
-- 2) 해당 번호를 가지지 않는 메뉴 조회
SELECT *
FROM tbl_menu
WHERE category_code != 10;
SELECT *
FROM tbl_menu
WHERE category_code <> 10;
같지 않음 연산자: != or <>
같음 연산자: =
-- 3) 10,000원 이상 12,000원 이하 메뉴 조회
SELECT *
FROM tbl_menu
WHERE menu_price >= 10000
AND menu_price <= 12000;
-- and > 둘 다 만족, 이면서, 그리고, 동시에
SELECT
menu_code
, menu_name
, menu_price
, category_code
, orderable_status
FROM tbl_menu
WHERE menu_price > 5000
OR category_code = 10;
-- --------------------------------------------------------------------------------
-- between 연산자 활용하기(feat. 이상 이하만 가능(초과, 미만은 불가능))
-- 가격이 5000원 이상 9000원 이하인 전체 컬럼 조회
SELECT
*
FROM tbl_menu
WHERE menu_price >= 5000
AND menu_price <= 9000;
SELECT
*
FROM tbl_menu
WHERE menu_price BETWEEN 5000 AND 9000;
-- 반대의 범위로 했을 경우
SELECT
*
FROM tbl_menu
WHERE menu_price < 5000
or menu_price > 9000;
-- not의 위치는 컬럼명 앞 뒤로 가능
-- where not menu_price btween 5000 and 9000;
SELECT
*
FROM tbl_menu
WHERE menu_price not BETWEEN 5000 AND 9000;
-- ---------------------------------------------------------------------------
-- like
-- 메뉴 이름에 '밥'이 들어간 메뉴 조회
SELECT
*
FROM tbl_menu
WHERE menu_name LIKE '%밥%';
-- 메뉴 이름에 '밥'이 안들어간 메뉴 조회
SELECT
*
FROM tbl_menu
WHERE NOT menu_name LIKE '%밥%';
-- ------------------------------------------------------------------------------
-- in연산자
-- or을 활용한 '중식', '커피', '기타' 카테고리의 메뉴 조회하기
SELECT
*
FROM tbl_menu
WHERE category_code = 5
OR category_code = 8
OR category_code = 10;
-- in 연산자 활용(위에 or을 활용한 카테고리의 메뉴 조회와 같은 결과가 추출됨)
SELECT
*
FROM tbl_menu
WHERE category_code IN (5, 8, 10);
-- -------------------------------------------------------------------------------
-- is null 연산자 활용
SELECT * FROM tbl_category;
-- ref_category_code(상위 카테고리 번호)가 없는 카테고리 조회
SELECT
*
FROM tbl_category
WHERE ref_category_code IS NULL;
-- 반대도 해보자.
SELECT
*
FROM tbl_category
WHERE ref_category_code IS not NULL;
-- orderable_status = 'N'인 행들 조회하기
-- 주문 불가능한 메뉴 조회(메뉴명, 메뉴코드)
SELECT
menu_name,
menu_code
FROM tbl_menu
WHERE orderable_status = 'N';
-- desc를 통한 컬럼명 빠르게 확인
DESC tbl_menu;
-- 1) 10,000원 이상의 메뉴 조회
SELECT *
FROM tbl_menu
WHERE menu_price >= 10000;
-- 2) 10,000원 미만의 메뉴 조회
SELECT *
FROM tbl_menu
WHERE menu_price < 10000;
-- 3) 10,000원 이상 12,000원 이하 메뉴 조회
SELECT *
FROM tbl_menu
WHERE menu_price >= 10000
AND menu_price <= 12000;