사용한 개발 툴 : 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
'공대생의 일기 > 2008年 2학기' 카테고리의 다른 글
[데이터베이스]ER다이어그램 (0) | 2010.12.20 |
---|---|
[운영체제]라운드로빈 CUP 스케줄링 (0) | 2010.12.20 |
[운영체제]운영체제 정리 (0) | 2010.12.20 |
[객체지향프로그래밍]JAVA (0) | 2010.12.20 |