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는 단축하거나 줄로 나누어 쓸 수 없다.
  • 절은 대개 줄을 나누어 쓰도고 권한다.
  • 탭과 줄 넣기는 읽기 쉽게 하기 위해 사용을 권한다.


+ Recent posts