-
Notifications
You must be signed in to change notification settings - Fork 551
/
Copy path11.Logical Operators.sql
259 lines (202 loc) · 9.24 KB
/
11.Logical Operators.sql
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
/*"Select all books NOT published in 2017"*/
SELECT * FROM books
WHERE released_year NOT IN(2017);
SELECT title FROM books WHERE released_year != 2017;
/*Select all birthdays between 1990 and 1992*/
SELECT name,birthdate
FROM people
WHERE YEAR(birthdate) NOT BETWEEN 1990 AND 1992;
/*Select books with titles that don't start with 'W'*/
SELECT * FROM books
WHERE title NOT LIKE 'W%';
/*Select books released after the year 2000*/
SELECT * FROM books
WHERE released_year > 2000;
/*result: 1*/
SELECT 99 > 1;
/*Select books released before the year 2000*/
SELECT * FROM books
WHERE released_year < 2000;
/*SELECT books written by Dave Eggers, published after the year 2010*/
SELECT * FROM books
WHERE author_fname = 'Dave'
AND author_lname = 'Eggers'
AND released_year > 2010;
/* AND equals && */
SELECT * FROM books
WHERE author_fname = 'Dave'
&& author_lname = 'Eggers'
&& released_year > 2010;
/* OR equals || */
SELECT * FROM books
WHERE author_lname='Eggers' ||
released_year > 2010;
/*Select all books written by...
Carver
Lahiri
Smith*/
SELECT * FROM books
WHERE author_lname IN ('Carver','Lahiri','Smith');
SELECT * FROM books
WHERE author_lname = 'Carver' OR author_lname = 'Lahiri' OR author_lname = 'Smith';
/*Select all books not published in
2000,
2002,
2004,
2006,
2008,
2010,
2012,
2014,
2016*/
SELECT * FROM books
WHERE released_year NOT IN (2000,2002,2004,2006,2008,2010,2012,2014,2016);
/*I only want books released after 2000 and year is even number*/
SELECT * FROM books
WHERE released_year > 2000
AND released_year % 2 = 0;
/*
+-----------------------------------------------------+---------------+------------------+
| title | released_year | GENRE |
+-----------------------------------------------------+---------------+------------------+
| The Namesake | 2003 | Modern Lit |
| Norse Mythology | 2016 | Modern Lit |
| American Gods | 2001 | Modern Lit |
| Interpreter of Maladies | 1996 | 20th Century Lit |
| A Hologram for the King: A Novel | 2012 | Modern Lit |
+-----------------------------------------------------+--------------------------+-------+*/
SELECT title,released_year,
CASE
WHEN released_year >= 2000 THEN 'Modren Lit'
ELSE '20th Century Lit'
END AS 'GENRE'
FROM books;
/*
0 - 50 : 1 star
51 - 100 : 2 stars
> 100 : 3 stars
+-----------------------------------------------------+----------------+-------+
| title | stock_quantity | STOCK |
+-----------------------------------------------------+----------------+-------+
| The Namesake | 32 | * |
| Norse Mythology | 43 | * |
| American Gods | 12 | * |
| Interpreter of Maladies | 97 | ** |
| A Hologram for the King: A Novel | 154 | *** |
| The Circle | 26 | * |
| The Amazing Adventures of Kavalier & Clay | 68 | ** |
| Just Kids | 55 | ** |
| A Heartbreaking Work of Staggering Genius | 104 | *** |
| Coraline | 100 | ** |
| What We Talk About When We Talk About Love: Stories | 23 | * |
| Where I'm Calling From: Selected Stories | 12 | * |
| White Noise | 49 | * |
| Cannery Row | 95 | ** |
| Oblivion: Stories | 172 | *** |
| Consider the Lobster | 92 | ** |
| 10% Happier | 29 | * |
| fake_book | 287 | *** |
| Lincoln In The Bardo | 1000 | *** |
+-----------------------------------------------------+----------------+-------+
*/
SELECT title, stock_quantity,
CASE
WHEN stock_quantity > 100 THEN '***'
WHEN stock_quantity >= 50 AND stock_quantity <= 100 THEN '**'
ELSE '*'
END AS STOCK
FROM books;
-- OR --
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;
-- OR --
SELECT title, stock_quantity,
CASE
WHEN stock_quantity <= 50 THEN '*'
WHEN stock_quantity <= 100 THEN '**'
ELSE '***'
END AS STOCK
FROM books;
/*-------------------------------------------------*/
/*-------- Challenges ---------------------------*/
-- Result : 0 (False)
SELECT 10 != 10;
-- Result: 1 (True)
SELECT 15 > 14 && 99 - 5 <= 94;
-- Result: 1 (True)
SELECT 1 IN (5,3) || 9 BETWEEN 8 AND 10;
/*Select All Books Written Before 1980 (non inclusive)*/
SELECT * FROM books
WHERE released_year < 1980;
/*Select All Books Written By Eggers Or Chabon*/
SELECT * FROM books
WHERE author_lname IN ('Eggers', 'Chabon');
/*Select All Books Written By Lahiri, Published after 2000*/
SELECT * FROM books
WHERE author_lname = 'Lahiri' AND released_year > 2000;
/*Select All Books Written By Lahiri, Published after 2000*/
SELECT * FROM books
WHERE author_lname = 'Lahiri' && released_year > 2000;
/*Select All books with page counts between 100 and 200*/
SELECT * FROM books
WHERE pages BETWEEN 100 AND 200;
/*Select all books where author_lname starts with a 'C' or an 'S''*/
SELECT * FROM books
WHERE author_lname LIKE 'C%' OR author_lname LIKE 'S%';
-- OR
/*Select all books where author_lname starts with a 'C' or an 'S''*/
SELECT * FROM books
WHERE SUBSTR(author_lname,1,1) IN ('C','S');
/*If title contains 'stories' -> Short Stories
Just Kids and A Heartbreaking Work -> Memoir
Everything Else -> Novel
+-----------------------------------------------------+----------------+---------------+
| title | author_lname | TYPE |
+-----------------------------------------------------+----------------+---------------+
| The Namesake | Lahiri | Novel |
| Norse Mythology | Gaiman | Novel |
| American Gods | Gaiman | Novel |
| Interpreter of Maladies | Lahiri | Novel |
| A Hologram for the King: A Novel | Eggers | Novel |
| The Circle | Eggers | Novel |
| The Amazing Adventures of Kavalier & Clay | Chabon | Novel |
| Just Kids | Smith | Memoir |
| A Heartbreaking Work of Staggering Genius | Eggers | Memoir |
| Coraline | Gaiman | Novel |
| What We Talk About When We Talk About Love: Stories | Carver | Short Stories |
| Where I'm Calling From: Selected Stories | Carver | Short Stories |
.....
+-----------------------------------------------------+----------------+---------------+
*/
SELECT title,author_lname,
CASE
WHEN title LIKE '%stories%' THEN 'Short Stories'
WHEN title = 'Just Kids' OR title = 'A Heartbreaking Work of Staggering Genius' THEN 'Memoir'
ELSE 'Novel'
END AS 'TYPE'
FROM books;
/*+-----------------------------------------------------+----------------+---------+
| title | author_lname | COUNT |
+-----------------------------------------------------+----------------+---------+
| What We Talk About When We Talk About Love: Stories | Carver | 2 books |
| The Amazing Adventures of Kavalier & Clay | Chabon | 1 book |
| White Noise | DeLillo | 1 book |
| A Hologram for the King: A Novel | Eggers | 3 books |
| Oblivion: Stories | Foster Wallace | 2 books |
| Norse Mythology | Gaiman | 3 books |
| 10% Happier | Harris | 1 book |
| fake_book | Harris | 1 book |
| The Namesake | Lahiri | 2 books |
| Lincoln In The Bardo | Saunders | 1 book |
| Just Kids | Smith | 1 book |
| Cannery Row | Steinbeck | 1 book |
+-----------------------------------------------------+----------------+---------+
*/
SELECT author_fname, author_lname,CONCAT(CAST(COUNT(*) AS CHAR(4)), ' book(s)') AS 'total books'
FROM books
GROUP BY author_lname, author_fname;