메뉴 건너뛰기

조회 수 136 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

 

 
-- ifnull(fee_enter,0)
 
use haksa;
 
select * from fee;
 
 
 
 
 
-- 등록금 총액을 구하라 (입학금 +수업료)
 
select stu_no,(fee_enter+fee_price) from fee;
 
select stu_no,(ifnull(fee_enter,0)+fee_price) from fee;
 
납입금 총액을 구하라 등록금총액 - 장학금 총액
 
select stu_no,fee_price-ifnull(jang_total,0) from fee;
 
 
 
 
 
-- 우편본호가 150-051인 동지역과 지역전화번호를 구하라
 
select * from post;
select concat(post_dong,ddd) from post where post_no = '150-051';
 
 
 
 
 
 
-- 학번이 20001001 인 학생의 학번 이름 영문이름을 출력하라
use haksa;
select * from student;
show TABLES;
 
select stu_no, stu_name, upper(stu_ename) from student where stu_no='20001001';
 
 
 
 
 
 
 
 
-- 학적테이블에서 학번과 이름, 영문이름을 출력하라, 단, 영문이름의 첫 글자는 대문자로 나머지는 소문자로 출력하라
 
select stu_no, concat(upper(substring(stu_ename,1,1)),lower(substring(stu_ename,2,12))) from student;
 
 
 
 
 
 
 
-- 영문이름의 길이가 정확히 11자인 학생의 학번과 영문이름을 출력하라
select stu_no, stu_ename from student where length(stu_ename)='11';
 
 
 
 
 
 
-- except girl
 
select stu_no,stu_name,id_num from student where substring(id_num,8,1)=1;
 
 
select stu_no, jang_total from fee where jang_total is not null;
 
 
 
 
 
 
 
--  등록 테이블에서 장학금을 1000000원 이상 지급 받은 학생중에서 2회 이상 지급 받은 학생의 학번과,
-- 지급받은 횟수를 학번 내림차순으로 출력하라
select stu_no, count(jang_total)
from fee
where jang_total is not null
and jang_total > 1000000
group by stu_no
HAVING count(jang_total)>1;
 
 
 
 
 
 
 
 
-- 수강신청테이블에서 2006년도 1학기에 수강한 학생의 학번과 수강년도, 학기 , 교과목코드 , 교수코드를 교수코드 오름차순으로 나타내어라
select stu_no,att_year,att_term,sub_code, prof_code 
from attend
where att_year='2006'
and att_term='1';
order by prof_code 
 
 
 
 
 
 
 
-- 학생들의 학번, 이름, 수강신청구분을 나타내어라 , 단, 수강신청구분은 ATTEND 테이블에 있다.
select student.stu_no,stu_name,att_div 
from student, attend
where student.stu_no=attend.stu_no
;
 
 
 
 
 
 
 
-- 수강테이블의 학번과 이름, 수강과목코드, 교수코드 , 교수명을 나타내어라 
 
select a.stu_no, s.stu_name, a.sub_code,p.prof_code,p.prof_name
from attend a, professor p, student s
where a.prof_code=p.prof_code
and a.stu_no=s.stu_no
 
 
 
 
-- 학적테이블의 학번과 이름, 보관성적테이블의 성적취득년도, 학기, 신청학점, 취득학점, 평점 평균을 나타내어라 
 
select s.stu_no,s.stu_name, sc.sco_year, sc.sco_term,sc.req_point,sc.take_point,sc.exam_avg
from student s, score sc
where s.stu_no=sc.stu_no;
 
 
 
 
 
 
-- 학적테이블의 학번과 이름, 수강테이블의 수강신청년도, 학기, 수강신청유무를 나타내어라
 
select s.stu_name, s.stu_no, a.att_date, a.att_term, a.att_div
from student s, attend a
where s.stu_no=a.stu_no;
 
 
 
 
-- 학적테이블의 학번과 이름, 수강테이블의 수강신청년도 , 학기, 수강신청유무를 나타내어라 , 단
-- 중복은 배제한다. 
 
select DISTINCT s.stu_name, s.stu_no, a.att_date, a.att_term, a.att_div
from student s, attend a
where s.stu_no=a.stu_no;
 
 
 
 
 
-- 적어도 한번이상 장학금을 받은 학생의 이름을 나타내어라
select * from fee;
 
