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 특징
ㅇ 비 절차적 데이터 접근 언어
- 원하는 데이터가 무엇인지 만 제시하고,
- `어떻게(=로직)/어떤 절차로` 얻을 것인지가 중요하지 않음 ☞ 절차식 언어 참조
ㅇ 관계 사상(Relation Mapping)
- 입력 릴레이션으로부터 원하는 출력 릴레이션으로 사상시키는 관계형 언어 ☞ 관계 대수 참조
- SQL은, SELECT-FROM-WHERE 구조로 특징지울 수 있는 관계 사상(relation mapping)을
기초로 한 대표적인 언어
ㅇ 레코드 집합 연산 위주
- SQL은 개개의 레코드보다는 주로 레코드 집합에 대한 연산을 수행
ㅇ 엑세스 경로(access path)에 대하여는 어떤 참조도 포함하지 않음
4. SQL 주요 기능 구성 (꽤 크고 복잡하나 사용은 편리)
ㅇ 언어적 기능
- DDL (Data Definition Language, 데이터 정의 언어)
. 스키마, 테이블, 뷰 등의 생성,변경,삭제 등
.. 例) create, alter, drop, rename, truncate, create view, drop view 등
. 이 범주로는 작업의 완정성을 보장해주는 트랜잭션 기능이 없으므로,
.. rollback(되돌림), commit(완전적용) 등 DCL 기능의 확정,취소를 쓸 수 없음
- DML (Data Manipulation Language, 데이터 조작 언어)
. 데이터의 조회,저장,변경,삭제 등
.. 例) select, insert, update, delete 등
. 작업의 완정성을 보장해주는 트랜잭션 기능이 있음
- DCL (Data Control Language, 데이터 제어 언어)
. (트랜잭션) 데이터 처리 제어(변경 처리 내용의 확정,취소 등)의 정의 및 기술
.. 例) commit, rollback 등
. (권한) 사용자 계정 관련 생성,삭제, 권한 부여,철회 등
.. 例) grant, revoke, deny 등
ㅇ 기타 기능
- 무결성 (Integrity)
- 뷰 정의 (View Definition)
- 트랜잭션 제어 (Transaction Control)
- 내장 SQL (Embded SQL)
- 인증 (Authorization) 등
5. SQL 기본 내장 타입
ㅇ 정수형 (integer) : 정수 (INT,INTEGER), 작은 정수 (SMALLINT)
ㅇ 실수형 (real) : 실수 (REAL), 고배정도 (DOUBLE PRECISION), 고정소수점 (NUMERIC),
부동소수점 (FLOAT) 등
ㅇ 문자형 (character) : 고정길이 (CHAR), 가변길이 (VARCHAR)
ㅇ 날짜형 (date) : 년월일시분초 (DATE)
6. SQL 기본 규칙
ㅇ SQL 문장은, 세미콜론(;)으로 끝남
ㅇ 대소문자 구분 없음
ㅇ 단어는 공백문자 또는 줄바꿈문자로 구분
ㅇ 문자열,날짜 상수는 작은따옴표(')로 감싸서 표현
- 단, 숫자 상수는 그냥 숫자 그 자체 만으로 표현
ㅇ 명칭 사용 문자 제한
- 데이터베이스,테이블,칼럼 등의 명칭에 사용할 문자는, 영문자,숫자,언더바(_) 만 가능
- 명칭의 첫 글자는 반드시 영문이어야 함
- 동일 데이터베이스 (테이블) 내 같은 명칭의 테이블명 (칼럼명) 사용 안됨
6. SQL 기본 용어
※ ☞ SQL 용어 참조
- 관계 : DB 내 저장된 데이터 개체들 간의 관계성 정보로써, 테이블로써 나타냄
- 테이블 : 행(튜플)과 열(속성)로 구성된 데이터 집합
- 튜플 : 테이블에서 하나의 행에 해당하는 데이터 항목 모음
- 속성 : 테이블의 열을 구성하는 데이터 항목의 유형
- 도메인 : 특정 속성에 허용된 값들의 범위 또는 집합
- 뷰 : 특정 쿼리 결과를 저장한 가상 테이블로, 원본 데이터는 변경되지 않음