본문 바로가기

데이터베이스 (한양대 백현미)

데이터베이스 강의 11

🎯  학습 목표

 

 

 

 

 

‣ SQL의 역할을 이해하고, 이를 기능별로 분류해본다.

‣ SQL의 데이터 정의 기능을 예제를 통해 익힌다.

‣ SQL의 데이터 조작 기능을 예제를 통해 익힌다.

 

 

 

 


 

1.  SQL의 소개

 

• SQL (Structured Query Langauge)

 

     • 관계 데이터베이스를 위한 표준 질의어

     • 1974년에 IBM 연구소에서 데이터베이스 시스템, "시스템 R"을 질의하기 위해서 만들어진 구조화된 언어

     • 미국 표준 연구소인 ANSI와 국제 표준화 기구인 ISO에서 표준화 작업을 진행

 

 

• SQL의 분류

 

     • 데이터 정의어(DDL) : 테이블을 생성하고 변경, 제거하는 기능을 제공

     • 데이터 조작어(DML) : 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정, 삭제, 검색하는 기능을 제공

     • 데이터 제어어(DCL) : 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공

 


 

 

✓ DDL : Data Definition Language (데이터 정의어) - 객체 생성 및 변경 시 사용

             - CREATE (테이블 생성)

             - ALTER (테이블 변경)

             - DROP (테이블 삭제)

 

 

✓ DML : Data Manipulation Language (데이터 조작어) - 데이터 변경 시 사용

             - SELECT (데이터 검색 시 사용)

             - INSERT (데이터 입력)

             - UPDATE (데이터 수정)

             - DELETE (데이터 삭제)

 

 

2.  SQL를 이용한 데이터 정의

 

• SQL의 데이터 정의 기능

      • 테이블을 생성, 변경, 제거

 

 

 


 

 

•  테이블 생성 : CREATE TABLE 문

 

- [ ]의 내용은 생략이 가능

- SQL 질의문은 세미콜론으로 문장의 끝을 표시 (Microsoft Access SQL 에서는 필요없음)

- SQL 질의문은 대소문자를 구분하지 않음

 


 

예 1) 고객 테이블은 고객아이디, 고객이름, 나이, 등급, 직업, 적립금 속성으로 구성되고, 고객아이디 속성이 기본키다. 고객이름과 등급 속성은 값을 반드시 입력해야 하고, 적립금 속성은 값을 입력하지 않으면 0이 기본으로 입력되도록 고객 테이블을 생성해보자.

 

CREATE TABLE 고객 (

           고객아이디  VARCHAR(20)  NOT NULL,

           고객이름     VARCHAR(10)  NOT NULL,

           나이            INT,

           등급            VARCHAR(10)  NOT NULL,

           직업            VARCHAR(20),

           적립금         INT  DEFAULT 0,

           PRIMARY KEY(고객아이디)

);

 

 

 

예 2) 제품 테이블은 제품번호, 제품명, 재고량, 단가, 제조업체 속성으로 구성되고, 제품번호 속성이 기본키다. 재고량이 항상 0개 이상 10,000개 이하를 유지하도록 제품 테이블을 생성해보자.

 

CREATE TABLE 제품 (

           제품번호   VARCHAR(3)  NOT NULL,

           제품명      VARCHAR(20),

           재고량      INT,

           단가         INT,

           제조업체  VARCHAR(20),

           PRIMARY KEY(제품번호),

           CHECK(재고량 >= 0 AND 재고량 <= 10000)

);

 

 

 

예 3) 주문 테이블은 주문번호, 주문고객, 주문제품, 수량, 배송지, 주문일자 속성으로 구성되고, 주문번호 속성이 기본키다. 주문고객 속성이 고객 테이블의 고객아이디 속성을 참조하는 외래키이고, 주문제품 속성이 제품 테이블의 제품번호 속성을 참조하는 외래키가 되도록 주문 테이블을 생성해보자.

 

CREAT TABLE 주문 (

           주문번호    CHAR(3),     NOT NULL

           주문고객    VARCHAR(20),

           주문제품    VARCHAR(3),

           수량           INT,

           배송지       VARCHAR(30),

           주문일자    DATETIME,

           PRIMARY KEY(주문번호),

           FOREIGN KEY(주문고객) REFERENCES 고객(고객아이디),

           FOREIGN KEY(주문제품) REFERENCES 제품(제품번호)

);

 

 

 

•  테이블 변경 : ALTER TABLE 문

 

       • 새로운 속성 추가

 

예) 고객 테이블에 가입날짜 속성을 추가해보자.

 

ALTER TABLE 고객

        ADD 가입날짜 DATETIME;

 

 

 

       • 기존 속성 삭제

- CASCADE : 삭제할 속성과 관련된 제약조건이나 참조하는 다른 속성을 함께 삭제

- RESTRICT : 삭제할 속성과 관련된 제약조건이나 참조하는 다른 속성이 존재하면 삭제 거부

 

 

예) 고객 테이블의 등급 속성을 삭제하면서 관련된 제약조건이나 등급 속성을 참조하는 다른 속성도 함께 삭제해보자.

 

ALTER TABLE 고객 DROP 등급 CASCADE;

 

 

 

•  테이블 제거 : DROP TABLE 문

 

 

예) 고객 테이블을 삭제하되, 고객 테이블을 참조하는 다른 테이블이 존재하면 삭제가 수행되지 않도록 해보자.

 

DROP TABLE 고객 RESTRICT;

'데이터베이스 (한양대 백현미)' 카테고리의 다른 글

데이터베이스 강의 12  (0) 2021.07.21
데이터베이스 강의 10  (0) 2021.07.20
데이터베이스 강의 9  (0) 2021.07.20
데이터베이스 강의 8  (0) 2021.07.20
데이터베이스 강의 7  (0) 2021.07.20