DML은 Data Manipulation Language의 약자로 데이터를 조작하는 쿼리문들을 뜻함.
INSERT, UPDATE, DELETE
문이 대표적 쿼리문이다.
INSERT
는 데이터를 테이블에 추가하는 작업.
UPDATE
는 이미 테이블에 존재하는 데이터를 수정하는 작업.
DELETE
는 데이터를 테이블에서 삭제하는 작업.
데이터 추가 명령어
INSERT INTO tbl_name (col_name, col_name) VALUES (value, value)
이다.mysql> insert into users (email, nickname, password, profile_image)
VALUES
('codeKim@justcode.co.kr','codeKim','c0Dek!m','http://profile_image_1.jpeg'),
('codeLee@justcode.co.kr','codeLee','C0dEL22','http://profile_image_2.jpeg'),
('codePark@justcode.co.kr','codePark','P@rkCOdE!','http://profile_image_3.jpeg'),
('codeChoi@justcode.co.kr','codeChoi','ChoiCodDE','http://profile_image_4.jpeg');
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0
이렇게 네명의 유저를 추가해보았다.
그리고 나서 users 테이블에 잘 추가가 되었는지 확인해보자
SELECT * FROM users
mysql> select * from users;
+----+-------------------------+----------+-----------+-----------------------------+---------------------+
| id | email | nickname | password | profile_image | created_at |
+----+-------------------------+----------+-----------+-----------------------------+---------------------+
| 1 | codeKim@justcode.co.kr | codeKim | c0Dek!m | http://profile_image_1.jpeg | 2022-08-15 10:27:14 |
| 2 | codeLee@justcode.co.kr | codeLee | C0dEL22 | http://profile_image_2.jpeg | 2022-08-15 10:27:14 |
| 3 | codePark@justcode.co.kr | codePark | P@rkCOdE! | http://profile_image_3.jpeg | 2022-08-15 10:27:14 |
| 4 | codeChoi@justcode.co.kr | codeChoi | ChoiCodDE | http://profile_image_4.jpeg | 2022-08-15 10:27:14 |
+----+-------------------------+----------+-----------+-----------------------------+---------------------+
4 rows in set (0.00 sec)
추가가 잘 되었다. select는 조회하는 명령어고 *은 모든 칼럼을 조회하겠다는 의미이다.
위와 같은 방식으로 모든 테이블에 데이터들을 추가해주었다.
데이터 수정 명령어
UPDATE table_reference SET column='' [WHERE where_condition]
UPDATE
명령에서는 SET column=''
을 사용해 변경하고자 하는 열과 값을 지정합니다.
이때의 = 은 대입연산자다.
갱신해야할 열이 복수인 경우 column='value',column='value'
으로 지정할 수 있다.
where은 앞의 포스팅에서도 언급했다시피 프로그래밍 언어의 if 역할을 한다고 보면 된다.
예시를 들어 UPDATE명령어를 이해해보자
만일 postings 테이블에서 id가 1번user이고 posting id가 3번인
content를 '정말 좋은 하루였어!!!'로 바꾸고 싶다면
mysql> UPDATE posts SET content='정말 좋은 하루였어!!!' WHERE user_id=1 AND id=3;
이런 식으로 사용하면 된다.
데이터 삭제 명령어
DELETE FROM tbl_name [WHERE where_condition
DELETE
명령은 하나의 테이블에 대해 한 건 또는 여러 건의 행(row) 자체를 삭제한다.
데이터의 한개의 열'column'을 수정해야 한다면 UPDATE 명령어를 쓰면 될것이다.
예시를 들어 DELETE 명령어를 이해해보자
만일 user id가 2번인 사용자의 게시물 전체를 삭제해달라는 요청을 받았다고 가정한다면
mysql> DELETE FROM posts WHERE user_id = 2;
이런 식으로 명령어를 사용하면 된다.