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는 단축하거나 줄로 나누어 쓸 수 없다.
- 절은 대개 줄을 나누어 쓰도고 권한다.
- 탭과 줄 넣기는 읽기 쉽게 하기 위해 사용을 권한다.
'프로그래밍 > Oracle' 카테고리의 다른 글
오라클 커서를 사용하는 다양한 방법 (1234) | 2020.05.13 |
---|---|
마로의 Oracle 공부: DDL(3) - DROP (471) | 2016.12.14 |
마로의 Oracle 공부: DDL(2) - ALTER (472) | 2016.12.08 |
마로의 Oracle 공부: DDL(1) - CREATE (477) | 2016.10.26 |