select DISTINCT s.stu_name,f.jang_code ,f.fee_year,f.fee_term
from student s, fee f
where s.stu_no=f.stu_no
and f.jang_code is not null;
 
 
select DISTINCT s.stu_name
from student s, fee f
where s.stu_no=f.stu_no
and f.jang_code is not null;
 
 
 
select DISTINCT s.stu_name, count(f.jang_code)
from student s, fee f
where s.stu_no=f.stu_no
group by s.stu_name
having  count(jang_code) >=1;
 
 
 
-- 박정인 학생보다 나이가 더 많은 학생의 이름과 생년을 나타내어라
 
select s.stu_name, s.birth_year
from student s, student st
where st.stu_name='박정인'
and s.birth_year < st.birth_year
;
 
 
(select s.stu_name,(year(now()) - s.birth_year +1) age 
from student s
where s.stu_name='박정인');
 
 
 
 
 
-- 각 학생에 대하여 수강신청 과목코드 , 수강학점을 나타내어라 
select * from student;
select * from attend;
select s.stu_name,a.sub_code,a.att_point
from student s, attend a
where s.stu_no=a.stu_no;
 
 
 
 
-- 장학금을 받은 학생의 학번과 이름을 나타내어라
 
select DISTINCT s.stu_no, s.stu_name
from student s, fee f
where s.stu_no=f.stu_no
and f.jang_code is not null;
 
 
 
-- 등록을 한 모든 학생의 학번과 이름을 출력하라 
 
select DISTINCT stu_no from attend where att_div='Y';
 
select DISTINCT s.stu_name,s.stu_no
from student s, attend a
where s.stu_no=a.stu_no
and a.att_div='Y';






 

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
 
 
 
-- ifnull(fee_enter,0)
 
use haksa;
 
select * from fee;
 
-- 등록금 총액을 구하라 (입학금 +수업료)
 
select stu_no,(fee_enter+fee_price) from fee;
 
select stu_no,(ifnull(fee_enter,0)+fee_price) from fee;
 
납입금 총액을 구하라 등록금총액 - 장학금 총액
 
