database에 haksa_db 를 추가하고, dump.sql 에 해당하는 파일을 import한 후 실습 진행
dump.sql 다운로드
(우클릭 후 다른 이름으로 링크 저장)
show databases;
create database haksa_db;
use haksa_db;
## dump.sql import 후
show tables;
select * from student;
select grade as 학년, count(stu_no) as 인원 from student group by grade order by grade asc;
select left(stu_no,4) as 입학년도, count(stu_no) as 인원 from student group by left(stu_no,4) order by left(stu_no,4);
select fee_year as 등록년도, count(fee_year) as 등록횟수 from fee
group by fee_year
order by fee_year asc;
select stu_no as 학번,
count(stu_no) as 등록횟수,
sum(jang_total) as 장학금총합
from fee
group by stu_no
order by stu_no asc;
select stu_no as 학번, count(stu_no) as 등록횟수 from fee
where stu_no in (select stu_no from student where stu_name = ('박정인'));
student 테이블로부터 학년(grade)별, 주야(juya)별 인원수를 출력하라. 단 출력 순서는 학년별 오름차순, 주야 오름차순이다.
student 테이블로부터 학년(grade), 반(class), 주야(juya)구분이 서로 다른 모든 조합을 인원수로 출력하라. 단 출력 순서는 학년별 오름차순이다.
#해당 모든 칼럼을 group by 에 넣는다!
select grade, class, juya from student group by grade, class, juya order by grade asc;
select stu_no, sum(fee_pay), max(fee_total), min(jang_total), count(stu_no) from fee group by stu_no order by stu_no;
## 각 table별로 멀티select, 그리고 where 문 활용
select student.stu_no, stu_name, sum(fee.fee_pay) from student, fee where student.stu_no = fee.stu_no group by student.stu_no, stu_name;
select ifnull(jang_code,null), count(jang_code) from fee group by jang_code;
GROUP BY
통해 그룹화된 그룹에 대한 조건문 설정(마치 where 처럼)select stu_no, count(stu_no) from fee group by stu_no having count(stu_no)>3;
select stu_no, fee_year, count(stu_no) from fee group by stu_no,fee_year having fee_year = '2006';
group by에 두 칼럼을 추가해야 오류가 안나네. 왤까?
select stu_no, sum(fee_pay) from fee group by stu_no having sum(fee_pay) > 5000000;