DML (=Data Manipulation Language)
Database/MySQL

DML (=Data Manipulation Language)

참고 : 데이터리안님의 [백문이불여일타] 데이터 분석을 위한 고급 SQL 강의를 수강하고 복습을 위해 간단히 정리한 글입니다.

 

DML : Data Manipulation Language (데이터 조작어)

1. INSERT (데이터 추가)

2. UPDATE (데이터 업데이트, 수정)

3. DELETE (데이터 삭제)

4. SELECT (데이터 조회, 검색)

 

INSERT

1. 테이블 전체에 데이터 추가하기 (컬럼 순서대로 입력)

INSERT INTO 테이블명 VALUES (VALUE_1, VALUE_2, ... , VALUE_K, ... ,VALUE_N);

 

2. 특정 컬럼들을 선택하여 데이터 추가하기 (선택되지 않은 컬럼은 Default 값이 저장된다)

INSERT INTO 테이블명 (COLUMN_LIST) VALUES (VALUE_LIST);

 

 

UPDATE

1. 컬럼 전체에 데이터 업데이트
(SET에 있는 '=' 연산자는 비교 연산자가 아니라, 대입 연산자의 의미로 사용된다) 

UPDATE 테이블명 SET 컬럼 = 값;

ex) UPDATE STUDENT SET GRADE = GRADE + 1;

 

2. 특정 행만 업데이트

UPDATE 테이블명 SET 컬럼 = 값 WHERE 조건식;

ex) UPDATE STUDENT SET GRADE = GRADE + 1 WHERE STUDENT_ID = 1;

 

3. UPDATE 쿼리 문제 (LeetCode)

[LeetCode] 627. Swap Salary

 

Swap Salary - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

UPDATE Salary
SET sex = CASE
              WHEN sex = 'f' THEN 'm'
              ELSE 'f' END;

 

DELETE

1. 테이블 전체 데이터 삭제

DELETE FROM 테이블명;

 

2. 특정 행 데이터 삭제

DELETE FROM 테이블명 WHERE 조건식;

 

3. DELETE 쿼리 문제 (LeetCode)

[LeetCode] 196. Delete Duplicate Emails

 

Delete Duplicate Emails - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

3.1) 서브쿼리

DELETE
FROM Person
WHERE Id NOT IN (SELECT A.Min_Id FROM (SELECT MIN(Id) AS Min_Id FROM Person GROUP BY Email) AS A);

 

3.2) 아래 쿼리는 MySQL에서 정상적으로 실행될 수 없다. 원인은 여기서 확인 -> (stackoverflow)

DELETE
FROM Person
WHERE id NOT IN (SELECT MIN(id) FROM Person GROUP BY email);

 

3.3) MySQL DELETE JOIN (DELETE JOIN 관련 내용 확인)

DELETE P1
FROM Person P1
         INNER JOIN Person P2 ON P1.Email = P2.Email
WHERE P1.Id > P2.Id;

'Database > MySQL' 카테고리의 다른 글

MySQL DELETE JOIN 사용법  (0) 2021.07.18