Structured Query Language
(구조적 질의 언어)는 관계형 데이터베이스 시스템에서 자료를 관리 및 처리하기 위해 설계된 언어
''
)로 감싸줌--
으로 주석 처리/**/
으로 처리데이터 조작 언어로 데이터를 관리하기 위한 언어
insert
: 테이블에 데이터 삽입
INSERT INTO table_name VALUES (data~);
update
: 데이터 내용 수정
UPDATE table_name SET column1 = value WHERE condition;
delete
: 데이터 삭제
DELETE FROM table_name WHERE condition;
select
: 칼럼 조회
SELECT column1 FROM table_name;
데이터 정의 언어로 relation을 정의하기 위한 언어
create
: 테이블 생성
CREATE TABLE table_name (
column1 type condition,
column2 type condition,
PRIMARY KEY ~);
alter
: 테이블 수정
ALTER TABLE table_name ~;
drop
: 데이터베이스나 테이블 삭제
DROP TABLE table_name;
DROP DATABASE db_name;
truncate
: 테이블의 데이터를 모두 삭제
TRUNCATE TABLE table_name;
rename
: 테이블 이름 변경
RENAME TABLE old_table TO new_table;
데이터 제어 언어로 relation 및 데이터를 관리하고 접근하는 권한을 다루는 언어
grant
: 사용자에 권한을 부여
GRANT 권한 TO user;
revoke
: 사용자의 권한을 회수
REVOKE 권한 FROM user;
DCL(Data Control Language)
에서 트랜잭션을 제어하는 명령인 COMMIT
과 ROLLBACK
만을 따로 분리해서 TCL로 정의
commit
: 트랜잭션 처리가 정상적으로 종료되어 작업을 정상적으로 처리rollback
: 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성이 깨졌을 때 트랜젝션 처리 과정에서 발생한 변경사항을 취소savepoint
: 현재의 트랜젝션을 작게 분할SAVEPOINT C1;
ROLLBACK TO C1;
LIMIT
: 조회 결과 행의 수 제한SELECT * FROM table_name LIMIT 2;
GROUP BY
: 특정 칼럼 기준의 데이터 그룹핑SELECT column1 FROM table_name GROUP BY column1;
ORDER BY
: 특정 칼럼 기준으로 정렬ASC
: 오름차순 / DESC
: 내림차순SELECT * FROM table_name ORDER BY column1 DESC;
DISTINCT
: 중복 행을 제거SELECT DISTINCT column1 FROM table_name;
ALIAS
: 칼럼에 별칭을 주고 조회SELECT column1 '별칭' FROM table_name WHERE id = 1;
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
JOIN은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것
SELECT <열 목록>
FROM <첫 번째 테이블>
INNER JOIN <두 번째 테이블>
ON <조인될 조건>
[WHERE 검색 조건]
INNER JOIN
대신 JOIN
으로 입력해도 인식 가능SELECT <열 목록>
FROM <첫 번째 테이블(LEFT 테이블)>
<LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
ON <조인될 조건>
[WHERE 검색 조건]
LEFT OUTER JOIN
: 왼쪽 테이블의 모든 값이 출력되는 조인RIGHT OUTER JOIN
: 오른쪽 테이블의 모든 값이 출력되는 조인FULL OUTER JOIN
: 왼쪽 또는 오른쪽 테이블의 모든 값이 출력되는 조인한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인
상호 조인 결과의 전체 행 개수는 두 테이블의 각 행의 개수를 곱한 수
SELECT *
FROM <첫 번째 테이블>
CROSS JOIN <두 번째 테이블>
SELECT <열 목록>
FROM <테이블> 별칭A
INNER JOIN <테이블> 별칭B
ON <조인될 조건>
[WHERE 검색 조건]
참고자료
https://edu.goorm.io/learn/lecture/15413/한-눈에-끝내는-sql/lesson/767683/sql이란
https://velog.io/@ygh7687/SQL-문법-정리
https://hongong.hanbit.co.kr/sql-기본-문법-joininner-outer-cross-self-join/