참고
https://velog.io/@ygh7687/SQL-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%A6%AC
MySQL cheatsheat https://devhints.io/mysql
Structured Query Language
: 구조화된 질의 언어
=> '질의'. 질문하다라는 뜻으로, 정리하자면 SQL이란 데이터베이스에게 원하는 데이터에 관하여 효과적으로 질문하기 위해 구조화되고 규격화된 '언어'이다.
RDBMS(Relational Database Management System)에서 데이터를 관리하기 위해 설계된 언어로, ANSI SQL을 표준으로 지정한다.
특징
- SQL은 대소문자를 가리지 않는다.
- SQL의 명령은 반드시 세미콜론(;)으로 끝난다.
- 고유값은 따옴표("")로 감싸준다.
- SQL에서 객체(Object)는 백틱 `` 으로 감싸준다.
- 한줄 주석은 문장 앞에 --을 붙여서 사용하며, 여러줄은 /**/로 감싸서 사용한다.
- SQL의 문법은 크게 DDL(Data Definition Language), DML(Data Manipulation Language), DCL(Data Control Language)로 나뉜다.
문법
DDL(Data Definition Language, 데이터 정의 언어)
: 테이블이나 관계의 구조를 생성하는데 사용된다.
- CREATE : 데이터베이스 및 객체 생성
- ALTER : 기존에 존재하는 데이터베이스 객체 변경
- DROP : 데이터베이스 및 객체를 제거
- TRUNCATE
- RENAME : 데이터베이스 및 객체 이름 변경
DML(Data Manipulation Language, 데이터 조작 언어)
: 데이터를 추가/수정/삭제하기 위한, 데이터 관리를 위한 언어이다.
(CRUD를 위한 문법이다.)
- INSERT : 데이터 입력
- SELECT : 데이터 선택
- UPDATE : 기존에 존재하는 데이터 변경
- DELETE : 데이터 삭제
DCL(Data Control Language, 데이터 제어 언어)
: 사용자 관리 및 사용자 별로 데이터를 관리하고 접근하는 권한을 다루기 위한 언어
(보안을 위한 문법이다.)
- GRANT : 특정 데이터베이스 객체 소유자가 다른 사용자에게 객체에 대한 접근 권한 범위와 해당 접근 범위 내에서 수행할 수 있는 연산을 지정
- REVOKE : GRANT로 부여된 일련의 권한을 회수