use haksa;
-- 야간인 학생들의 학번과 이름을 출력하라
select * from student;
select stu_no, stu_name
from student
where juya='야';
-- 휴대폰을 가지고 있는 학생의 학번과 이름 휴대폰 번호를 출력하라
select stu_name, stu_no, phone_no
from student
where phone_no is not null;
-- 1985년 이후에 출생한 여학생의 학번, 이름, 주민등록번호를 출력하라
select stu_no, stu_name,id_num
from student
where substring(id_num,8,1)=2
and birth_year >1985;
-- 휴대폰 번호가 016,018,019로 시작하는 휴대폰을 소지한 학생의 학번과 이름, 휴대폰 번호를 나타내어라
select * from student;
select stu_name, stu_no, phone_no
from student
where phone_no is not null
and substring(phone_no,1,3)='016'
or substring(phone_no,1,3)='018'
or substring(phone_no,1,3)='019';
-- 성별이 남자가 아닌 학생의 학번 , 이름을 나타내어라
select * from student;
select stu_name, stu_no
from student
where substring(id_num,8,1) <>1;
select stu_name, stu_no
from student
where not substring(id_num,8,1) = 1;
-- 성별이 남자이거나 1988년에 출생한 학생의 학번, 이름, 주민등록번호를 나타내어라. 그러나 1988년도에 출생한 남자는 제외다.
select stu_no, stu_name,id_num
from student
where (substring(id_num,8,1) = 1 or birth_year = 1988)
and not (substring(id_num,8,1) =1 and birth_year = 1988);
-- 81년 부터 87년 사이에 출생한 각 학생의 학번과 이름, 출생년도를 출력하라
select stu_no, stu_name, birth_year
from student
where birth_year between 1981 and 1987;
-- 우편번호가 135-794,150--051, 550-260 에 해당되는 각 학생의 학번, 이름, 현주소의 우편번호를 출력하라
select * from student;
select stu_no, stu_name,post_no
from student
where post_no = '135-794'
or post_no = '150-051'
or post_no = '550-260'
;
select stu_no, stu_name,post_no
from student
where post_no in ('135-794','150-051','550-260');
-- 영문이름이 문자 p 로 시작하는 학생의 학번과 이름, 영문이름을 나타내어라
select stu_no,stu_name,stu_ename
from student
where stu_ename like 'p%'
;
-- 영문 이름의 끝에 문자 g를 가지고 있는 학생의 학번과 이름을 나타내어라
select stu_no,stu_name,stu_ename
from student
where stu_ename like '%g'
;
-- 영문이름의 끝에서 두번째 문자가 u 인 학생의 학번과 이름을 나타내어라
select stu_no,stu_name,stu_ename
from student
where stu_ename like '%u_'
;
-- 영문이름이 문자 k로 시작하지 않는 학생의 학번과 이름을 나타내어라
select stu_no,stu_name,stu_ename
from student
where not stu_ename like 'k%'
;
-- 휴대폰을 가지고 있지 않은 학생의 학번과 이름, 휴대폰 번호가 null인 경우에는 휴대폰 없음을 나타내어라
select stu_no,stu_name,ifnull(phone_no,'휴대폰 없음')
from student
where phone_no is null;
-- 학생의 휴대폰번호가 017이 아닌 모든 학생의 학번과 이름, 휴대폰번호를 출력하라
-- (단, 휴대폰이 없는 학생도 포함되어 출력되어야 한다.)
select stu_no,stu_name,phone_no
from student
where substring(phone_no,1,3) <> 017
or phone_no is null ;
-- 등록을 한 각 학생의 학번, 이름을 출력하라 (in 연산자 활용)
select DISTINCT s.stu_no,s.stu_name
from student s , fee f
where s.stu_no = f.stu_no;
-- 부속질의어를 이용하여 등록을 한 각 학생의 학번 이름을 출력하라
select DISTINCT s.stu_no,s.stu_name
from student s
where s.stu_no in(select stu_no from fee)
;
-- 적어도 한번의 장학금을 받았던 학생의 학번과 이름을 출력하라
select stu_no, stu_name from student
where stu_no in
(select stu_no from fee where jang_code is not null)
;
-- 20061011 인 학생이 가입한 동아리를 제외한 다른 동아리에 적어도 한번 가입을 한 학생의 학번과 이름을 출력하라
select stu_no,stu_name from circle
where cir_name not in (select cir_name from circle where stu_no='20061011')
;
-- 휴대폰을 가지고 있는 학생을 출력하라 (단 휴대폰이 있어도 야간인 학생은 제외 한다.)
select * from student;
select stu_no,stu_name
from student
where phone_no is not null
and juya = '주';
select stu_no,stu_name
from student
where phone_no not in(
select phone_no
from student
where juya ='야'
);
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
|
use haksa;
-- 야간인 학생들의 학번과 이름을 출력하라
select * from student;
select stu_no, stu_name
from student
where juya='야';
-- 휴대폰을 가지고 있는 학생의 학번과 이름 휴대폰 번호를 출력하라
select stu_name, stu_no, phone_no
from student
where phone_no is not null;
-- 1985년 이후에 출생한 여학생의 학번, 이름, 주민등록번호를 출력하라
select stu_no, stu_name,id_num
from student
where substring(id_num,8,1)=2
and birth_year >1985;
-- 휴대폰 번호가 016,018,019로 시작하는 휴대폰을 소지한 학생의 학번과 이름, 휴대폰 번호를 나타내어라
select * from student;
select stu_name, stu_no, phone_no
from student
where phone_no is not null
and substring(phone_no,1,3)='016'
or substring(phone_no,1,3)='018'
or substring(phone_no,1,3)='019';
-- 성별이 남자가 아닌 학생의 학번 , 이름을 나타내어라
select * from student;
select stu_name, stu_no
from student
where substring(id_num,8,1) <>1;
select stu_name, stu_no
from student
where not substring(id_num,8,1) = 1;
-- 성별이 남자이거나 1988년에 출생한 학생의 학번, 이름, 주민등록번호를 나타내어라. 그러나 1988년도에 출생한 남자는 제외다.
select stu_no, stu_name,id_num
from student
where (substring(id_num,8,1) = 1 or birth_year = 1988)
and not (substring(id_num,8,1) =1 and birth_year = 1988);
-- 81년 부터 87년 사이에 출생한 각 학생의 학번과 이름, 출생년도를 출력하라
select stu_no, stu_name, birth_year
from student
where birth_year between 1981 and 1987;
-- 우편번호가 135-794,150--051, 550-260 에 해당되는 각 학생의 학번, 이름, 현주소의 우편번호를 출력하라
select * from student;
select stu_no, stu_name,post_no
from student
where post_no = '135-794'
or post_no = '150-051'
or post_no = '550-260'
;
select stu_no, stu_name,post_no
from student
where post_no in ('135-794','150-051','550-260');
-- 영문이름이 문자 p 로 시작하는 학생의 학번과 이름, 영문이름을 나타내어라
select stu_no,stu_name,stu_ename
from student
where stu_ename like 'p%'
;
-- 영문 이름의 끝에 문자 g를 가지고 있는 학생의 학번과 이름을 나타내어라
select stu_no,stu_name,stu_ename
from student
where stu_ename like '%g'
;
-- 영문이름의 끝에서 두번째 문자가 u 인 학생의 학번과 이름을 나타내어라
select stu_no,stu_name,stu_ename
from student
where stu_ename like '%u_'
;
-- 영문이름이 문자 k로 시작하지 않는 학생의 학번과 이름을 나타내어라
select stu_no,stu_name,stu_ename
from student
where not stu_ename like 'k%'
;
-- 휴대폰을 가지고 있지 않은 학생의 학번과 이름, 휴대폰 번호가 null인 경우에는 휴대폰 없음을 나타내어라
select stu_no,stu_name,ifnull(phone_no,'휴대폰 없음')
from student
where phone_no is null;
-- 학생의 휴대폰번호가 017이 아닌 모든 학생의 학번과 이름, 휴대폰번호를 출력하라
-- (단, 휴대폰이 없는 학생도 포함되어 출력되어야 한다.)
select stu_no,stu_name,phone_no
from student
where substring(phone_no,1,3) <> 017
or phone_no is null ;
-- 등록을 한 각 학생의 학번, 이름을 출력하라 (in 연산자 활용)
select DISTINCT s.stu_no,s.stu_name
from student s , fee f
where s.stu_no = f.stu_no;
-- 부속질의어를 이용하여 등록을 한 각 학생의 학번 이름을 출력하라
select DISTINCT s.stu_no,s.stu_name
from student s
where s.stu_no in(select stu_no from fee)
;
-- 적어도 한번의 장학금을 받았던 학생의 학번과 이름을 출력하라
select stu_no, stu_name from student
where stu_no in
(select stu_no from fee where jang_code is not null)
;
-- 20061011 인 학생이 가입한 동아리를 제외한 다른 동아리에 적어도 한번 가입을 한 학생의 학번과 이름을 출력하라
select stu_no,stu_name from circle
where cir_name not in (select cir_name from circle where stu_no='20061011')
;
-- 휴대폰을 가지고 있는 학생을 출력하라 (단 휴대폰이 있어도 야간인 학생은 제외 한다.)
select * from student;
select stu_no,stu_name
from student
where phone_no is not null
and juya = '주';
select stu_no,stu_name
from student
where phone_no not in(
select phone_no
from student
where juya ='야'
);
|