1. SQL (Structured Query Language, 구조화 질의 언어)
ㅇ 사실상, 관계형 데이터베이스에 대한 질의어 표준 (정형화된 언어)
ㅇ 그러나, 단순한 데이터 질의어 그 이상의 역할을 함
- 즉, 검색 기능, 갱신 연산 이외에도, 데이터베이스 관리를 위한 많은 기능을 제공
. 데이터 구조 정의, 보안 무결성 제약조건 등도 가능
2. SQL 기원 및 표준
ㅇ 기원
- 1970년대 초반 IBM 연구소에서 실험용 RDBMS인 SYSTEM R의 인터페이스로써 개발된
- SEQUEL(Structured English Query Language) 질어 언어가 그 효시
ㅇ ANSI/ISO SQL 표준
- 1982년부터, ANSI를 주축으로, 후에 ISO 공동작업에 의해,
. 관계형 데이터베이스의 질의어 표준으로써 발전되어 옴
- SQL-86 (최초표준,SQL1), SQL-89 (SQL 확장표준), SQL-92 (SQL2, 이전 보다 큰 진전을 이룸),
SQL-99 (SQL3), SQL-2003, SQL-2011 등
. 그러나, 거의 모든 DBMS 판매자들은 SQL을 위한 자사 특유의 특징들을 추가함
3. SQL 특징
ㅇ 비 절차적 데이터 접근 언어
- 원하는 데이터가 무엇인지 만 제시하고,
- `어떻게(=로직)/어떤 절차로` 얻을 것인지가 중요하지 않음 ☞ 절차식 언어 참조
ㅇ 레코드 집합 연산 위주
- SQL은 개개의 레코드보다는 주로 레코드 집합에 대한 연산을 수행
ㅇ 엑세스 경로(access path)에 대하여는 어떤 참조도 포함하지 않음
ㅇ 관계 사상(Relation Mapping)
- 입력 릴레이션으로부터 원하는 출력 릴레이션으로 사상시키는 관계형 언어 ☞ 관계 대수 참조
- SQL은, SELECT-FROM-WHERE 구조로 특징지울 수 있는 관계 사상(relation mapping)을
기초로 한 대표적인 언어
4. SQL 주요 기능 구성 (꽤 크고 복잡하나 사용은 편리)
ㅇ 언어적 기능
- DDL (Data Definition Language, 데이터 정의 언어)
. 스키마, 테이블, 뷰 등의 생성,변경,삭제 등
.. 例) create, alter, drop, create view, drop view 등
. 이 범주로는 트랜잭션 기능이 없으므로,
.. rollback(되돌림),commit(완전적용) 등을 실행시킬 수 없음
- DML (Data Manipulation Language, 데이터 조작 언어)
. 데이터 조회,저장,변경,삭제 등
.. 例) select, insert, update, delete 등
. 작업의 완정성을 보장해주는 트랜잭션 기능이 있음
- DCL (Data Control Language, 데이터 제어 언어)
. 데이터 제어를 정의하고 기술함
. 사용자 계정의 생성,삭제, 권한 부여,철회 등
.. 例) grant, revoke, deny 등
ㅇ 기타 기능
- 무결성 (Integrity)
- 뷰 정의 (View Definition)
- 트랜잭션 제어 (Transaction Control)
- 내장 SQL (Embded SQL)
- 인증 (Authorization) 등
5. SQL 기본 내장 타입
ㅇ 정수형(integer) : 정수 int, 작은 정수 smallint
ㅇ 실수형(real) : 실수 real, 고배정도 double precision, 고정소수점 numeric,
부동소수점 float 등
ㅇ 문자형(character) : 고정길이 char, 가변길이 varchar
ㅇ 날짜형(date) 등