DROP문

  • 테이블을 삭제하는 명령어
  • 테이블의 구조와 데이터를 모두 삭제하므로 사용에 주의해야 한다.
  • 삭제하려는 테이블의 기본키를 다른 테이블에서 참조하고 있다면 삭제가 거절된다.(제약조건 위배)
  • 참조하는 테이블부터 삭제하거나 CASCADE CONSTRAINTS 옵션을 사용하여 무결성 제약조건을 동시에 삭제하면 된다.
  • 테이블을 삭제하면 테이블의 컬럼에 대해 생성된 인덱스도 함께 삭제된다.
  • 삭제된 테이블과 관련된 뷰와 시노님은 invalid 상태가 된다.
  • 형식
    DROP TABLE 테이블이름 [CASCADE CONSTRATINS] [PURGE]

DDL 문

  • Data Definition Language
  • 데이터 구조의 생성(CREATE), 변경(ALTER), 제거(DROP) 명령 언어

CREATE 문

  • 테이블을 구성하고, 속성과 속성에 관한 제약 그리고 기본키(PK) 및 외래키(FK)를 정의하는 명령어

형식


CREATE TABLE [테이블이름] (
 [속성이름] [데이터타입] (NULL | NOT NULL | UNIQUE | DEFAULT 기본값 | CHECK 체크조건)
(PRIMARY KEY 속성이름(들))
(FOREIGN KEY 속성이름 REFERENCES 참조테이블이름(참조속성이름))
(ON DELETE (CASCADE | SET NULL))
)

예제


CREATE TABLE EMPLOYEE (
    E_ID VARCHAR2(30 Byte) PRIMARY KEY, -- 기본키(PK) 설정한다.
    E_NAME VARCHAR2(20 Byte) NOT NULL, -- NULL을 허용하지 않는다.
    E_DEPT_CODE NUMBER,
    DEL_YN CHAR(1 Byte) NOT NULL DEFAULT 'N', -- NULL을 허용하지 않으며 기본값을 'N'으로 한다.
    REG_TS DATE NOT NULL DEFAULT SYSDATE -- NULL을 허용하지 않으며 기본값을 시스템시간으로 한다.
    FOREIGN KEY E_DEPT_CODE REFERENCES DEPT_INFO(DEPT_CODE)
    -- 외래키 설정 E_DEPT_CODE 컬럼이 DEPT_INFO 테이블의 DEPT_CODE 컬럼 참조한다.
)

Structured Query Language(SQL)이란?

  • 구조적 쿼리 언어로 데이터베이스에 질의(쿼리)하는 것을 의미한다.

  • SQL을 이용해 단순한 쿼리뿐만 아니라 데이터베이스를 만들거나 제거하고, 데이터베이스 내에 테이블을 삽입, 갱신, 삭제하거나 다양한 운영 작업을 할 수 있기 때문이다. 

  • SQL은 1974년 IBM 연구소에서 발표한 SEQUEL(structured English Query Language)에서 유래한 것으로, 실험적 관계 데이터베이스 시스템인 SYSTEM R의 인터페이스로 설계 구현하였으나 현재 사용중인 DBMS인 DB2와 SQL?DS의 데이터 언어로 사용되고 있다.
  • SQL은 IBM뿐만 아니라 다른 DB에서도 채택하여 SQL을 지원하는 많은 관계 데이터베이스 시스템에 서 사용하고 있다. 현재의 표준인 SQL은 1992년 개정된 것으로 SQL/92 또는 SQL-92, SQL2로 불린다.

SQL 언어의 특징

  • 관계 대수와 관계해석을 기초로 한 고급 데이터 언어
  • 이해하기 쉬운 형태로 표현
  • 대화식 질의어로 사용 가능
  • 데이터 정의, 데이터 조작, 제어기능 제공
  • COBOL, C, PASCAL 등의 언어에 삽입
  • 레코드 집합 단위로 처리
  • 비절차적언어