select stu_no,fee_price-ifnull(jang_total,0from fee;
 
-- 우편본호가 150-051인 동지역과 지역전화번호를 구하라
select * from post;
select concat(post_dong,ddd) from post where post_no = '150-051';
 
-- 학번이 20001001 인 학생의 학번 이름 영문이름을 출력하라
use haksa;
select * from student;
show TABLES;
 
select stu_no, stu_name, upper(stu_ename) from student where stu_no='20001001';
 
 
 
 
-- 학적테이블에서 학번과 이름, 영문이름을 출력하라, 단, 영문이름의 첫 글자는 대문자로 나머지는 소문자로 출력하라
 
select stu_no, concat(upper(substring(stu_ename,1,1)),lower(substring(stu_ename,2,12))) from student;
 
 
 
-- 영문이름의 길이가 정확히 11자인 학생의 학번과 영문이름을 출력하라
select stu_no, stu_ename from student where length(stu_ename)='11';
 
-- except girl
 
select stu_no,stu_name,id_num from student where substring(id_num,8,1)=1;
 
 
select stu_no, jang_total from fee where jang_total is not null;
 
--  등록 테이블에서 장학금을 1000000원 이상 지급 받은 학생중에서 2회 이상 지급 받은 학생의 학번과,
-- 지급받은 횟수를 학번 내림차순으로 출력하라
select stu_no, count(jang_total)
from fee
where jang_total is not null
and jang_total > 1000000
group by stu_no
HAVING count(jang_total)>1;
 
 
-- 수강신청테이블에서 2006년도 1학기에 수강한 학생의 학번과 수강년도, 학기 , 교과목코드 , 교수코드를 교수코드 오름차순으로 나타내어라
select stu_no,att_year,att_term,sub_code, prof_code 
from attend
where att_year='2006'
and att_term='1';
order by prof_code 
 
 
-- 학생들의 학번, 이름, 수강신청구분을 나타내어라 , 단, 수강신청구분은 ATTEND 테이블에 있다.
select student.stu_no,stu_name,att_div 
from student, attend
where student.stu_no=attend.stu_no
;
 
 
-- 수강테이블의 학번과 이름, 수강과목코드, 교수코드 , 교수명을 나타내어라 
 
select a.stu_no, s.stu_name, a.sub_code,p.prof_code,p.prof_name
from attend a, professor p, student s
where a.prof_code=p.prof_code
and a.stu_no=s.stu_no
 
 
-- 학적테이블의 학번과 이름, 보관성적테이블의 성적취득년도, 학기, 신청학점, 취득학점, 평점 평균을 나타내어라 
 
select s.stu_no,s.stu_name, sc.sco_year, sc.sco_term,sc.req_point,sc.take_point,sc.exam_avg
from student s, score sc
where s.stu_no=sc.stu_no;
 
-- 학적테이블의 학번과 이름, 수강테이블의 수강신청년도, 학기, 수강신청유무를 나타내어라
 
select s.stu_name, s.stu_no, a.att_date, a.att_term, a.att_div
from student s, attend a
where s.stu_no=a.stu_no;
 
-- 학적테이블의 학번과 이름, 수강테이블의 수강신청년도 , 학기, 수강신청유무를 나타내어라 , 단
-- 중복은 배제한다. 
 
select DISTINCT s.stu_name, s.stu_no, a.att_date, a.att_term, a.att_div
from student s, attend a
where s.stu_no=a.stu_no;
 
 
-- 적어도 한번이상 장학금을 받은 학생의 이름을 나타내어라
select * from fee;
 
select DISTINCT s.stu_name,f.jang_code ,f.fee_year,f.fee_term
from student s, fee f
where s.stu_no=f.stu_no
and f.jang_code is not null;
 
 
select DISTINCT s.stu_name
from student s, fee f
where s.stu_no=f.stu_no
and f.jang_code is not null;
 
 
 
select DISTINCT s.stu_name, count(f.jang_code)
from student s, fee f
where s.stu_no=f.stu_no
group by s.stu_name
having  count(jang_code) >=1;
 
-- 박정인 학생보다 나이가 더 많은 학생의 이름과 생년을 나타내어라
 
select s.stu_name, s.birth_year
from student s, student st
where st.stu_name='박정인'
and s.birth_year < st.birth_year
;
 
 
(select s.stu_name,(year(now()) - s.birth_year +1) age 
from student s
where s.stu_name='박정인');
 
 
 
-- 각 학생에 대하여 수강신청 과목코드 , 수강학점을 나타내어라 
select * from student;
select * from attend;
select s.stu_name,a.sub_code,a.att_point
from student s, attend a
where s.stu_no=a.stu_no;
 
 
-- 장학금을 받은 학생의 학번과 이름을 나타내어라
 
select DISTINCT s.stu_no, s.stu_name
from student s, fee f
where s.stu_no=f.stu_no
and f.jang_code is not null;
 
-- 등록을 한 모든 학생의 학번과 이름을 출력하라 
 
select DISTINCT stu_no from attend where att_div='Y';
 
select DISTINCT s.stu_name,s.stu_no
from student s, attend a
where s.stu_no=a.stu_no
and a.att_div='Y';
cs

 


List of Articles
번호 제목 날짜 조회 수
46 order by field 와 union, 원하는 대로 정렬 하기 2021.03.26 769
45 SQL 고급 file 2017.12.22 6035
44 Union 사용법. 여러 테이블의 같은 값을 한번 쿼리로 추출하기 2017.11.21 3918
43 UPDATE ~ CASE 문을 사용한 조건별 업데이트 file 2020.07.28 1396
42 [mysql,mariaDB] 컬럼 암호화, 복호화 2020.11.25 775
41 [MySQL] 백업 및 복구 2017.04.12 5392
40 [MySQL] 세로열을 가로열로 출력하기 2019.03.05 2097
39 각각의 게시판에서 제일 최근글하나씩을 모아 정렬 2016.08.30 5812
38 날짜 관련 함수 모음. 2017.12.22 3976
37 날짜와 시간 데이터 2016.12.23 5996
36 날짜형(DATETIME) 빼기 2021.03.26 147
35 다른 테이블 데이터를 원하는 테이블에 업데이트 시키기 2017.11.16 5076
34 다양한 단위의 시간차 구하기 2015.12.19 8360
33 덤프할때 한글깨짐 해결 2016.12.23 5635
32 데이타베이스 또는 테이블 정보 2016.12.23 5534
31 데이터베이스 파티셔닝이란 2017.12.28 4262
30 데이터베이스별 / 테이블별 용량 확인 하기 2023.01.10 115
29 두 테이블을 비교하여 한쪽테이블에는 있지만 다른 테이블에는 없는 값을 뽑아내보자! 2017.11.21 5388
28 문자형 데이터 2016.12.23 5646
27 백업시 캐릭터셋(charset) 지정하기 2017.04.12 5071
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved