Skip to content

Commit bcd270c

Browse files
authored
Create Advance_Mysql.py
1 parent 0a034c3 commit bcd270c

File tree

1 file changed

+347
-0
lines changed

1 file changed

+347
-0
lines changed

Advance_Mysql.py

Lines changed: 347 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,347 @@
1+
--
2+
-- Table structure for table `animal_types`
3+
--
4+
5+
CREATE TABLE `animal_types` (
6+
`animal_type_id` int(11) NOT NULL AUTO_INCREMENT,
7+
`animal_type_description` varchar(255) NOT NULL,
8+
PRIMARY KEY (`animal_type_id`)
9+
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
10+
11+
--
12+
-- Dumping data for table `animal_types`
13+
--
14+
15+
INSERT INTO `animal_types` VALUES(1, 'duck');
16+
INSERT INTO `animal_types` VALUES(2, 'cow');
17+
INSERT INTO `animal_types` VALUES(3, 'goose');
18+
INSERT INTO `animal_types` VALUES(4, 'cat');
19+
INSERT INTO `animal_types` VALUES(5, 'sheep');
20+
INSERT INTO `animal_types` VALUES(6, 'horse');
21+
22+
--
23+
-- Table structure for table `farm`
24+
--
25+
26+
CREATE TABLE `farm` (
27+
`animal_id` int(11) NOT NULL AUTO_INCREMENT,
28+
`animal_type` int(11) NOT NULL,
29+
`animal_description` varchar(255) NOT NULL,
30+
`animal_name` varchar(255) NOT NULL,
31+
PRIMARY KEY (`animal_id`)
32+
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
33+
34+
--
35+
-- Dumping data for table `farm`
36+
--
37+
38+
INSERT INTO `farm` VALUES(1, 2, 'spotted', 'Mal');
39+
INSERT INTO `farm` VALUES(2, 4, 'spotted', 'Zoe');
40+
INSERT INTO `farm` VALUES(3, 1, 'solid color', 'Wash');
41+
INSERT INTO `farm` VALUES(4, 2, 'solid color', 'Inara');
42+
43+
--
44+
-- Table structure for table `wild`
45+
--
46+
47+
CREATE TABLE `wild` (
48+
`animal_id` int(11) NOT NULL AUTO_INCREMENT,
49+
`animal_type` int(11) NOT NULL,
50+
`animal_description` varchar(255) NOT NULL,
51+
`animal_name` varchar(255) NOT NULL,
52+
PRIMARY KEY (`animal_id`)
53+
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
54+
55+
--
56+
-- Dumping data for table `wild`
57+
--
58+
59+
INSERT INTO `wild` (`animal_id`, `animal_type`, `animal_description`, `animal_name`) VALUES(1, 2, 'spotted', 'Jayne');
60+
INSERT INTO `wild` (`animal_id`, `animal_type`, `animal_description`, `animal_name`) VALUES(2, 6, 'solid color', 'Kaylee');
61+
INSERT INTO `wild` (`animal_id`, `animal_type`, `animal_description`, `animal_name`) VALUES(3, 1, 'spotted', 'Simon');
62+
INSERT INTO `wild` (`animal_id`, `animal_type`, `animal_description`, `animal_name`) VALUES(4, 3, 'solid color', 'River');
63+
INSERT INTO `wild` (`animal_id`, `animal_type`, `animal_description`, `animal_name`) VALUES(5, 5, 'solid color', 'Sheppard');
64+
65+
66+
67+
SELECT att.animal_type_id AS animal_type_id,
68+
att.animal_type_description AS animal_type_description
69+
FROM animal_types att
70+
71+
72+
SELECT att.animal_type_id AS animal_type_id,
73+
att.animal_type_description AS animal_type_description
74+
FROM tutorial.animal_types att
75+
76+
77+
SELECT f.animal_id AS animal_id,
78+
f.animal_type AS animal_type,
79+
f.animal_description AS animal_description,
80+
f.animal_name AS animal_name
81+
FROM tutorial.farm f
82+
WHERE f.animal_type IN (SELECT att.animal_type_id FROM tutorial.animal_types att where att.animal_type_id = 2)
83+
84+
85+
SELECT f.animal_id AS animal_id,
86+
f.animal_type AS animal_type,
87+
f.animal_description AS animal_description,
88+
f.animal_name AS animal_name
89+
FROM tutorial.farm f
90+
WHERE f.animal_type IN (SELECT att.animal_type_id FROM tutorial.animal_types att where att.animal_type_id = 2 OR att.animal_type_id = 1)
91+
92+
93+
SELECT f.animal_id AS animal_id,
94+
f.animal_type AS animal_type,
95+
f.animal_description AS animal_description,
96+
f.animal_name AS animal_name
97+
FROM tutorial.farm f
98+
WHERE f.animal_type IN (1, 2)
99+
100+
INNER JOINS
101+
102+
SELECT f.animal_id AS farm_animal_id,
103+
f.animal_type AS farm_animal_type,
104+
f.animal_description AS farm_animal_description,
105+
f.animal_name AS farm_animal_name,
106+
att.animal_type_description AS description
107+
108+
FROM tutorial.farm f
109+
INNER JOIN tutorial.animal_types att
110+
ON f.animal_type = att.animal_type_id;
111+
112+
113+
SELECT f.animal_id AS farm_animal_id,
114+
f.animal_type AS farm_animal_type,
115+
f.animal_description AS farm_animal_description,
116+
f.animal_name AS farm_animal_name,
117+
att.animal_type_description AS description
118+
119+
FROM tutorial.farm f
120+
121+
INNER JOIN tutorial.animal_types att
122+
ON f.animal_type = att.animal_type_id;
123+
124+
125+
SELECT w.animal_id AS wild_animal_id,
126+
w.animal_type AS wild_animal_type,
127+
w.animal_description AS wild_animal_description,
128+
w.animal_name AS wild_animal_name,
129+
att.animal_type_description AS description
130+
131+
FROM tutorial.wild w
132+
INNER JOIN tutorial.animal_types att
133+
ON w.animal_type = att.animal_type_id
134+
135+
136+
137+
138+
OUTER JOINS:
139+
SELECT f.animal_id AS farm_animal_id,
140+
f.animal_type AS farm_animal_type,
141+
f.animal_description AS farm_animal_description,
142+
f.animal_name AS farm_animal_name,
143+
att.animal_type_description AS description
144+
145+
FROM tutorial.farm f
146+
LEFT OUTER JOIN tutorial.animal_types att
147+
ON f.animal_type = att.animal_type_id
148+
149+
150+
SELECT f.animal_id AS farm_animal_id,
151+
f.animal_type AS farm_animal_type,
152+
f.animal_description AS farm_animal_description,
153+
f.animal_name AS farm_animal_name,
154+
att.animal_type_description AS description
155+
156+
FROM tutorial.farm f
157+
RIGHT OUTER JOIN tutorial.animal_types att
158+
ON f.animal_type = att.animal_type_id
159+
160+
161+
--
162+
-- Table structure for table `animal_descriptions`
163+
--
164+
165+
CREATE TABLE `animal_descriptions` (
166+
`animal_description_id` int(11) NOT NULL AUTO_INCREMENT,
167+
`animal_description` varchar(255) NOT NULL,
168+
PRIMARY KEY (`animal_description_id`)
169+
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
170+
171+
--
172+
-- Dumping data for table `animal_descriptions`
173+
--
174+
175+
INSERT INTO `animal_descriptions` VALUES(1, 'Spotted');
176+
INSERT INTO `animal_descriptions` VALUES(2, 'Striped');
177+
INSERT INTO `animal_descriptions` VALUES(3, 'Solid Color');
178+
179+
180+
SELECT f.animal_id AS farm_animal_id,
181+
f.animal_type AS farm_animal_type,
182+
d.animal_description AS farm_animal_description,
183+
f.animal_name AS farm_animal_name,
184+
att.animal_type_description AS description
185+
186+
FROM tutorial.farm f
187+
188+
LEFT OUTER JOIN tutorial.animal_types att
189+
ON f.animal_type = att.animal_type_id
190+
LEFT OUTER JOIN tutorial.animal_descriptions d
191+
on f.animal_description = d.animal_description_id
192+
193+
Combining JOINS
194+
195+
SELECT w.animal_id AS wild_animal_id,
196+
w.animal_type AS wild_animal_type,
197+
d.animal_description AS farm_animal_description,
198+
w.animal_name AS wild_animal_name,
199+
att.animal_type_description AS description
200+
201+
FROM tutorial.wild w
202+
203+
LEFT OUTER JOIN tutorial.animal_types att
204+
ON w.animal_type = att.animal_type_id
205+
LEFT OUTER JOIN tutorial.animal_descriptions d
206+
on w.animal_description = d.animal_description_id
207+
208+
209+
SELECT w.animal_id AS wild_animal_id,
210+
w.animal_type AS wild_animal_type,
211+
d.animal_description AS farm_animal_description,
212+
w.animal_name AS wild_animal_name,
213+
att.animal_type_description AS description
214+
215+
FROM tutorial.wild w
216+
217+
LEFT OUTER JOIN tutorial.animal_types att
218+
ON w.animal_type = att.animal_type_id
219+
INNER JOIN tutorial.animal_descriptions d
220+
on w.animal_description = d.animal_description_id
221+
222+
223+
SELECT w.animal_id AS wild_animal_id,
224+
w.animal_type AS wild_animal_type,
225+
d.animal_description AS farm_animal_description,
226+
same.animal_name AS wild_animal_name_from_same_table,
227+
att.animal_type_description AS description
228+
229+
FROM tutorial.wild w
230+
231+
LEFT OUTER JOIN tutorial.animal_types att
232+
ON w.animal_type = att.animal_type_id
233+
234+
INNER JOIN tutorial.animal_descriptions d
235+
on w.animal_description = d.animal_description_id
236+
237+
SELECT f.animal_id AS animal_id,
238+
f.animal_type AS animal_type,
239+
d.animal_description AS animal_description,
240+
f.animal_name AS animal_name,
241+
'Farm' AS domain,
242+
att.animal_type_description AS description
243+
244+
FROM tutorial.farm f
245+
246+
LEFT OUTER JOIN tutorial.animal_types att
247+
ON f.animal_type = att.animal_type_id
248+
249+
LEFT OUTER JOIN tutorial.animal_descriptions d
250+
ON f.animal_description = d.animal_description_id
251+
252+
UNION ALL
253+
254+
SELECT w.animal_id AS animal_id,
255+
w.animal_type AS animal_type,
256+
d.animal_description AS animal_description,
257+
w.animal_name AS animal_name,
258+
'Wild' AS domain,
259+
att.animal_type_description AS description
260+
261+
FROM tutorial.wild w
262+
263+
LEFT OUTER JOIN tutorial.animal_types att
264+
ON w.animal_type = att.animal_type_id
265+
266+
LEFT OUTER JOIN tutorial.animal_descriptions d
267+
ON w.animal_description = d.animal_description_id
268+
269+
SELECT f.animal_id AS animal_id,
270+
f.animal_type AS animal_type,
271+
d.animal_description AS animal_description,
272+
f.animal_name AS animal_name,
273+
'Farm' AS domain,
274+
att.animal_type_description AS description
275+
276+
FROM tutorial.farm f
277+
278+
LEFT OUTER JOIN tutorial.animal_types att
279+
ON f.animal_type = att.animal_type_id
280+
281+
LEFT OUTER JOIN tutorial.animal_descriptions d
282+
ON f.animal_description = d.animal_description_id
283+
284+
UNION ALL
285+
286+
SELECT w.animal_id AS animal_id,
287+
w.animal_type AS animal_type,
288+
d.animal_description AS animal_description,
289+
w.animal_name AS animal_name,
290+
'Wild' AS domain,
291+
att.animal_type_description AS description
292+
293+
FROM tutorial.wild w
294+
295+
LEFT OUTER JOIN tutorial.animal_types att
296+
ON w.animal_type = att.animal_type_id
297+
298+
LEFT OUTER JOIN tutorial.animal_descriptions d
299+
ON w.animal_description = d.animal_description_id
300+
301+
WHERE w.animal_id IN (SELECT animal_id FROM wild WHERE animal_id <= 3)
302+
303+
304+
Simulating a FULL OUTER JOIN:
305+
306+
307+
SELECT f.animal_id AS farm_animal_id,
308+
f.animal_type AS farm_animal_type,
309+
d.animal_description AS farm_animal_description,
310+
f.animal_name AS farm_animal_name,
311+
att.animal_type_description AS description
312+
313+
FROM tutorial.farm f
314+
315+
LEFT OUTER JOIN tutorial.animal_types att
316+
ON f.animal_type = att.animal_type_id
317+
LEFT OUTER JOIN tutorial.animal_descriptions d
318+
on f.animal_description = d.animal_description_id
319+
320+
UNION
321+
322+
SELECT f.animal_id AS farm_animal_id,
323+
f.animal_type AS farm_animal_type,
324+
d.animal_description AS farm_animal_description,
325+
f.animal_name AS farm_animal_name,
326+
att.animal_type_description AS description
327+
328+
FROM tutorial.farm f
329+
330+
RIGHT OUTER JOIN tutorial.animal_types att
331+
ON f.animal_type = att.animal_type_id
332+
RIGHT OUTER JOIN tutorial.animal_descriptions d
333+
on f.animal_description = d.animal_description_id
334+
335+
336+
LEFT OUTER JOIN tutorial.wild same
337+
338+
339+
Unions:
340+
341+
342+
ON w.animal_id = same.animal_id
343+
344+
345+
346+
347+

0 commit comments

Comments
 (0)