DML은 Data Manipulation Language의 약자로 데이터에 있는 내용을 삽입, 수정, 삭제할 수 있는 언어를 의미한다.
없던 데이터를 생성하고 싶을 때
아래와 같이 텅 빈 Salary 테이블이 있었다면
Id | Name | Salary | Date
----+-------+---------+--------
| | |
아래와 같이 데이터를 추가할 수 있다.
INSERT INTO Salary VALUES ('1', 'A', '250', '2020-03-31');
-- 즉 INSERT INTO 테이블명 VALUES (VALUE_LIST);
그럼 이렇게 데이터가 들어간다.
Id | Name | Salary | Date
----+-------+---------+--------
1 | A | 250 | 2020-03-31
Id | Name | Salary | Date
----+-------+---------+--------
1 | A | 250 | 2020-03-31
만일 위 테이블에서 Id와 Salary라는 테이블에만 새로운 값을 추가하고 싶다면
INSERT INTO 테이블명 (Id, Salary) VALUES ('2', '550');
-- 즉 INSERT INTO 테이블명 (COLUMN_LIST) VALUES (VALUE_LIST);
이와 같이 쿼리를 작성하면 언급된 컬럼 리스트 순서대로 VALUE를 넣어준다. 그 결과는 아래와 같다.
Id | Name | Salary | Date
----+-------+---------+--------
1 | A | 250 | 2020-03-31
2 | Null | 550 | Null
원래 있던 데이터를 수정하고 싶을 때
Id | Name | Salary
----+-------+---------+--------
1 | A | 250
2 | B | 550
위와 같은 테이블의 Salary를 100씩 올려주고 싶다면 이렇게 하면 된다.
UPDATE Salary SET Salary = Salary + 100
-- 즉 UPDATE 테이블명 SET 컬럼 - 값;
*주의할 점: SET에서의 =는 대입연산자이다. 비교연산자는 좌변과 우변의 크기를 비교한다면, 대입연산자는 우변에 있는 값을 좌변의 값에 대입을 하는 형태이다.
이렇게 업데이트 된다.
Id | Name | Salary
----+-------+---------+--------
1 | A | 350
2 | B | 650
이때는 WHERE 절을 사용한다.
Id | Name | Salary
----+-------+---------+--------
1 | A | 250
2 | B | 550
위 테이블에서 Id가 2인 사람의 Salary만 100 올려주고 싶다면(나였으면..) 이렇게 하면 된다.
UPDATE Salary SET Salary = Salary + 100 WHERE Id = 2;
-- 즉 UPDATE 테이블명 SET 컬럼 - 값 WHERE 조건식;
그럼 아래와 같이 부분 업데이트가 되는 것을 볼 수 있다.
Id | Name | Salary
----+-------+---------+--------
1 | A | 250
2 | B | 650
업데이트와 비슷하게 생각하면 된다.
Id | Name | Salary
----+-------+---------+--------
1 | A | 250
2 | B | 550
여기 전체 데이터를 없애고 싶다면
DELETE FROM Salary;
-- 즉 DELETE FROM 테이블명;
결과는 요렇게
Id | Name | Salary
-------------------------------
Id | Name | Salary
----+-------+---------+--------
1 | A | 250
2 | B | 550
여기서 Id 2의 데이터만 없애고 싶다면
DELETE FROM Salary WHERE Id = 2;
-- 즉 DELETE FROM 테이블명 WHERE 조건식;
결과는 요렇게 된다.
Id | Name | Salary
----+-------+------------------