본문 바로가기
컴퓨터과학[3-2]/D.B

데이터베이스 설계 및 구현 - [제7강] 데이터 조작언어 1

by boolean 2016. 7. 31.
728x90

데이터베이스 설계 및 구현 - [제7강] 데이터 조작언어 1

DML의 개요 ․데이터 삽입 ․데이터 수정 ․데이터 삭제

데이터베이스 용어정리

  • 데이터베이스 조작언어
    데이터 정의어로 정의된 스키마 내의 레코드를 삽입·수정·삭제 및 검색하는데 사용되는 명령어의 집합
  • INSERT
    테이블에 일부 또는 전체 컬럼에 컬럼값을 집적 입력하여 레코드를 삽입하고자 할 때 사용하는 질의어
  • UPDATE
    조건에 일치하는 테이블 내의 일부 또는 전체 레코드의 컬럼값을 수정할 때 사용하는 명령어
  • DELETE
    조건에 일치하는 레코드를 테이블에서 삭제할 때 사용하는 명령어
  • SAFE UPDATE
    데이터 복구의 어려움을 미연에 방지하기 위해 WHERE이 없는 UPDATE/DELETE 문의 실행 여부를 결정하는 MySQL 워크벤치의 기능
  • 요점정리

    1. 1. 데이터 조작 언어(DML: Data Manipulation Language)데이터 정의 언어(DDL)에 의해 정의된 데이터베이스 스키마 내의 데이터를 조작하는데 사용된다. 데이터 조작 언어를 사용하여 데이터를 삽입, 수정, 삭제 및 검색할 수 있다.
    2. 2. INSERT 문은 테이블에 모든 또는 부분적인 컬럼에 대한 새로운 레코드를 삽입할 때 사용된다. 또한 이미 다른 테이블에서 검색할 결과를 새로운 테이블에 삽입할 수 있다. 데이터 삽입 시 DBMS의 제약사항을 반드시 만족시켜야 한다. 특히 NOT NULL, PRIMARY KEY, FOREIGN KEY 등 데이터 무결성을 저해하는 데이터 값이 입력될 때, DBMS는 실행을 거부한다.
    3. 3. UPDATE 문은 존재하는 레코드에서 조건에 따라 일부 또는 전체 컬럼값을 변경하는 작업을 수행하며 INSERT 문과 마찬가지로 변경하려는 값이 제약사항을 위배할 경우 실행이 거부된다.
    4. 4. DELETE 문은 조건을 만족하는 레코드를 삭제할 때 사용하는 명령어이다. FOREIGN KEY 제약사항이 존재하는 경우 참조 무결성 제약조건에 의해 실행이 거부될 수 있다.
    5. 5. UPDATE/DELETE 문에 WHERE이 없는 경우 테이블에 존재하는 모든 레코드를 수정/삭제한다. 따라서 SAFE UPDATE 모드는 WHERE이 없는 UPDATE/DELETE 명령문의 실행 여부를 결정한다. 

    연습문제

    • 연습문제1

      다음 중 DML에 포함되는 명령어가 아닌 것은?

      답을 체크하세요
      정답 :
      DML은 테이블에 데이터(레코드)를 조작하는 명령어의 집합으로 INSERT, UPDATE, DELETE, SELECT 명령어가 포함된다. GRANT는 DCL(Data Control Language)은 DBMS의 사용과 관련된 접근 및 보안에 대한 권한 할당에 사용된다.
    • 연습문제2

      다음은 INSERT 문의 예이다. 빈칸 (가)에 알맞은 말은?

      INSERT (    가    ) 교수(교수번호, 소속학과, 교수이름, 직위, 전화번호, 입사일)
      VALUES( 'CO07', '컴퓨터과학과', '정민용', '부교수',
      '020-1905-9994', '2013.05.06')
      답을 체크하세요
      정답 :
      INSERT 명령어 다음에는 ‘~에’를 의미하는 INTO 키워드를 사용한다. SQL는 자연어(영어)에 가깝게 만든 언어로 INSERT는 INTO, DELETE는 FROM 키워드와 함께 사용한다.
    • 연습문제3

      INSERT 문에서 테이블명 뒤에 컬럼명을 반드시 기술해야 되는 경우가 아닌 것은?

      답을 체크하세요
      정답 :
      INSERT 문에 사용자가 의도하는 컬럼값이 정확하게 입력되기 위해서는 전체 컬럼에 테이블을 정의할 때의 컬럼 순서에 맞게 기술되어야 한다. 그렇지 않고 일부 컬럼 또는 순서가 다르게 입력될 때는 INSERT 문의 테이블명 뒤에 컬럼명이 기술되어야 한다.
    • 연습문제4

      아래의 명령을 수행하기 위한 SQL 명령문으로 정확하게 작성된 것은?

      학번이 ‘123456’인 학생의 주소를 ‘서울시 종로구’로 나이를 24세로 수정하시오.
      답을 체크하세요
      정답 :
      UPDATE 문은 “UPDATE 테이블명 SET 컬럼1=값1 [WHERE 조건]”의 구문형식을 사용한다. INSERT문과 DELETE 문과 달리 UPDATE 명령어 다음에 곧바로 테이블명이 기술되며 SET 절 뒤에 수정하는 컬럼 및 값이 나열된다. 수정하려는 컬럼이 두 개 이상일 경우 콤마( , )를 사용하여 구분한다. WHERE 절은 생략이 가능하다.
    • 연습문제5

      아래의 명령을 수행하기 위한 SQL 명령문으로 정확하게 작성된 것은?

      학번이 ‘123456’인 학생의 레코드를 삭제하시오.
      답을 체크하세요
      정답 :
      DELETE 문은 “DELETE FROM 테이블명 [WHERE 조건]”의 구문형식을 사용한다. WHERE절은 생략이 가능하며 생략 될 경우 테이블의 전체 레코드를 삭제한다.
    • 연습문제6

      다음 중 MySQL 워크벤치의 Safe Update 모드가 활성화된 상태에서 실행이 거부되는 명령문은?

      답을 체크하세요
      정답 :
      Safe Update 모드는 모든 데이터 수정 또는 삭제할 수 있는 WHERE절이 없는 UPDATE 문과 DELETE 문의 실행을 방지하는 기능이다. INSERT 문 및 SELECT 문의 실행과는 관계없다. 


    댓글