โถ SELECT ๋ช ๋ น๋ฌธ ์ผ๋ถ ์ ์ ํฌํจํ ์ํ ๊ณผ์
โ
์์ 7-3) ์๊ฐ์ ์ฒญ ํ ์ด๋ธ(attend)์์ 2006๋ ๋ 1ํ๊ธฐ์ ์๊ฐ ์ ์ฒญํ ํ์์ ํ๋ฒ๊ณผ ์๊ฐ๋ ๋, ํ๊ธฐ, ๊ต๊ณผ๋ชฉ์ฝ๋, ๊ต์์ฝ๋๋ฅผ ๊ต์์ฝ๋ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ํ๋ด์ด๋ผ.
โ
mysql> select stu_no, att_year, att_term, sub_code, prof_code
→ from attend
→ where att_year = '2016' and att_term = 1
→ order by prof_code;
โ
โ
<์ฐ์ต๋ฌธ์ >
7-1) SELECT ๋ช ๋ น๋ฌธ์๋ 6๊ฐ์ ์ ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. 6๊ฐ ์ ์ค์์ ์๋ต์ด ๊ฐ๋ฅํ ์ ์ ๋ฌด์์ธ๊ฐ ?
A) group by, having, where, order by ์ . select์ ๊ณผ from์ ์ด์ธ๋ ์๋ต ๊ฐ๋ฅ
โ
โ
7-2. HAVING์ ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ฐ๋์ ์ด๋ค ์ ์ด ๋จผ์ ๊ธฐ์ ๋์ด์ผ ํ๋๊ฐ ?
A) group by์
โ
โ
7-3) SELECT ๋ช ๋ น๋ฌธ์๋ 6๊ฐ์ ์ ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. 6๊ฐ์ ์ ์ ์ ์ฒด ๊ธฐ์ ๋ SELECT ๋ช ๋ น๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ์ฒ๋ฆฌ ๊ณผ์ ์ ์์์ ์ผ๋ก ๋ํ๋ด์ด๋ผ.
A) from → where → group by → having → select → order by
โ
โ
7-4) ๋ค์ SELECT ๋ช ๋ น๋ฌธ์ ์ ์ ์ฒ๋ฆฌ๊ณผ์ ์ ์์์ ์ผ๋ก ํํํ๋ผ.
โ
โ
โโ
โถ SELECT ๋ช ๋ น๋ฌธ : FROM ์
โ
1. FROM ์ ์์ ํ ์ด๋ธ ๋ช ์ธ (๋์ค์ ๋๋์์์ ๋ฐฐ์)
โ
2. ์ด ๋ช ์ธ
SELECT ๋ช ๋ น๋ฌธ์์ ์ด์ ์ด๋ฆ ์์ ์ด์ด ํฌํจ๋์ด ์๋ ํ ์ด๋ธ์ ์ด๋ฆ์ ์ง์ ํ ์ ์๋ค. ์ด๋ฌํ ๊ฒ์ ์ด์ ์๊ฒฉ์ด๋ผ ํ๋ค.
์) student.stu_no
โโ
3. ๋ค์ค ํ ์ด๋ธ ๋ช ์ธ
์ง๊ธ๊น์ง๋ FROM ์ ์ ํ๋์ ํ ์ด๋ธ ๋ช ์ธ๋ง ์ฌ์ฉํ์๋ค. ๋ง์ฝ ๊ฒฐ๊ณผ ํ ์ด๋ธ์ ์๋ก ๋ค๋ฅธ ํ ์ด๋ธ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค ํ๋ค๋ฉด FROM ์ ์ ์ฌ๋ฌ ๊ฐ์ ํ ์ด๋ธ์ ์ง์ ํด์ผ ํ๋ค.
โ
โโ
์์ 8-3) ๊ฐ ํ์์ ํ๋ฒ๊ณผ ์ด๋ฆ, ์๊ฐ๋ ๋, ํ๊ธฐ, ์๊ฐ๊ณผ๋ชฉ์ฝ๋, ๊ต์์ฝ๋๋ฅผ ๋ํ๋ด์ด๋ผ.
A)
mysql> select student.stu_no, stu_name,
→ att_year, att_term, sub_code, prof_code
→ from student, attend
→ where student.stu_no = attend.stu_no;
โโ
โ
์์ 8-4) ํ์๋ค์ ํ๋ฒ, ์ด๋ฆ, ์๊ฐ์ ์ฒญ๊ตฌ๋ถ์ ๋ํ๋ด์ด๋ผ. ๋จ, ์๊ฐ์ ์ฒญ๊ตฌ๋ถ์ attend ํ ์ด๋ธ์ ์๋ค.
A)
mysql> select s.stuโ_no, stu_name, att_div
→ from student s, attend aโ
→ where s.stu_no = a.stโu_no;
โโ
โ
ํด์ฆ) ์ถ๋ ฅ๋ฌธ์ด ๋ค์๊ณผ ๊ฐ์ด ๋์ค๊ฒ ๋ช ๋ น๋ฌธ์ ์ ์ด๋ณด์์ค.
ํํธ. ํ ์ด๋ธ 4๊ฐ ์ฌ์ฉํด์ผํจ
A)
mysql> select s1.stu_no, stu_name, att_year, att_term, s2.sub_code, sub_name, p.prโof_code, prof_name
→ from student s1, attend a, subject s2, professor p
→ where s1.stu_no = a.stu_no โand a.sub_code = s2.sub_code and a.prof_code = p.prof_code;
โ
โ ์ฌ๋ฌ ํ ์ด๋ธ์ ๋ถ๋ฌ์ฌ๋๋ ์ ๋งค๋ชจํธํจ์ ํผํ๊ธฐ ์ํด ํ ์ด๋ธ ์์ ํ ์ด๋ธ ์ด๋ฆ์ ์ง์ ํด์ฃผ๋๊ฒ ์ข๋ค.
โโ
โ
โ
4. ๊ฐ๋ช (Alias)
โ
์์ 8-5) ํ์๋ค์ ํ๋ฒ, ์ด๋ฆ, ๋ฑ๋ก์ฌ๋ถ๋ฅผ ๋ํ๋ด์ด๋ผ. ๋จ, ํ์ ํ ์ด๋ธ์ ๊ฐ๋ช ์ s, ๋ฑ๋กํ ์ด๋ธ์ ๊ฐ๋ช ์ f๋ก ์ ์ํ๋ค.
A)
mysql> select s.stu_no, stuโ_name, fee_div
→ from student s, fee fโ
→ whereโ s.stu_no = f.stu_no;
โโโ
โ
5. FROM ์ ์ ๋ค์ํ ์์ โ
โ
์์ 8-6) ์๊ฐํ ์ด๋ธ์ ํ๋ฒ๊ณผ ์ด๋ฆ, ์๊ฐ๊ณผ๋ชฉ์ฝ๋, ๊ต์์ฝ๋, ๊ต์๋ช ์ ๋ํ๋ด์ด๋ผ.
A)
mysql> select s.stu_no, stu_name, sub_code, p.prโof_code, prof_name
→ from student s, attend a, professor pโ
→ where s.stu_no = a.stu_no and
→ a.prof_code = p.proโf_code;
โ
โ
์์ 8-7) ํ์ ํ ์ด๋ธ์ ํ๋ฒ๊ณผ ์ด๋ฆ, ์๊ฐํ ์ด๋ธ์ ์๊ฐ๊ต๊ณผ๋ชฉ์ฝ๋, ๊ต๊ณผ๋ชฉํ ์ด๋ธ์ ๊ต๊ณผ๋ชฉ๋ช ์ ๋ํ๋ด์ด๋ผ.
A)
mysql> select s.stu_no, stu_name, att_year, att_term, a.sub_coโde, sub_name
→ from student s, attend a, subject suโ
→ where s.stu_no = a.stu_no and
→ a.sub_code = su.sub_cโode;
โโ
โ
์์ 8-8) ํ์ ํ ์ด๋ธ์ ํ๋ฒ๊ณผ ์ด๋ฆ, ๋ณด๊ด์ฑ์ ํ ์ด๋ธ์ ์ฑ์ ์ทจ๋๋ ๋, ํ๊ธฐ, ์ ์ฒญํ์ , ์ทจ๋ํ์ , ํ์ ํ๊ท ์ ๋ํ๋ด์ด๋ผ.
A)
mysql> select s.stu_no, stu_name, sco_year, sco_term,
→ req_point, take_point, exam_avg
→ from student s, score scโ
→ where s.stu_no = sc.stโu_no;
โ
โโ
์์ 8-9) ํ์ ํ ์ด๋ธ์ ํ๋ฒ๊ณผ ์ด๋ฆ, ์๊ฐํ ์ด๋ธ์ ์๊ฐ์ ์ฒญ๋ ๋, ํ๊ธฐ, ์๊ฐ์ ์ฒญ์ ๋ฌด๋ฅผ ๋ํ๋ด์ด๋ผ.
A)
mysql> select s.โstu_no, stu_name, att_year, att_term, att_div
→ from student s, attend aโ
→ where s.stu_no = a.โstu_no;
-์ค๋ณต๋ ์ด์ ์ ๊ฑฐํ๊ธฐ์ํด DISTINCT ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด๋ณด์.
โ
โ
์์ 8-10) ํ์ ํ ์ด๋ธ์ ํ๋ฒ๊ณผ ์ด๋ฆ, ์๊ฐํ ์ด๋ธ์ ์๊ฐ์ ์ฒญ๋ ๋, ํ๊ธฐ, ์๊ฐ์ ์ฒญ์ ๋ฌด๋ฅผ ๋ํ๋ด์ด๋ผ.
(๋จ, ์ค๋ณต์ ๋ฐฐ์ ํ๋ค.)
A)
mysql> select distinctโ s.stu_no, stu_name, att_year, att_term, att_div
→ from student s, attend aโ
→ where s.stu_no = a.sโtu_no;
โ
โ
์์ 8-11) ์ ์ด๋ ํ ๋ฒ ์ด์ ์ฅํ๊ธ์ ๋ฐ์ ํ์์ ์ด๋ฆ์ ๋ํ๋ด์ด๋ผ.
A)
mysql> select distinctโ s.stu_no, stu_name
→ from student s, fee fโ
→ where s.stu_no = f.stu_no and
→ not jang_code is null;
โ is null : ๊ฐ์ด null์ธ ๊ฒฝ์ฐ
in not null : ๊ฐ์ด null์ด ์๋ ๊ฒฝ์ฐ
โโ
โ
์์ 8-12) ๋ฑ๋กํ ํ์์ ์ด๋ฆ, ๋ฑ๋ก๋ ๋, ํ๊ธฐ, ์ฅํ์ฝ๋, ์ฅํ๊ธ์ด์ก, ๋ฑ๋ก๊ตฌ๋ถ์ ๋ํ๋ด์ด๋ผ.
A)
mysql> select stu_name, fee_year, fee_term, jang_code, jang_total, fee_div
→ from student s, fee fโ
→ where s.stu_no = f.stโu_no
→ andโ f.fโee_div = 'Y';
โ
โ
์์ 8-13) 2019๋ ์ ๋ฑ๋กํ ํ์์ ํ๋ฒ๊ณผ ์ด๋ฆ์ ๋ํ๋ด์ด๋ผ.
A)
mysql> select distinct s.stu_no, s.stu_name
→ from student s,fee fโ
→ where s.stu_no = f.stuโ_no
→ and fee_year = 2019;
โโ
โ
โ
โถ ๋ฐ๋์ ๊ฐ๋ช ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ
โ
์์ 8-14) ์ฅ์์ธ(1999๋ 02์ 09์ผ) ํ์๋ณด๋ค ๋จผ์ ํ์ด๋ ํ์์ ์ด๋ฆ๊ณผ ์๋ ์์ผ์ ๋ํ๋ด์ด๋ผ.
A)
mysql> select s.stu_name, s.birthday
→ from student s, student stโ
→ where st.sโtu_name = '์ฅ์์ธ'
→ andโ s.birthday < st.biโrthday;
'Data Base > MySQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MySQL 17๋ฒ์งธ์์ (0) | 2021.02.08 |
---|---|
MySQL 16๋ฒ์งธ์์ (0) | 2021.02.08 |
MySQL 14๋ฒ์งธ์์ (0) | 2021.02.08 |
MySQL 13๋ฒ์งธ์์ (0) | 2021.02.08 |
MySQL 12๋ฒ์งธ์์ (0) | 2021.02.08 |
๋๊ธ