-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path03_where.sql
More file actions
165 lines (136 loc) · 3.38 KB
/
Copy path03_where.sql
File metadata and controls
165 lines (136 loc) · 3.38 KB
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
-- oderable_status = 'N'인 행들 조회하기
-- 주문 불가능한 메뉴 조회(메뉴명, 메뉴코드)
SELECT
menu_name
, menu_code
-- , orderable_status
FROM tbl_menu
WHERE orderable_status = 'N';
-- DESC를 통한 컬럼명 빠르게 확인
DESC tbl_menu;
-- ----------------
-- '기타' 카테고리에 해당하지 않는 메뉴를 조회하시오.
-- 1) '기타' 카테고리의 번호 파악하기
SELECT * FROM tbl_category;
SELECT * FROM tbl_category WHERE category_name = '기타';
-- 2) 해당번호를 가지지 않는 메뉴조회
SELECT * FROM tbl_menu WHERE category_code != 10;
SELECT * FROM tbl_menu WHERE category_code <> 10;
-- --------------------
-- 10,000원 이상의 메뉴 조회
SELECT
*
FROM tbl_menu
WHERE menu_price >= 10000;
-- 10,000원 미만의 메뉴 조회
SELECT
*
FROM tbl_menu
WHERE menu_price < 10000;
-- 10,000원 이상 12,000원 이하 메뉴 조회
SELECT
*
FROM tbl_menu
WHERE menu_price >= 10000
AND menu_price <= 12000;
-- -------------------------------
-- and와 or 결과 비교
SELECT
menu_code
, menu_name
, menu_price
, category_code
, orderable_status
FROM tbl_menu
WHERE menu_price > 5000
AND category_code= 10;
SELECT
menu_code
, menu_name
, menu_price
, category_code
, orderable_status
FROM tbl_menu
WHERE menu_price > 5000
OR category_code= 10;
-- -------------------------------
-- between 연산자 활용(이상, 이하만 가능)
-- 가격이 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;
SELECT
*
FROM tbl_menu
-- WHERE NOT menu_price BETWEEN 5000 AND 9000;
WHERE menu_price NOT BETWEEN 5000 AND 9000; -- NOT의 위치는 상관 없음
-- ------------------------------
-- LIKE
-- 메뉴 중에 밥이 들어간 메뉴 조회
SELECT
*
FROM tbl_menu
WHERE menu_name LIKE '%밥%';
-- 메뉴 중에 밥이 들어가지 않는 메뉴 조회
SELECT
*
FROM tbl_menu
-- WHERE menu_name NOT LIKE '%밥%';
WHERE NOT menu_name LIKE '%밥%'; -- NOT 위치 상관 ㅌ
-- -----------------------------
-- in연산자
-- or을 활용한 '중식', '커피', '기타' 카테고리의 메뉴 조회
SELECT
*
FROM tbl_menu
WHERE category_code = 5
OR category_code = 8
OR category_code = 10;
-- in연산자 활용
SELECT
*
FROM tbl_menu
WHERE category_code IN (5, 8, 10);
-- -----------------------------
-- is null 연산자 활용
-- ref_category_code(상위 카테고리 번호)가 없는 카테고리 조회
SELECT
*
FROM tbl_category
WHERE ref_category_code IS NULL;
-- ref_category_code(상위 카테고리 번호)가 있는 카테고리 조회
SELECT
*
FROM tbl_category
WHERE ref_category_code IS NOT NULL;
SELECT
*
FROM tbl_category
WHERE NOT ref_category_code IS NULL;
SELECT
menu_name
, category_code
FROM tbl_menu
WHERE menu_name IN ('민트미역국', '생마늘샐러드', '한우딸기국밥')
ORDER BY menu_name;
SELECT
*
FROM tbl_menu;
-- SELECT
-- menu_name
-- , category_code
-- FROM tbl_menu
-- WHERE category_code IN (4, 5, 6)
-- ORDER BY category_code;