사용한 개발 툴 : ORACLE

2008년 10월 12일

대학(UNIVERSITY) 데이터베이스 예제

 

학생

(STUDENT)

학번

(SNO)

이름

(SNAME)

학년

(YEAR)

학과

(DEPT)

 

100

나수영

4

컴퓨터

 

200

이찬수

3

전기

300

정기태

1

컴퓨터

 

 

400

송병길

4

컴퓨터

 

500

박종화

2

산공

 

과목

(COURSE)

과목번호

(CNO)

과목이름

(CNAME)

학점

(CREDIT)

학과

(DEPT)

담당교수

(PRNAME)

 

C123

프로그래밍

3

컴퓨터

김성국

C312

자료 구조

3

컴퓨터

황수관

 

C324

화일 처리

3

컴퓨터

이규찬

 

C413

데이타베이스

3

컴퓨터

이성호

 

C412

반 도 체

3

전자

홍봉진

 

 

등록

(ENROL)

학번

(SNO)

과목번호

(CNO)

성적

(GRADE)

중간성적

(MIDTERM)

기말성적

(FINAL)

 

100

C413

A

90

95

100

E412

A

95

95

 

200

C123

B

85

80

 

300

C312

A

90

95

 

300

C324

C

75

75

 

300

C413

A

95

90

 

400

C312

A

90

95

 

400

C324

A

95

90

 

400

C413

B

80

85

 

400

E412

C

65

75

 

500

C312

B

85

80

 

 

1) 컴퓨터학에서 개설되는 과목이름, 학점, 담당교수를 검색하라. 

select cname, credit, prname
from course
where dept = '컴퓨터'
order by cname, credit, prname;

2) 한 과목이라도 A학점을 받은 학생들의 학번을 검색하라.

select distinct sno
from enrol
where grade = 'A'

3) 모든 학생들의 이름을 가나다라 순으로 검색하라.  

select sname
from student
order by sname


4) 소속학과가 컴퓨터학과이거나 전기학과인 학생들의 이름과 학년을 검색하라.

select sname,year
from student
where dept='컴퓨터'or dept='전기'


5) 중간성적과 기말 성적이 80점 이상인 학생들에 대해서 학번의 오름차순으로, 또 같은 학번에 대해서는 과목번호의 내림차순으로 학번과 과목번호, 중간성적, 기말성적을 검색하라. 

select sno, cno, midterm, pinal
from enrol
where enrol.midterm >= 80 or enrol.pinal >= 80
order by sno, cno desc;

6) 등록(ENROL) 테이블에서 과목번호(CNO)가 'C312'인 중간성적(MIDTERM)에 3점 더한 값을 학번(SNO)과 '중간성적' 타이틀로 검색하라.

select sno, midterm+3 as 중간시험
from enrol
where cno = 'C312'

 

7) 학번이 300인 학생이 등록한 과목의 이름과 학점을 검색하라.

select cname, grade
from course, enrol
where enrol.sno = 300 and enrol.cno = course.cno

8) 과목이름이 '자료구조'인 과목에 등록한 학생의 이름(SNAME), 학과(DEPT), 성적(GRADE)을 검색하라.

select distinct sname, student.dept, grade
from student, course, enrol
where enrol.cno=
(
select course.cno
from course
where cname = '자료구조'
)  and student.sno = enrol.sno

9) 과목번호가 'C413'인 과목을 등록한 학생은 몇 명인가?

select count(cno)
from enrol
where cno = 'C413'


10) 각 과목별 기말성적의 최고점을 검색하라.

select cno, max(pinal)
from enrol
group by cno

 
13) 담당교수가 이씨 성을 가진 과목의 이름을 검색하라.

select prname
from course
where prname like '이%'

17) 학생 테이블에서 컴퓨터과 학생의 학번, 이름, 학년을 검색하여 새로운 컴퓨터학과(COMPUTER) 테이블에 삽입하라.

insert into computer(sno, sname, year)
select sno, sname, year
from student
where dept = '컴퓨터'

 
18) 학년이 4학년이 아닌 학생을 삭제하라.

delete
from student
where year <> 4

19) 모든 과목 정보를 삭제하라.

delete
from course


SQL실습문제.hwp

 

Posted by 검지발가락♡