MYSQL select 명령문의 조합 &union 예제&문제 8

by 조쉬 posted Mar 27, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

-- select 명령문의 조합 

 

 

-- 학년이 2, 3 학년인 학생의 학번과 이름을 출력하라

select stu_no, stu_name,grade from student where grade in (2 ,3);

 

 

select stu_no, stu_name,grade

from student

where grade = 2

union

select stu_no, stu_name,grade

from student

where grade = 3

 

 

 

-- 적어도 한번 이상 수강신청을 했거나 등록을 한 학생의 학번을 출력하라 

 

select stu_no 

from attend

union

select stu_no

from fee;

 

 

-- 적어도 한번 동아리에 가입했거나,

-- 등록을 하고 그리고 수강신청을 한 학생 중에서

-- 이상의 조건 중 둘 또는 세가지 조건을 만족하는 또는 두개의 조건에 모두 포함되는 각 학생의 학번을 출력하라 

 

 

-- (x)

select stu_no from attend where stu_no in 

(select stu_no from circle

union

select stu_no from fee

);

 

-- (o)

 

select stu_no from circle

union

select stu_no from fee

union 

select stu_no

from attend

where att_div='Y';

 

 

-- 적어도 한번 이상 등록금 납부하고 동아리에 가입한 모든 학생을 출력하라 

-- (단 중복된 행을 제거하지 않고 모두 출력한다. )

 

select stu_no from fee 

UNION all

select stu_no from circle;

 

-- 20061011 학생과 20071307 학생이 받은 장학금액을 출력하라

 

 

select stu_no ,jang_total 

from fee

where stu_no in (20061011, 20071307);

 

 

 

select stu_no, jang_total

from fee

where stu_no =20061011

union

select stu_no, jang_total

from fee

where stu_no =20071307;

 

 

-- -------------------------------------------------------

 

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
-- select 명령문의 조합 
 
 
-- 학년이 2, 3 학년인 학생의 학번과 이름을 출력하라
select stu_no, stu_name,grade from student where grade in (2 ,3);
 
 
select stu_no, stu_name,grade
from student
where grade = 2
union
select stu_no, stu_name,grade
from student
where grade = 3
 
 
 
-- 적어도 한번 이상 수강신청을 했거나 등록을 한 학생의 학번을 출력하라 
 
select stu_no 
from attend
union
select stu_no
from fee;
 
 
-- 적어도 한번 동아리에 가입했거나,
-- 등록을 하고 그리고 수강신청을 한 학생 중에서
-- 이상의 조건 중 둘 또는 세가지 조건을 만족하는 또는 두개의 조건에 모두 포함되는 각 학생의 학번을 출력하라 
 
 
-- (x)
select stu_no from attend where stu_no in 
(select stu_no from circle
union
select stu_no from fee
);
 
-- (o)
 
select stu_no from circle
union
select stu_no from fee
union 
select stu_no
from attend
where att_div='Y';
 
 
-- 적어도 한번 이상 등록금 납부하고 동아리에 가입한 모든 학생을 출력하라 
-- (단 중복된 행을 제거하지 않고 모두 출력한다. )
 
select stu_no from fee 
UNION all
select stu_no from circle;
 
-- 20061011 학생과 20071307 학생이 받은 장학금액을 출력하라
 
 
select stu_no ,jang_total 
from fee
where stu_no in (2006101120071307);
 
 
 
select stu_no, jang_total
from fee
where stu_no =20061011
union
select stu_no, jang_total
from fee
where stu_no =20071307;
 
 
-- -------------------------------------------------------