정처기, 20230422

cptkuk91·2023년 4월 22일
1

EIP

목록 보기
12/20

SQL

  1. 1974년 IBM 연구소에서 개발한 SEQUEL(Structured English Query Language)에서 유래되었다.
  2. 관계대수와 관계해석을 기초로 한 혼합 데이터 언어이다.
  3. 데이터 정의, 데이터 조작, 데이터 제어 기능을 모두 갖추고 있다.

SQL의 DDL에 의해 만들어지지 않고 질의문 처리 결과로 만들어지는 것은?

  • 임시 테이블(Temporary Table)

스키마의 식별을 위해 스키마 이름과 소유권자나 허가권자를 정의하는 명령문은?

  • CREATE SCHEMA

임의의 애트리뷰트에서 취할 수 있는 원자값의 범위가 SQL에서 지원하는 data_type에 포함되는 전체 값이 아니고 일부분일 때, 사용자가 그 값의 범위를 사용자 정의 data_type으로 정의하는 명령문은?

  • CREATE DOMAIN

SQL의 데이터 중에서 4바이트 정수형을 나타내는 것은?

  • INTEGER (정수형)
  • FLOAT (실수형)

학년 속성이 가질 수 있는 값의 범위를 1~4의 2바이트 정수로만 사용할 수 있는 도메인 SYEAR를 정의하는 명령문으로 올바른 것은?

  • CREATE DOMAIN SYEAR SMALLINT DEFAULT 1 CONSTRAINT VALID-SYEAR CHECK(VALUE IN (1,2,3,4)) NOT NULL;
  • data_type 정의는 CREATE DOMAIN
  • VALUE IN에서 물결은 금지된다.

SQL에 존재하는 CREATE TABLE 명령어에 대한 설명으로 옳지 않은 것은?

  1. 테이블의 이름, 속성, 제약 사항을 명시한다.
  2. 새로운 테이블을 생성하기 위해 사용한다.
  3. 명령을 적용할 스키마를 명시할 수 있다.
  4. 테이블 생성 명령어가 스키마를 생성하지 않으면 현재 명령어가 실행되는 환경에 있는 스키마에 명령이 적용된다. (이전 환경은 상관이 없다.)

CREATE TABLE에 대한 설명

  1. 테이블명 및 해당 테이블에 속하는 컬럼, 이름, 데이터 타입 등을 명시한다.
  2. PRIMARY KEY 절에서는 기본키 속성을 지정한다.
  3. NOT NULL은 널 값을 허용하지 않을 때 지정한다.
  4. CHECK 절은 제약 조건을 정의한다.

명령문에 대한 설명

CREATE TABLE 학생
	(이름 VARCHAR(15) Not Null,
    학번 VARCHAR(15) Not Null,
    전공 VARCHAR(20) Not Null,
    성별 SEX,
    생년월일 DATE,
    PRIMARY KEY (학번),
    FOREIGN KEY (전공) REFERENCES 학과(학과코드)
    CHECK (성별 = "남"));
  1. 이름, 학번, 전공, 성별, 생년월일로 구성된 "학생" 테이블을 정의한다.
  2. 이름은 최대 15글자까지 입력할 수 있다.
  3. 학과 릴레이션의 기본키인 학과코드를 학생 릴레이션이 참조할 때 전공 속성을 외래키로 이용한다.
  4. SEX는 data_type이 없기 때문에 CREATE DOMAIN으로 사용자가 정의한 data_type이다.

'고객' 테이블의 기본키인 '국가' 속성에 대해 오름차순 정렬하여 고객_INX 인덱스를 구성하기 위한 명령문은? (동일 인덱스 값을 갖는 튜플들을 그룹으로 묶음)

CREATE UNIQUE INDEX 고객_INX ON 고객(국가 ASC) CLUSTER;
  • CLUSTER: 동일 인덱스 값을 갖는 튜플들을 그룹으로 묶을 때 사용

SQL 명령어에 대한 바른 설명?

ALTER TABLE STUDENT
ADD ADDRESS CHAR(20);
  1. STUDENT 테이블에서 ADDRESS열을 추가한다.

SQL의 DROP TABLE 명령어에 대한 설명으로 옳은 것은?

  • 제거될 테이블을 참조하는 모든 제약과 뷰를 자동적으로 스키마로부터 삭제시키는 옵션이 존재한다.
  1. CASCADE: 외래 키가 참조하는 기본 키의 레코드가 수정되거나 삭제될 때 연결레코드도 함께 수정되거나 삭제되도록 설정하는 옵션
  2. SET NULL: 외래 키가 참조하는 기본 키의 레코드가 수정되거나 삭제될 때 연결 레코드 값을 NULL로 설정
  3. 기타 SET DEFAULT, NO ACTION 존재.

