본문 바로가기
IT

SQL의 개념과 역사 질의어 사용

by 미니송 2017. 12. 8.


이번 포스팅은 SQL에 대한 설명을 해보도록 하겠습니다. SQLStructured Query Language의 약자입니다. 해석해 본다면 구조적 데이터 질의 언어라고 해석할 수 있습니다. SQL은 데이터베이스를 사용하는데 필요한 언어이며 데이터베이스에 접근할 수 있는 데이터베이스 하부 언어를 이야기 합니다.


2017/12/04 - [IT] - 데이터베이스(DB)의 개념 및 특성에 대한 설명

2017/12/05 - [IT] - 데이터베이스 언어(DDL, DML, DCL)

앞서 설명한 데이터 정의어(DDL)와 데이터 조작어(DML)를 포함하고 있습니다. 특정한 데이터베이스 시스템에 한정되지 않아 널리 사용되고 있으며 각종 데이터베이스 프로그램에 사용되고 있습니다. 초기에는 IBM의 관계형 데이터베이스인 시스템에서만 사용되었으나 지금은 다른 데이터베이스에서도 널리 사용합니다.

 

SQL의 역사

SQL은 관계사상(relational mapping)을 기초로 한 대표적인 언어로서 입력 릴레이션(테이블)으로부터 원하는 출력 릴레이션을 사상(mapping)시키는 언어입니다. 이 같은 언어로는 1973 SQUARE(structured queries as relational expressions)가 발표되었는데 수학적인 표현이 많아 초보자가 사용하기는 어려웠습니다.


이것을 기초로 1974 SEQUEL(structured english as query language) IBM의 새너제이(San Jose) 연구소에서 만들어졌으며 다시 이것을 개선하여 1976 SEQUEL 2가 발표되었습니다. SEQUEL 2를 기초로 한 시스템인 시스템 R, 오라클(Oracle) 등이 나오면서 SQL로 알려지게 되었습니다.

 

SQL의 기능

SQL은 단순한 질의 기능뿐만 아니라 완전한 데이터 정의 기능과 조작 기능을 갖추고 있습니다. 또 온라인 단말기를 통해 대화식으로 사용할 수도 있고 코볼이나 PL/I, C 등의 호스트 언어로 된 프로그램에 삽입되어서 사용되기도 합니다. 다른 플랫폼에서 사용할 수 있다는 장점이 있으며 데이터베이스를 사용하는 프로그램에서 같이 사용할 수 있다는 장점이 있습니다.


SQL은 장치 독립적이고 액세스 경로에 대해서는 어떠한 참조도 하지 않으며, 개개의 레코드보다는 레코드의 집합인 테이블을 단위로 연산을 수행합니다. 또한 SQL은 영어 문장과 비슷한 구문을 갖고 있으므로 초보자들도 비교적 쉽게 사용할 수 있습니다.

 

SQL의 구문

INSERT

데이터를 입력하는 구문입니다. 형식은 다음과 같습니다.


INSERT INTO table(field1, field2, ...) VALUES (value1, value2, ...);


table field1=value1, field2=value2, ...와 같은 속성값을 가지는 항목을 새로 생성하여 삽입합니다. 만약 테이블에 입력될 값이 문자라면 반드시 ' '''으로 문자열 (String)임을 표시해 주어야 문제없이 사용할 수 있습니다. 이는 UPDATE 구문에서도 마찬가지이며 table 이름 바로 뒤에 필드 목록을 생략해도 되지만 생략하려면 VALUES 뒤의 갯수와 내용이 테이블 스키마와 정확히 일치해야 합니다.

 

UPDATE

데이터를 수정하는 구문입니다.

UPDATE table SET field1=value1, field2=value2, {WHERE 조건};


table field1 value1, field2 value2, ... 로 변경한다. WHERE 절이 없을 경우 테이블의 모든 항목이 바뀌므로, 대개 WHERE절과 함께 사용하여 범위를 한정해 줍니다.


ex) UPDATE document SET title='태양' WHERE title1='바람';

제목1이 '바람'인 모든 문서의 제목을 '태양'으로 바꾸는 명령입니다.

 

DELETE

데이터를 삭제하는 구문입니다.


DELETE FROM table {WHERE 조건};


말 그대로 데이터를 삭제하는 구문입니다. 조건절이 없을 경우 테이블의 모든 데이터를 비우게 되므로, 대개 조건절과 함께 사용됩니다.

 

SELECT

데이터를 읽어오는 구문입니다.


SELECT field1, field2, ... FROM table {WHERE 조건};


서비스시 가장 빈번하게 사용되는 구문이다. 테이블에서 지정된 값을 가져오는 구문이며, 모든 값을 가져오기 위해 field 부분을 생략하고 *로 표기하기도 합니다.

ex) SELECT * FROM document WHERE name='도도새';

이름이 '도도새'인 모든 문서의 모든 항목를 가져오는 구문입니다.


SELECT * FROM document WHERE no between 1 and 10;

1부터 10의 번호를 가지는 document 테이블 내의 모든 항목을 가져오는 구문입니다.


댓글