본문 바로가기
데이터 베이스/MySQL

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

by 인생여희 2016. 12. 12.
반응형

-- 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;
 
 
-- -------------------------------------------------------
cs


반응형

댓글