1. SQL(Structured Query Language, 구조적 질의 언어)이란?

 

 SQL은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리 및 처리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 질의(Query) 언어라고 불리기도 합니다. 관계형 데이터 베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터 베이스 객체 접근 조정 관리를 위해 고안되었습니다. MySQL, MariaDB, MSSQL, 오라클 등의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있습니다.

 

*데이터베이스가 SQL을 받아들이는 방식

 

- 띄어쓰기 단위로 구분

 

 데이터베이스가 SQL을 판단하는 방법은 단어와 단어사이의 띄어쓰기입니다. 문장 맨앞에 위치한 단어의 첫번째 글자부터 차례대로 하나씩 읽으면서 사용자의 요청을 분석하게 됩니다. 글자를 하나씩 읽다가 띄어쓰기가 나타나면 이전에 나온 글자들을 조합하여 입력된 언어를 파악합니다. 

 

-예약어 매칭

 

 SQL 문법은 SQL 질의 요청에서 특별한 의미를 가지는 예약어들을 미리 정의해두고 있습니다. 예를 들어 SELECT는 데이터를 추출하여 가지고오라는 명령이 미리 정의된 예약어입니다. 이렇듯, 미리 예약되어있지 않은 단어를 사용하면 데이터베이스는 SQL의 질의 요청을 이해할 수가 없습니다. 다르게 생각하면 자주 쓰이는 예약어들을 외워두면 SQL을 사용하는 데에 어려움이 적을 수 있겠죠?

 

-예약어 규칙

 

 예약어를 미리 정의해두듯이, 데이터베이스가 SQL의 질의 요청을 이해할 수 있도록 예약어 뒤에 필요한 단어들도 미리 정의되어 있습니다. 예를 들어, SELECT의 경우 SELECT 다음에는  반드시 FROM이 오게 되어있고, FROM 바로 뒤에는 데이터를 가져오고 싶은 테이블의 이름이 오도록 정의되어 있습니다. 데이터를 선택하기 위해서는 어떤 테이블에서 어떤 데이터를 선택해야 하는지가 반드시 존재해야하기 때문입니다. 그리고 SELECT와 FROM 사이에는 테이블 열의 이름들이 쉼표(,)로 구분하여 나열하도록 설정되어 있습니다.

 

2. SQL의 언어적 특성

 

 앞서 SQL의 정의와 데이터베이스가 SQL을 이해하는 방식에 대해서 알아봤는데요. 두번째로는 SQL의 언어적 특성에 대해 자세히 알아보겠습니다.

 

- SQL은 기본적으로 대소문자를 구분하지 않지만, 서버 환경이나 DBMS 종류에 따라 데이터베이스 또는 필드명에 대해 대소문자를 구분하기도 합니다.

- SQL 명령은 반드시 세미콜론(;)으로 끝나야 합니다.

- 고유값은 따옴표(")로 감싸줍니다. 

- SQL에서 객체를 나타낼 땐 백틱(` `)으로 감싸줍니다.

- 주석은 일종의 도움말로, 주석으로 처리된 문장은 프로그램에서 동작하지 않습니다. 한 줄 주석은 문장 앞에 --을 붙여서 사용합니다. 여러 줄의 주석은 /* */로 감싸줍니다.

  

 

3. SQL 명령어

 

SQL 명령어는 크게 3가지 그룹으로 나뉩니다. 

 

-DDL(Data Definition Language, 데이터 정의 언어) 

: DDL은 데이터베이스 스키마와 설명을 처리하도록 정의하는 언어입니다. 데이터베이스나 테이블 생성/변경/삭제 등의 작업이 포함됩니다.  

 

*CREATE(데이터베이스 개체(테이블, 인덱스, 제약조건 등)의 정의

*DROP(데이터베이스 개체 삭제)

*ALTER(데이터베이스 개체 정의 변경)

 

-DML(Data Manipulation Language, 데이터 조작 언어)

: 데이터 검색, 삽입, 변경, 삭제 수행을 조작하는 언어입니다. 실질적으로 저장된 데이터를 관리하고 처리할 때 사용합니다. 

 

*SELECT(테이블 데이터의 검색 결과 집합의 취득)

*INSERT(행 데이터 또는 테이블 데이터의 삽입)

*DELETE(데이터의 삭제)

*UPDATE(표 업데이트)

 

-DCL(Data Control Language, 데이터 제어 언어)

: 사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어입니다. 

 

*COMMIT : 트랜잭션의 작업 결과를 반영 

*ROLLBACK : 트랜잭션의 작업을 취소 및 원래대로 복구

*GRANT : 사용자에게 권한 부여

*REVOKE : 사용자 권한 취소

 

[참고자료]

https://ko.wikipedia.org/wiki/SQL

https://parkbosung.tistory.com/11

https://rh-cp.tistory.com/41

https://blog.yena.io/studynote/2018/10/02/DBMS-SQL.html

https://oriyong.tistory.com/71

https://edu.goorm.io/learn/lecture/15413/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-sql/lesson/767683/sql%EC%9D%B4%EB%9E%80

https://brunch.co.kr/@dan-kim/18