ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터베이스#7
    데이터베이스 2023. 2. 7. 09:10
    -- 정보미디어학부(부서번호:100)에 소속된 모든 학생의 학번, 이름, 학과 번호를 출력하여라
    select * from student;
    select * from department;
    
    select studno, name, deptno
    from student
    where deptno in(
    select deptno
    from department
    where college = 100);
    
    -- 모든 학생 중에서 4학년 학생 중에서 키가 제일 작은 학생보다 키가 큰 학생의 학번, 이름, 키를 출력하여라
    -- any연산자
    select studno, name, height
    from student
    where height > any(
                        select height
                        from student
                        where grade = '4');
                        
    select studno, name, height
    from student
    where height >(
                    select min(height)
                    from student
                    where grade = '4');
    -- all연산자
    select studno, name, height
    from student
    where height > all(
                        select height
                        from student
                        where grade = '4');
                        
    -- 보직수당을 받는 교수가 한 명이라도 있으면 모든 교수의 교수번호, 이름, 보직수당 그리고 급여와 보직수당의 합을 출력하여라
    select profno, name, sal, comm, (sal+nvl(comm,0))
    from professor
    where Exists(
    select * 
    from professor
    where comm is not null);
    
    -- PAIRWISE 비교 방법에 의해 학년별로 몸무게가 최소인 학생의 이름, 학년, 몸무게를 출력하여라.
    SELECT * FROM STUDENT
    WHERE (GRADE, WEIGHT) IN (
                                SELECT GRADE, MIN(WEIGHT)
                                FROM STUDENT
                                GROUP BY GRADE);
    -- UNPAIRWISE 비교 방법에 의해 학년별로 몸무게가 최소인 학생의 이름, 학년, 몸무게를 출력하여라.
    SELECT NAME, GRADE, WEIGHT
    FROM STUDENT
    
    WHERE GRADE IN(
                    SELECT GRADE 
                    FROM STUDENT
                    GROUP BY GRADE)
    AND WEIGHT IN(
                    SELECT MIN(WEIGHT) 
                    FROM STUDENT
                    GROUP BY GRADE)
    ORDER BY 2, 3;
                    
    -- 각 학과 학생의 평균 키보다 키가 큰 학생의 이름, 학과 번호, 키를 출력하여라
    SELECT NAME, DEPTNO, HEIGHT
    FROM STUDENT S1
    WHERE HEIGHT>(
                    SELECT AVG(HEIGHT)
                    FROM STUDENT S2
                    
                    WHERE S2.DEPTNO = S1.DEPTNO);
                    
    INSERT INTO STUDENT (STUDNO, NAME) VALUES(12345, '홍길동');
    SELECT * FROM STUDENT WHERE STUDNO = 12345;
    
    COMMIT;
    
    UPDATE STUDENT SET NAME = '고길동' WHERE STUDNO = 12345;
    DELETE STUDENT WHERE STUDNO = 12345;
    
    insert into student
    values (10110, '홍길동','hong','1','8501011143098','85/01/01','041)630-3114',170,70,101,9903);
    select * 
    from student
    where studno = 10111;
    
    
    insert into student
    values (10111, '홍길동','hong','1','8501011143098','85/01/01','041)630-3114',170,70,101,'');
    
    insert into department
    values(301,'환경보건학과', '','');
    
    select * from department;
    
    insert into professor(profno, name, position, hiredate, deptno)
    values(9920, '최윤식','조교수',TO_DATE('2006/01/01','YYYY/MM/DD'), 102);
    
    select * from professor;
    
    insert into professor
    values(9910,'백미선','white', '전임강사',200, sysdate, 10, 101);
    
    delete from student where studno=10110;
    
    insert into stu3
    select * from student;
    
    select * from stu3;
    
    rollback;
    
    create table weight_info as select studno, name, weight from student where 1=0;
    create table height_info as select studno, name, Height from student where 1=0;
    
    --VALUES 값에 별칭도 가능 INTO값도 생략가능(대신 VALUES값을 다 넣어줘야함)
    INSERT ALL
    INTO Weight_info(STUDNO, NAME) VALUES(S, N)
    INTO height_info VALUES(S, N, H)
    SELECT STUDNO S, NAME N, HEIGHT H FROM STUDENT WHERE GRADE >= 2;
    
    SELECT * FROM WEIGHT_INFO;
    SELECT * FROM HEIGHT_INFO;
    
    --테이블은 남겨두고 데이터값만 삭제
    TRUNCATE TABLE WEIGHT_INFO; 
    TRUNCATE TABLE HEIGHT_INFO;

    서브쿼리

    in

    any

    all

    EXISTS

    PAIRWISE

    UNPAIRWISE

    • DML
      • SELECT
      • INSERT
      • UPDATE
      • DELETE
    • DDL
    • 트랜잭션(ACID)
      • 원자성
      • 일관성
        • 값 참조시에 복사본을 활용 해서
      • 고립성
        • 다른 트랜잭션이 끼어 들지 못함 SQL DEVELOPER로 SQL작동 시 CMD에선 무한 대기가 생길 순 있음
      • 지속성
        • 정상적인 종료가 된 다음에 데이터베이스 작업의 결과가 저장되어야한다
    • CONDITIONAL

     

    '데이터베이스' 카테고리의 다른 글

    데이터베이스#4  (0) 2023.02.07
    데이터베이스#8  (0) 2023.02.07
    데이터베이스#6  (0) 2023.02.03
    데이터베이스#5  (0) 2023.02.02
    데이터베이스#2  (0) 2023.02.02
Designed by Tistory.