본문/내용
SQL 수업 과제
과제 분석 및 SQL 쿼리 작성
주어진 테이블:
STUDENT(SNO, SNAME) - 학생 정보 테이블
ENROLL(SNO, CNO, CREDIT) - 수강 정보 테이블
COURSE(CNO, CNAME) - 과목 정보 테이블
문제 및 풀이:
1. `김순미` 학생의 학번을 검색
STUDENT 테이블에서 SNAME이 `김순미`인 레코드의 SNO 값을 찾습니다.
```sql
SELECT SNO
FROM STUDENT
WHERE SNAME = `김순미`;
```
2. `이홍근` 학생이 수강하는 과목(CNO)의 수를 보이시오.
`이홍근` 학생의 SNO 값을 찾고, 해당 SNO 값을 이용하여 ENROLL 테이블에서 수강 과목(CNO)의 개수를 셉니다.
```sql
SELECT COUNT(CNO) AS 수강과목수
FROM ENROLL
WHERE SNO = (SELECT SNO FROM STUDENT WHERE SNAME = `이홍근`);
```
3. `데이터베이스` 과목을 수강하는 학생의 이름을 보이시오.
COURSE 테이블에서 `데이터베이스` 과목의 CNO 값을 찾고, 해당 CNO 값을 이용하여 ENROLL 테이블에서 수강하는 학생의 SNO 값을 찾습니다. 마지막으로 찾은 SNO 값을 이용하여 STUDENT 테이블에서 학생 이름(SNAME)을 찾습니다.
```sql
SELECT SNAME
FROM STUDENT
WHERE SNO IN (
SELECT SNO
FROM ENROLL
WHERE CNO = (SELECT CNO FROM COURSE WHERE CNAME = `데이터베이스`)
);
```
4. 과목별 수강 학생 수를 검색하여 과목명, 수강학생수를 보이시오.
ENROLL 테이블에서 CNO 별로 그룹화하여 수강 학생 수를 셉니다. COURSE 테이블과 조인하여 과목명(CNAME)을 함께 출력합니다.
```sql
SELECT CNAME AS 과목명, COUNTAS 수강학생수
FROM E…
…