Db 09
layout: single title: “DB- 연습01” categories: DB tag: [DB] toc: true author_profile: true search: true sidebar: nav: “docs” —
실습 07번 sql문으로 연습함
-----------------------------------------연습-------
--교수 테이블의 모든 데이터를 검색
select * from professors ;
--교수 테이블에서 모든 교수의 이름, 소속학과, 직급을 검색
select pname, dept, title
from professors;
--교수 테이블에서 교수들이 근무하는 소속학과 이름을 검색하시오 (단, 중복값은제거)
select distinct(dept) from professors;
-- 학생 테이블에서 '전산'이면서 '3'학년 학생들의 이름,학번, 생년월일을 검색하시오.
select dept, year, sname, scode, birthday
from students
where dept='전산' and year='3';
select * from students;
--교수 테이블에서 1993년3월1일 이전에 임용된 교수들의 이름 소속학과를 검색
select dept, pname
from professors
where '93/03/01'>hiredate;
--학생 테이블에서 교수번호가 '221'인 교수가 지도하지 않는 학생들을 검색
select advisor, sname
from students
where advisor !='221';
--수강신청 테이블에서 성적이 80점 이상인 과목번호,학생번호 검색
select lcode,scode
from enrollments
where grade>=80;
--성이 '이'씨인 학생들의 이름, 학생번호, 학년, 지도교수 번호를 검색하시오.
select sname, scode,year,advisor
from students
where sname like '이%';
--강좌 테이블에서 강좌이름이 '건축'이라는 단어를 포함하는 강좌의 강좌번호, 강좌이름, 담당교수, 강의시간수를 검색하시오.
select lcode, lname,instructor,hours
from courses
where lname like '%건축%';
select * from courses;
-- 수강신청 테이블에서 1998년 3월 1일에서 3월3일 사이에 수강신청 한 강좌번호, 학생번호, 수강신청일을 검색하시오.
select lcode,scode,edate
from enrollments
where edate>='98/03/01' and edate<='98/03/03';
select * from enrollments;
--학생 테이블에서 학년이 2학년과 4학년 사이에 학생들의 학번, 학생명, 학과, 학년을 검색하시오
select scode, sname, dept,year
from students
where year>=2 and year<=4;
--수강 신청테이블에서 성적이 입력되지 않은 과목들의 강좌번호, 학생번호를 모두 검색하시오.
select lcode, scode
from enrollments
where grade is null;
-- 수강 신청테이블에서 성적이 입력된 과목들의 강좌번호, 학생번호를 모두 검색하시오.
select lcode, scode
from enrollments
where grade is not null;
--교수 테이블에서 직급이 '정교수' 이거나 '부교수'인 교수들의 교수번호, 교수명, 직급을 검색하시오.
select pcode, pname, title
from professors
where title = '정교수' or title ='부교수';
--학생 테이블에서 '전산'과 또는 '건축'과 또는 '전자'과 학생들의 이름, 소속학과, 학년을 검색하시오
select sname, dept, year
from students
where dept in ('전산' , '건축', '전자');
--'전산'과 학생들의 이름, 소속학과, 생년월일을 검색하는데 소속학과, 학생이름 순으로 정렬하시오.
select sname, dept, year
from students
where dept='전산'
order by dept,sname ;
--'전산'과 학생들의 학번, 이름, 생년월일을 이름을 기준으로 오름차순, 생년월일을 기준으로 내림차순 정렬을 하시오.
select scode,sname, birthday
from students
where dept='전산'
order by sname asc, birthday desc ;
----------------------------------------------------------------------------------
--학생들의 학과, 학생이름, 지도교수이름을 검색하시오.
select s.dept, sname, pname
from students s, professors p
where advisor=pcode;
--강좌번호, 강좌명, 교수이름을 검색하시오.
select lcode, lname, pname
from courses , professors
where pcode=instructor;
-- 학번, 학생이름, 학생들이 수강신청 한 강좌번호, 수강신청일을 검색하시오.
select s.scode, s.sname, e.lcode, e.edate
from students s, enrollments e
where s.scode = e.scode;
--학번, 학생들이 수강신청 한 강좌번호, 강좌명, 성적을 검색하시오
select s.scode, e.lcode, e.edate, e.grade
from students s, enrollments e
where s.scode = e.scode;
-- '이병렬'과 교수가 지도하는 학생들의 이름, 학년, 생년월일을 검색하시오
select s.sname, s.year, s.birthday
from students s, professors p
where p.pname='이병렬' ;
--'98/03/03'에 수강신청 한 학생들의 학번, 학생이름, 강좌번호를 검색하시오.
select s.scode, s.sname, e.lcode
from students s , enrollments e
where s.scode=e.scode and e.edate='98/03/03' ;
--'전산'과 교수들이 지도하는 학생들의 이름, 학년, 생년월일을 검색하시오.
select s.sname,s.year,s.birthday
from professors p, students s
where p.pcode=s.advisor and p.dept='전산';
--자료구조'를 강의하는 교수의 학과명, 교수 명을 검색하시오.
select p.dept, p.pname
from professors p, courses c
where p.pcode=c.instructor and c.lname='자료구조';
--'파일처리론'을 수강신청 한 학생들의 학번, 수강신청일, 점수를 검색하시오.
select s.scode, s.year, e.grade
from students s , courses c, enrollments e
where s.advisor=c.instructor and c.lcode=e.lcode and c.lname='파일처리론';
--'자료구조' 과목을 수강신청 한 학생들의 학과, 학생이름, 성적을 검색하시오.
select s.dept, s.sname, e.grade
from courses c, enrollments e , students s
where c.lcode=e.lcode and s.scode =e.scode and c.lname = '자료구조';
--'전자'과 학생들의 학번, 학생이름, 수강신청 한 강좌번호, 강좌 명, 성적을 검색하시오.
select s.scode, s.sname, c.lcode, c.lname, e.grade
from students s, courses c, enrollments e
where s.advisor=c.instructor and c.lcode=e.lcode and s.dept ='전자';
--'파일처리론'을 강의하는 교수의 이름, 이 교수가 지도하는 학생들의 학번, 학생명을 검색하시오
select p.pname, s.scode, s.sname
from professors p, students s, courses c
where p.pcode = s.advisor and s.advisor=c.instructor and c.lname = '파일처리론';
--'데이터베이스'를 강의하는 교수명, 이 과목을 수강신청 한 학생들의 학과, 이름, 성적을 검색하시오.
select s.dept, sname, grade, pname
from professors p, students s, enrollments e, courses c
where p.pcode = s.advisor and s.scode=e.scode and p.pcode=c.instructor and c.lname ='데이터베이스';
--성적이 80점 이상인 학생들의 학번, 학생이름, 강좌번호, 강좌명, 담당교수 명을 검색하시오.
select s.scode, s.sname, e.lcode, c.lname, p.pname
from students s, courses c, professors p, enrollments e
where s.advisor=c.instructor and p.pcode=c.instructor and c.lcode=e.lcode and e.grade >= 80;
--'이병렬' 교수가 강의하는 강좌번호, 강좌명, 이 강좌를 수강신청 한 학생들의 학과, 학생이름, 성적을 검색하시오.
select c.lcode, c.lname, s.dept,s.sname,e.grade
from students s , professors p , courses c, enrollments e
where p.pcode=c.instructor and c.lcode=e.lcode and s.scode=e.scode and p.pname='이병렬';
댓글남기기