정보처리기사

SQL 오답노트

조회: 183 댓글: 0개 2023.09.25 19:10 월요일

SQL

  1. 20년 3회

    9번 다음 <성적> 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수'를 검색하고자 한다. <처리 조건>을 참고하여 적합한 SQL문을 작성하시오.

    <성적>

    학번과목번호과목이름학점점수
    123101컴퓨터구조695
    124101컴퓨터구조684
    125302데이터베이스589
    126201인공지능592
    127302데이터베이스5100
    128302데이터베이스588
    129201인공지능593

    <결과>

    과목이름최소점수최대점수
    데이터베이스88100
    인공지능9293

    <처리조건>

    WHERE문을 사용하지않는다
    GROUP BY와 HAVING을 이용한다
    집계함수를 사용하여 명령문을 구성한다
    최소점수, 최대점수는 별칭을 위한 AS문을 이용한다
    명령문 마지막의 세미콜론은 생략이 가능하다
    인용 부호가 필요한 경우 작은 따옴표를 사용한다

    접기

    SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >=90;

  2. DDL
    1. CREATE
      CREATE TABLE 테이블명 (열 정의1, ...);
      열 정의 - 열이름 자료형 [기본값] [NULL / NOT NULL]
    2. ALTER
      ALTER TABLE 테이블명 변경명령;
      ALTER TABLE sample62 ADD newcol NUMBER;
      ALTER TABLE sample62 MODIFY newcol VARCHAR(20);
      ALTER TABLE sample62 RENAME COLUMN newcol TO c;
      ALTER TABLE sample62 DROP COLUMN c;
    3. DROP
      DROP TABLE sample62;
    4. key

      ALTER TABLE 테이블이름

      ADD [CONSTRAINT 제약조건이름]

      FOREIGN KEY (필드이름)

      REFERENCES 테이블이름 (필드이름)

  3. count(*) as 'asdf' <- ' 를 뺴도 됨
  4. 차수 = Degree = Attribute의 수 = 속성의 수(관계 DB의 열)
    기수 = Cardinality = Tuple의 수 = 대응수(관계 DB의 행)
  5. 21년 2회

    6번 다음 <사원> 테이블과 <동아리> 테이블을 조인한 <결과>를 확인하여 <SQL문>의 괄호(1, 2)에 들어갈 알맞은 답을 쓰시오.

    <사원>

    코드이름부서
    1인사
    2경영지원
    3개발
    4 

    <동아리>

    코드동아리명
    1테니스
    3탁구
    4볼링

    <결과>

    코드이름동아리명
    1테니스
    2 
    3탁구
    4볼링

    <SQL문>

    SELECT a.코드, 이름,동아리명 FROM 사원 a LEFT JOIN 동아리 b( 1 ) a. 코드=b.( 2 ) ;

    접기

    (1) ON

    (2) 코드

  6. 21년 3회

    10번 <A> 테이블과 < B>테이블을 참고하여 <SQL문>의 실행결과를 쓰시오

    <A>

    NAME
    smith
    allen
    scott

    <B>

    RULE
    s%
    %t%

    <SQL문>

    SELECT COUNT(*) CNT FROM A CROSS JOIN B WHERE A.NAME LIKE B.RULE;

    접기

    4

  7. where score > ALL <- ALL
  8. 관계 연산자
    1. select
      σ(조건)R
    2. project
      π (속성리스트)R
    3. join
      R▷◁<속성=속성>S
    4. division
      R1(속성%속성)R2
  9. INSERT INTO 테이블 이름 (열1, 열2, ...)
    VALUE (값1, 값2 , ….)
    열1열2 생략 가능
  10. 23년 2회

    17번 뷰를 삭제할 때 참조된 뷰를 연쇄적으로 모두 삭제되도록 빈칸을 작성하시오.

    DROP VIEW 뷰이름 (가);

    접기

    (가 ) cascade
    RESTRICT : 뷰를 다른 곳에서 참조하고 있으면 삭제가 취소된다.
    CASCADE : 뷰를 참조하는 다른 뷰나 제약 조건까지 모두 삭제된다.

captcha