SQL 언어의 질의 기능에 대한 설명 중 옳은 것은?

  1. FROM절은 질의에 의핸 검색될 테이블들을 포함하는 테이블을 기술한다.
  2. 복잡한 탐색 조건을 구성하기 위하여 단순 탐색 조건들을 AND, OR, NOT으로 결합할 수 있다.
  3. ORDER BY절은 질의 결과가 한 개 또는 그 이상의 열 값을 기준으로 오름차순 또는 내림차순으로 정렬될 수 있도록 기술된다.
  4. SELECT절은 질의 결과에 포함될 테이블 열들을 기술하며, 이는 데이터베이스로부터 테이블 열 또는 계산 열이 될 수 있다.

SQL문에서 HAVING을 사용할 수 있는 절

GROUP BY절

입교 지원 현황을 조회하고자 할 때 다음 예시된 SQL 구문으로 알 수 있는 것은?

SELECT 지원, 지원학과, 전화번호 FROM 지원자 WHERE 점수 > 59 ORDER BY 지원학과, 점수 DESC;
  1. 지원자 테이블을 검색한다.
  2. 점수가 60점 이상인 지원자만 검색한다.
  3. 지원학과 별 점수 순위를 알 수 있다.

학번이 100, 이름이 홍길동, 학과가 컴퓨터인 학생을 학생 테이블에 삽입하라.

INSERT INTO 학생 VALUES (100, "홍길동", "컴퓨터")

SQL에서 조건문

  • LIKE: 지정된 속성에서 부분 문자가 들어 있는 튜플을 대상으로 검색시킬 조건을 표현할 때 사용

올바른 설명

SELECT * FROM STUDENT WHERE SNAME LIKE '홍%';
  • SNAME이 '홍'씨로 시작되는 튜플을 찾는다.

SQL에서 사용되는 내장 함수

  1. SUM: 열에 있는 값들의 합계
  2. COUNT: 튜플의 개수
  3. MAX: 열에서 최대값
  4. AVG: 열에 있는 값들의 평균 (AVR 아니다.)

그룹화에 대한 설명

  1. 튜플이 어떤 속성값을 기준으로 분류된 그룹 단위에 내장 함수를 적용하고자 하는 경우에 사용한다.
  2. 튜플을 그룹으로 분류하는 데 사용되는 속성을 그룹화 속성(Grouping Attribute)라 한다.
  3. 그룹화를 위하여 GROUP BY절을 사용하여 그룹화 속성을 명시한다.
  4. 함수를 적용시킨 결과를 그룹화 속성의 값과 같이 나타나도록 하기 위해서 SELECT절에 그룹화 속성을 같이 명시해야 한다.

질의 수행 결과를 정렬하는 방법

  1. ORDER BY절을 사용한다.
  2. 기본 정렬 방식은 오름차순이다.
  3. ASC 키워드를 사용하여 사용자가 오름차순 정렬 방식을 지정할 수 있다.
  4. DESC 키워드를 사용하여 사용자가 내림차순 정렬 방식을 지정할 수 있다.

(제일은행)Company 직원들의 Name과 그들이 사는 City를 찾아라

SELECT works.name, city FROM lives, works WHERE company="제일은행" AND located.name = work.name

SQL의 INSERT 명령어에 대한 설명으로 옳지 않은 것은?

  1. 명령 하나로 한개의 테이블에만 삽입할 수 있다.
  2. 부속 질의어를 사용할 수 있다.
  3. 하나의 INSERT 명령어를 사용하여 여러 개의 튜플을 삽입할 수도 있다.
  4. NULL 값도 삽입할 수 있다.

학번이 1000번인 학생을 학생 테이블에서 삭제하세요.

DELETE FROM 학생 WHERE 학번 = 1000;

SQL의 UPDATE 명령어에 대한 설명

  1. 하나 또는 그 이상의 튜플의 속성값을 변경하는 데 사용된다.
  2. 테이블에서 수정할 튜플을 선택하기 위해 WHERE 절이 사용된다.
  3. 변경할 속성과 그들의 새로운 값을 명시하기 위해 SET 절이 사용된다.
  4. 참조 무결성 제약이 존재하는 경우 기본키 값을 변경하는 경우 그 변경이 외래키 값에 영향을 미칠 수 있다.
UPDATE 테이블명 SET 속성명 = 데이터 WHERE 조건;

문제

UPDATE STUDENT SET SCORE = SCORE + 10 WHERE SNAME = "LEE";
  • STUDENT 테이블에서 SNAME이 "LEE"인 모든 튜플의 SCORE 속성에 10을 더한다.

문제

  • DELETE 문에는 한 개의 테이블명만 사용할 수 있다.
    따라서 아래 구문은 잘못됐다.
# STUDNET, ENROL 둘 중 하나만 써야한다.
DELETE FROM STUDENT, ENROL WHERE SNO = 100;

문제 P471

  • 이렇게 하면 앞뒤로 신이 들어간 경우를 찾을 수 있다.
SELECT * FROM 공급자 WHERE 공급자명 LIKE '%신%';

문제

SELECT 가격 FROM 도서가격 WHERE 책번호 = (SELECT 책번호 FROM 도서 WHERE 책명 = "운영체제");
  • 15000원을 알 수 있다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글