DB 0620

yunha·2023년 6월 20일
0

DB

목록 보기
12/26

문4) 2023년도 1학기 수강생들의 학번, 과목코드, 성적을 내림차순 성적순으로 모두 조회하시오.
SELECT std_no 학번
,sub_no 과목코드
,cls_score 성적
FROM CLASS
WHERE SUBSTR(SUB_NO, 1, 3) = '231'
ORDER BY cls_score DESC;

문5) 과목코드가 222AB104 과목의 수강현황을 학번, 학생명, 과목코드, 과목명, 성적순으로 조회하시오.
SELECT A.STD_NO 학번
, A.STD_NAME 학생명
, B.SUB_NO 과목코드
, B.SUB_NAME 과목명
, C.CLS_SCORE 성적
FROM STUDENT A, SUBJECT B, CLASS C
WHERE B.SUB_NO = '222AB104' AND A.STD_NO = C.STD_NO AND B.SUB_NO = C.SUB_NO --!!
ORDER BY CLS_SCORE DESC;

문6) 2022년도 2학기 총 수강생들은 몇 명인가?
SELECT SUM(LEC_PERSON)
FROM lecture
WHERE SUBSTR(SUB_NO, 1, 3) = '222';

문7) 2023년도 1학기 수강생들의 학번, 과목코드, 학점을 조회하시오
SELECT std_no 학번
, SUB_NO 과목코드
, CLS_SCORE 점수
, CASE WHEN CLS_SCORE >= '90' THEN 'A'
WHEN CLS_SCORE >= '80' THEN 'B'--WHEN CLS_SCORE >= 80 AND CLS_SCORE < 90 THEN 'B'
WHEN CLS_SCORE >= '70' THEN 'C'
ELSE 'D'
END AS 학점
FROM CLASS
WHERE SUBSTR(SUB_NO, 1, 3) = '231'
ORDER BY CLS_SCORE DESC;

문8) 2023년도에 발생한 상담건수는?
SELECT COUNT(*) 상담건수
FROM COUNSEL
WHERE SUBSTR(cns_date, 1, 3) = '231';

SELECT COUNT(std_no) 상담건수
FROM COUNSEL
WHERE cns_date >='2023-01-01';

문9) 수요일에 편성된 강의 목록 전체와 교수명, 교과명을 조회하시오. --0-일, 1-월, 2-화, 3-수
SELECT A.*, B.PRO_NAME 담당교수명, C.SUB_NAME 교과목명
FROM lecture A, professor B, subject C
WHERE LEC_WEEK = 'W' AND a.pro_no = b.pro_no AND a.sub_no = c.sub_no;

SELECT A.*, B.PRO_NAME 교수명, C.SUB_NAME 교과명
FROM lecture A, professor B, subject C
WHERE a.lec_week='W'
AND a.pro_no = b.pro_no AND a.sub_no = c.sub_no;

문10) 3월 중 이루어진 상담내역과 학생명 조회
SELECT A.*, B.STD_NAME
FROM counsel A, student B
WHERE SUBSTR(A.CNS_DATE, 4, 2) = '03' AND a.std_no = b.std_no;
M)
SELECT A.CNS_REMARK 상담내역
, B.STD_NAME 학생명
FROM counsel A, student B
WHERE SUBSTR(CNS_DATE, 3, 2) = '03'
AND a.std_no = b.std_no;

문11) 2일에 상담하는 상담내역 학생명
SELECT A.*, B.STD_NAME
FROM counsel A, student B
WHERE SUBSTR(A.CNS_DATE, 7, 2) = '02' AND a.std_no = b.std_no;

문11) 2023년 4월에 상담하는 상담내역 학생명
SELECT A., B.STD_NAME
FROM counsel A, student B
WHERE SUBSTR(A.CNS_DATE, 1, 5) = '23/06' AND a.std_no = b.std_no;
M)
SELECT A.
, B.STD_NAME
FROM counsel A, student B
WHERE SUBSTR(A.CNS_DATE, 3, 2) = '04' AND a.std_no = b.std_no;

--

SELECT A.*, B.STD_NAME
FROM counsel A, student B
WHERE CNS_REMARK = '취업상담' AND a.std_no = b.std_no;

트리거
데이터 수정 시 자동으로 수행되는 저장된 프로시져

키-인덱스

데이터 무결성

컬럼 제약
NOT NULL(NN) : 해당 컬럼에 반드시 값 입력
NO DUPLICATES(ND) : 테이블 내에서 해당 컬럼의 모든 값들이 달라야 함 의미
-기본키 제약(primary key constraint)
-유일제약(unique constraint)
유일색인(unique index)
NO CHANGES(NC) : 당 컬럼 값이 변경될 수 없음을 의미

1.덧셈연산자를 이용하여 모든 사원에 대해 연봉에 대해 300만원의 급여 인상을 계산한 후 사원의 사번, 이름, 급여, 인상된 연봉을 출력하시오.
SELECT EMPID 사번
, NAME 이름
, SALARY 급여
, SALARY + 300 인상된급여
, (SALARY*12) + 300 인상된연봉
FROM EMPP;

2.사원번호 7999 사람의 업무를 '프로그래머'로 수정
UPDATE EMP
SET JOB = '프로그래머'
WHERE EMPNO = '7999';

3.EMP 테이블 JOB 속성의 데이터타입을 VARCHAR2(40)으로 수정
ALTER TABLE EMP
MODIFY (JOB VARCHAR2(40));

4.EMP 테이블에 사원번호 DEPT 테이블과 외래키를 생성
ALTER TABLE EMP
MODIFY (DEPTNO CHAR(2));

ALTER TABLE EMP
MODIFY (CONSTRAINT FK_EMP FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO));

DELETE FROM DEPT WHERE DEPTNO = '10'; --오류:참조 무결성

profile
기록

0개의 댓글