SQL의 주요 기능

  • data 정의: 저장 데이터의 구조와 데이터 항목들간의 관련성을 정의
  • data 검색: 저장된 데이터를 검색
  • data 조작: 데이터를 삽입, 삭제, 수정
  • 접근 제어: 허가되지 않은 사용자의 사용을 제한
  • data 공유: 동시 사용자들의 사용을 허용/방지
  • 대화식 질의
  • data에 대한 다중 뷰 제공
  • 동적 data 정의

테이블(table)과 뷰(view)

  • SQL은 기본적으로 릴레이션(relation:관계) 즉 테이블을 대상으로 수행되며 테이블에는 기본 테이블(base table)과 뷰(view)가 있다.
  • 기본 테이블은 사용자가 데이터베이스를 생성하는 과정이나 응용 프로그램을 위해 작성하는데 반해, 뷰는 독자적으로 만들어지지 못하고 특정 기본 테이블로 부터 유도되어 만들어 지는 가상 테이블이다. 일반적으로 테이블이라함은 기본 테이블을 의미한다.

PL/SQL과 SQL*Plus

  • PL/SQL이란? : SQL에 Application Logic을 추가하여 확장한 oracle의 절차적인 언어(Procedural Language)를 의미함
  • SQL*Plus이란? : SQL 및 PL/SQL 문장을 인식하고 실행시켜주는 Oracle Tool, 사용자와 물리적 Database 간의 Interface를 담당하는 도구, 즉, DBMS와 user간의 통신수단임

구분

특징

SQL

• 프로그래밍 경험이 적거나 전혀 없는 사용자들도 사용

• 비 절차적 언어

• 시스템을 생성하고 유지 관리하기 위해 요구되는 시간을 절약

• 영어와 유사한 언어

PL/SQL

• SQL 데이터 조작과 질의 명령문은 절차적인 code 단위 안에 포함

• error 처리 가능 이식성

• 데이터 캡슐화, 정보 숨김, 객체지향 같은 현대적 소프트웨어 엔제니어링 기능을 제공하여Oracle server와 Tool set에 대한 최신식의 프로그래밍을 가는케함

SQL*Plus

• 파일로부터 SQL 입력을 받음

• SQL 문장을 수정하기 위한 line 편집을 제공

• 환경적인 설정을 제어

• 질의 결과를 기본적인 레포트 형태로 format

• Local과 Remote DATABASE를 access


SQL 문장 종류

QUERY

=DQL(Data Query Language)

• DB에서 원하는 데이터의 검색

SELECT

DDL

(Data Definition Language)

• 데이터 구조의 생성, 변경, 제거

CREATE

DROP

ALTER

DML

(Data Manipulation Language)

• 테이블에 새로운 행의 삽입, 삭제, 수정

• 데이터베이스 객체 이름 변경

• 데이터 및 저장공간 회수

INSERT

DELETE

UPDATE

RENAME

TRUNCATE

DCL

(Data Control Language)

• DB와 구조에서 접근 권한의 부여와 제거

GRANT

REVOKE

TCL

(Transaction Control Language)

• DML에 의한 변경을 관리

COMMIT

ROLLBACK

SAVEPOINT


SQL 문장 작성법

  • SQL 문장은 대소문자를 구별하지 않는다.
  • SQL*Plus에서 SQL 문장은 SQL 프롬프트에 입력되며, 이후의 Line은 줄번호가 붙는다.
  • SQL 명령을 종료할 때는 세미콜론(;)을 반드시 붙여야 한다.
  • 맨 마지막 명령어 1개가 SQL buffer에 저장된다.
  • SQL 문장은 한 줄 이상일 수 있다.
  • SQL 명령어를 구성하고 있는 단어중 어디에서나 분리해도 된다.
  • 한 개의 line에 한 개의 절(select, from, where) 형태로 나누어 입력하는 것을 권한다.그러나 한 개의 단어를 두 줄로 나누어 입력해서는 안된다.
  • keyword는 대문자로 입력하도록 권한다.
  • 다른 모든 단어 즉, table 이름, column 이름은 소문자로 입력을 권한다.
  • keyword는 단축하거나 줄로 나누어 쓸 수 없다.
  • 절은 대개 줄을 나누어 쓰도고 권한다.
  • 탭과 줄 넣기는 읽기 쉽게 하기 위해 사용을 권한다.


