-
오라클 및 MySQL 등의 DBMS를 설명하기에 앞서 SQL을 먼저 배우고 보는 게 더 좋을 것 같아서 학원에서 준 SQL 교재를 기반으로 내용을 정리하였습니다.
SQL 입문
Chapter 1. SQL 개요
SQL 튜토리얼은 구조적 질의 언어(Structured Query Language)에 있어 고유한 학습을 제공하며,
즉시 결과를 제공하는 SQL 명령어를 연습하는데 도움을 줍니다.
SQL은 데이터베이스의 언어이며,
SQL은 데이터베이스 생성, 삭제, 행을 가져오거나 수정하는 기능 등을 포함하고 있습니다.
SQL은 ANSI(American National Standards Institute: 미국 규격협회) 표준이지만
거기에는 매우 다양한 SQL 언어들이 있습니다.
1. SQL이란?
구조적 질의 언어(Structured Query Language)인 SQL은
관계 데이터베이스에 저장된 데이터를 적재, 조작, 검색하기 위한 컴퓨터 언어를 말합니다.
SQL은 관계 데이터베이스 시스템을 위한 표준 언어입니다.
MySQL, MS Access, Oracle, Sybase, Infomix, postgres, SQL Server와 같은 모든 관계 데이터베이스 관리 시스템은
표준 데이터베이스 언어로 SQL을 사용하고 있습니다.
또한, 이러한 데이터베이스 관리 시스템은 다음과 같은 다양한 방언을 사용하고 있습니다.
* T-SQL을 사용하는 MS SQL Sever,
* PL/SQL을 사용하는 Oracle,
* JET SQL(기본 형식)이라 불리는 SQL의 MS Access 버전 등
2. 왜 SQL을 사용할까?
* 사용자가 관계 데이터베이스 관리시스템의 데이터에 접근하는 것을 가능하게 해줍니다.
* 사용자가 데이터를 서술하는 것을 가능하게 합니다.
* 사용자가 데이터베이스의 데이터를 정의하고 조작할 수 있도록 해줍니다.
* SQL 모듈, 라이브러리와 프리컴파일러을 사용하는 다른 언어를 끼워 넣을 수 있습니다.
* 사용가가 데이터베이스와 테이블을 생성, 삭제를 할 수 있게 해줍니다.
* 사용자가 데이터베이스에서 함수, Stored Procedure, 뷰를 생성할 수 있습니다.
* 사용자가 테이블, 프로시져, 뷰에 대한 조작 권한을 설정할 수 있습니다.
3. SQL의 역사
* 1970 -- IBM사 "Ted"(Dr. E.F.Codd )는 관계 데이터베이스의 아버지로 알려져 있으며, 데이터베이스를 위한 관계 모델에 대해 서술
* 1974 -- 구조적 질의 언어가 나타남
* 1978 -- IBM은 Codd의 아이디어를 개발하고 System/R이라 이름 지은 상품을 출시하기 위해 노력했음
* 1986 -- IBM은 관계 데이터베이스의 첫 번째 프로토타입을 개발하고 ANSI로 표준화했다. 첫 번째 관계 데이터베이스는 지금의 오라클이 될 관계 소프트웨어로 출시됨
4. SQL 처리과정
당신이 어떤 RDBMS를 위한 SQL 명령을 실행할 때, 시스템은 당신의 요청을 수행하는 가장 최적의 방벙을 결정하고 SQL 엔진은 작업의 방해 정도를 계산합니다.
SQL 처리과정에 다음과 같은 다양한 요소들이 포함되어 있습니다.
대표적인 구성 요소로 Query Dispatcher(질의 디스패쳐), Optimizatin Engines(최적화 엔진), Classic Query Engine와 기타 SQL Query Engine 등이 있습니다.
Classic query engine은 모든 비 SQL 질의을 다루지만 SQL Query Engine은 논리적인 파일을 다룰 수 없습니다.
다음은 SQL Architecture를 단순하게 도식화한 것입니다.
SQL Query
↓
Query Language Processor ← Parser + Optimizer
↓
DBMS Engine ← File Manager + Transaction Manager
↓
Physical Database
5. SQL 명령어
표준 SQL 명령은 관계 데이터베이스와의 상호작용을 위해 CREATE, SELECT, INSERT, UPDATE, DELETE, DROP으로 이루어져 있습니다.
이 명령어들은 각각의 성격에 따른 그룹으로 분류할 수 있습니다.
1) DDL - Data Definition Language(데이터 정의어)
* CREATE: 새로운 테이블, 뷰 또는 데이터베이스의 다른 개체를 생성
* ALTER: 테이블과 같이 존재하는 데이터베이스 개체를 수정
* DROP: 테이블 전체, 뷰 또는 데이터베이스의 다른 개체를 삭제
2) DML - Data Manipuation Language(데이터 조작어)
* INSERT: 레코드를 생성
* UPDATE: 레코드를 수정
* DELETE: 레코드를 삭제
3) DCL - Data Control Language(데이터 제어어)
* GRANT: 사용자에게 권한을 부여
* REVOKE: 사용자로부터 부여된 권한을 회수
4) DQL - Data Query Language(데이터 질의어)
* SELECT: 1개 또는 그 이상의 테이블로부터 조건에 맞는 레코드를 조회'SQL' 카테고리의 다른 글
3. SQL RDBMS 데이터베이스의 종류 (0) 2019.04.03 2-4. 데이터베이스 정규화 (0) 2019.03.29 2-3. 데이터 무결성 (0) 2019.03.27 2-2. SQL 제약조건 (0) 2019.03.19 2-1. SQL의 RDBMS 개념 (0) 2018.12.02