본 문서는 2022년 3월 17일 에 작성되었습니다.
DML(Data Manipulation Language, 데이터 질의어) 는 쉽게 생각하면,
DDL(Data Definition Lanugugae, 데이터 정의어) 로 만들어진 Enitity 를 기반으로
Instance 에 대한 CRUD(생성,조회,수정,제거) 의 과정을 하기 위한 명령어 입니다.
이러한 데이터 질의어를 사용하기 위해서는 DDL 에 대한 이해 가 필요하다고 생각합니다.
Velog - Unchaptered / Syntax | DDL Syntax 를 참고해주세요.
DML 은 DDL 을 통해서 만든 구조에 따라서,
실제로 데이터를 사용하기 위해서 만들어진 명령어들입니다.
따라서, 그 내용의 범위가 넓고 깊습니다.
여기서는 가장 기본적인 DML Syntax 를 알아보고 자세한 내용은 SQL SELECT 활용 에서 다뤄보도록 하겠습니다.
INSERT 는 테이블에 로우 데이터를 넣기 위한 명령어입니다.
-- 한 테이블에 하나의 로우 데이터를 넣는 경우
INSERT INTO 테이블명 VALUES (값a, ... , 값b);
-- 한 테이블에 복수의 로우 데이터를 넣는 경우
INSERT INTO 테이블명 VALUES
(값a, ... , 값b),
(값a, ... , 값b);
-- 한 테이블에 선택값에 한정해 로우 데이터를 넣는 경우
INSERT INTO 테이블명
(칼럼명a, 칼럼명b) VALUES
(값a, 값b),
(값a, 값b);
SELECT 는 테이블에 담긴 로우 데이터를 조회하기 위한 명령어입니다.
-- 한 테이블의 모든 로우 데이터의 모든 칼럼을 조회할 경우
SELECT * FROM 테이블명;
-- 한 테이블의 모든 로우 데이터의 특정 칼럼을 조회할 경우
SELECT 칼럼명a, 칼럼명b FROM 테이블명;
조회 시에 추가적으로 사용할 수 있는 명령어로는 다음과 같은 것들이 있습니다.
명령어 | 용도 |
---|---|
FROM | 조회할 테이블 지정 |
WHERE | 조회하고자 하는 집합에 필터링 |
GROUP BY | 조회하고자 하는 정보를 그룹화 |
HAVING | 조회한 정보에서 조건을 확인 |
ORDER BY | 조회하고자 하는 집합을 정렬 |
START WITH | 계층 구조 전개의 시작 위치 선정 루트 데이터 지정 |
CONNECT [NOCYCLE][PRIOR] a AND b | 다음에 전개될 자식 테이블을 지정 1. PRIOR PK = FK 을 사용 시, 순방향 전개 2. PRIOR FK = PK 을 사용 시, 역방향 전개 3. NOCYCLE 추가 시, 사이클이 발생한 이후의 데이터는 전개하지 않음 |
자세한 내용은 SELECT 파트에서 다루도록 하겠습니다.
UPDATE 는 테이블에 담긴 로우 데이터를 수정하기 위한 명령어입니다.
-- 한 테이블의 모든 로우 데이터의 특정 칼럼을 수정할 경우
UPDATE 테이블명
SET 칼럼명 = 변경값;
-- 한 테이블의 특정한 로우 데이터의 특정 칼럼을 수정할 경우
UPDATE 테이블명
SET 칼럼명 = 변경값
WHERE 칼럼명 = 조건값;
DELETE 는 테이블에 담긴 로우 데이터를 삭제하기 위한 명령어입니다.
-- 한 테이블의 모든 로우 데이터의 특정 칼럼을 삭제할 경우
DELETE 테이블명;
-- 한 테이블의 특정한 로우 데이터의 특정 칼럼을 삭제할 경우
DELETE 테이블명
WHERE 칼럼명 = 조건값;