데이터베이스와 데이터베이스 시스템



 데이터, 정보, 지식


- 데이터가 모이면 정보가 되고 정보가 모이면 지식이 된다.

- 데이터: 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값

- 정보: 데이터에 의미를 부여한 것

- 지식: 사물이나 현상에 대한 이해


 일상생활의 데이터베이스

    - 데이터베이스는 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것

    < 데이터베이스의 활용 분야> 

     분야

     활용

     생활과 문화

    • 기상정보: 날씨 정보를 제공
    • 교통정보: 교통상황 정보를 제공
    • 문화예술정보: 공연이나 인물에 관한 정보를 제공

     비즈니스

    • 금융정보: 금융, 증권, 신용에 관한 정보를 제공

    • 취업정보: 정부와 기업의 채용 정보를 제공

    • 부동산정보: 공공기관이나 민간의 토지, 매물, 세금 정보를 제공

     학술정보

    • 연구학술정보: 논문, 서적, 저작물에 관한 정보를 제공

    • 특허정보: 특허청의 정보를 기업과 연구자에게 제공

    • 법률정보: 법제처와 대법원의 법률정보를 제공

    • 통계정보: 국가기관의 통계정보를 제공


     데이터베이스 개념

    1. 통합된 데이터(integrated data)

    - 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장된 데이터를 의미

    - 각자 사용하던 데이터의 중복을 최소화하여 중복 저장으로 인한 데이터 불일치 현상 제거

    2. 저장된 데이터(stored data)

    - 문서로 보관된 데이터가 아니라 디스크 같은 컴퓨터 저장장치에 저장된 데이터를 의미

    - 컴퓨터 프로그램을 이용하여 디스플레이하거나 인쇄물로 출력 가능

    3. 운영 데이터(operational data)

    - 조직의 목적을 위해 사용하는 데이터

    - 업무를 위한 검색을 할 목적으로 저장된 데이터

    - 조직의 목적과 관계없이 저장된 데이터나 단순 입출력 데이터 같이 임시로 저장된 데이터는 운영 데이터에 속하지 않는다.

    4. 공용 데이터(shared data)

    - 한 사람 또는 한 업무를 위해 사용되는 데이터가 아닌 공동으로 사용되는 데이터

    - 데이터는 어느 순간이라도 둘 이상의 프로그램 또는 여러 사람이 동시에 사용할 수 있다.


     데이터베이스 특징

    1. 실시간 접근성(real time accessibility)>

    - 데이터베이스는 실시간으로 서비스된다.

    - 실시간이란 사용자가 요청하는 순간에 실제 데이터를 서비스하는 것을 말한다.

    2. 계속적인 변화(continuous change)

    - 데이터베이스의 저장된 내용은 어느 한 순간의 상태를 나타내지만,

    - 데이터 값은 시간에 따라 항상 바뀐다.

    - 삽입(insert), 삭제(delete), 수정(update) 등의 작업으로 바뀐 데이터 값을 저장한다.

    3. 동시 공유(concurrent sharing)

    - 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다.

    - 동시 병행이라고도 한다.

    - 데이터베이스에 접근하는 사용자 데이터 요청 프로그램이 동시에 여러 개 존재한다는 의미이다.

    4. 내용에 따른 참조(reference by content)

    - 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아닌 데이터 값에 따라 참조된다.

    - 사용자가 원하는 데이터를 얻기 위해 데이터 값을 사용하여 조건을 제시하면 데이터베이스는 이에 해당하는 데이터를 검색해준다.


     데이터베이스 시스템의 구성

    - 각 조직에서 사용하던 데이터를 모아서 통합하고 서로 공유하여 생기는 장점을 이용하는 시스템

    - 데이터베이스 관리시스템(DBMS, Database Management System), 데이터베이스, 데이터모델이 있다.

    - DBMS: 사용자와 데이터베이스를 연결해주는 소프트웨어로 주기억장치에 상주한다.

    - 데이터베이스: 데이터를 모아둔 토대

    - 데이터모델: 데이터가 저장되는 기법에 관한 내용으로, 눈에 보이지 않는 논리적인 개념




    + Recent posts