03 | SQL과 PL/SQL 알아 보기
SQL의 개요
SQL은 구조화된 질의 언어Structured Query Language의 약자로 DBMS 상에서 데이터를 읽고 쓰고 삭제하는 등 데이터를 관리하기 위한 일종의 프로그램 언어다. C나 자바와 같은 일반 프로그래밍 언어는 절차적 언어라고 할 수 있는데 반해, SQL은 집합적 언어다. 절차적 언어의 특징은 프로그래밍 순서대로 로직이 처리되는 것인데(자바와 같은 객체지향형 언어도 절차적 언어에 그 뿌리를 두고 있다), 집합적 언어는 데이터를 특정 집합 단위로 분류해 이 단위별로 한 번에 처리하는 언어라고 할 수 있다.
E. F. Codd에 의해 관계형 데이터베이스 이론이 발표된 후, IBM 연구소에서 최초로 SEQUELStructured English Query Lanaguage란 언어를 개발했는데 이것이 SQL의 효시다. SEQUEL은 SQL이라는 명칭으로 변경되었고 관계형 데이터베이스에서 SQL이 표준 언어로 채택되어 사용되고 있다.
1980년대 후반 국제표준화기구(ISO)와 미국국립표준협회(ANSI)에서 RDBMS의 표준 언어로 SQL을 채택하였다. 표준이란 의미는 ‘표준’ SQL 구문만 학습하면 오라클은 물론 MSSQL, DB2 등 여러 DBMS에서 동일하게 사용할 수 있다는 뜻이다. 현대적인 일반 프로그래밍 언어도 대부분 그 뿌리가 C 언어라서 문법과 구문이 비슷하지만 각 언어별로 서로 다른 점이 많다. 하지만 SQL은 언어 자체가 간단하므로 한 번만 학습하면 DBMS에 구애되지 않고 자유자재로 사용할 수 있다. 물론 DBMS별로 독특한 기능이 존재하는 것은 사실이지만, 다른 프로그래밍 언어에 비해 그 차이는 미미한 수준이다.
SQL은 크게 DDL과 DML로 나눌 수 있다. DDL은 데이터 정의어Data Definition Language로 데이터베이스 객체를 관리하는 언어고, DML은 데이터 조작어Data Manipulation Lanaguage로 데이터 삽입, 조회, 삭제, 갱신 등 실제로 데이터를 조작하는 언어다. 개발자 입장에서는 DDL보다는 DML을 사용하는 빈도가 압도적이며 그 종류 역시 DML이 많다.