> For the complete documentation index, see [llms.txt](https://redryan.gitbook.io/studyjoon/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://redryan.gitbook.io/studyjoon/hacking/undefined/sql-sql/sql.md).

# SQL이란 무엇인가?

## SQL이란 무엇인가?

<figure><img src="https://cdn.inflearn.com/public/files/posts/443d2bfa-2988-4036-9f69-a95542b3bc4b/158a78c5-15dd-414f-b93f-41f74195e004.png" alt=""><figcaption></figcaption></figure>

* DBMS를 이용하기 위해서 어플리케이션을 이용하는데 이 어플리케이션에는 쿼리분석기인 **SQL 클라이언트**
  * DBMS에 명령을 내리기 위해 SQL을 입력할 수 있는 화면을 제공하는 프로그램
* 프로그래밍 언어들 : **JAVA, PHP, ASP, PYTHON**...
* 등 의 어플리케이션을 사용하게 된다.
* 이 때 어플리케이션(SQL 클라이언트, 프로그래밍 언어)에서 **SQL 문법**을 가지고 DBMS에 요청을 한다.

### SQL 문법 종류

<figure><img src="https://cdn.inflearn.com/public/files/posts/7a0b8a4e-4118-48e6-a35f-6937c671b550/447fc5a1-5e3a-4470-9ae3-3da1a4ed0b68.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://cdn.inflearn.com/public/files/posts/15ed863e-f4f8-4988-ae38-af92aabe500e/e0452691-6b6b-4513-af12-ded3e3005d43.png" alt=""><figcaption></figcaption></figure>

* 데이터 정의 언어(DDL) : 관계형 데이터베이스의 구조를 정의하는 언어
* 데이터 조작 언어(DML) : 관계형 데이터베이스의 데이터 조작을 위해서 사용 되는 언어
* 데이터 제어 언어(DCL) : 데이터에 대한 접근을 제어하기 위한 언어
* 여기에서 데이터 조작 언어의 사용 비중이 가장 높으며 SQL 인젝션 공격과도 직접 연관이 있는 문법이다.
* 이 데이터 조작 언어를 CRUD 라고 부르기도 한다

### 데이터 처리를 위한, CRUD

<figure><img src="https://cdn.inflearn.com/public/files/posts/31bfc0a1-d406-4442-b030-8eb4518c4503/3dd46b8c-d8c7-4ed1-a72d-ad9414f9f796.png" alt=""><figcaption></figcaption></figure>
