[TIL] SQL DML (INSERT, UPDATE, DELETE)

오수희·2021년 1월 18일
1

SQL

목록 보기
9/10
post-thumbnail

DML은 Data Manipulation Language의 약자로 데이터에 있는 내용을 삽입, 수정, 삭제할 수 있는 언어를 의미한다.

INSERT

없던 데이터를 생성하고 싶을 때

1. 테이블 전체에 데이터 추가하기

아래와 같이 텅 빈 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

2. 특정 컬럼에만 값을 저장하기

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

UPDATE

원래 있던 데이터를 수정하고 싶을 때

1. 테이블 전체에 데이터 업데이트하기

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

2. 특정 컬럼의 특정 행만 업데이트하기

이때는 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

DELETE

업데이트와 비슷하게 생각하면 된다.

1. 테이블 전체에 데이터 삭제하기

Id  | Name  | Salary
----+-------+---------+--------
1   | A     | 250
2   | B     | 550

여기 전체 데이터를 없애고 싶다면

DELETE FROM Salary;

-- 즉 DELETE FROM 테이블명;

결과는 요렇게

Id  | Name  | Salary
-------------------------------

2. 특정 행만 삭제하기

Id  | Name  | Salary
----+-------+---------+--------
1   | A     | 250
2   | B     | 550

여기서 Id 2의 데이터만 없애고 싶다면

DELETE FROM Salary WHERE Id = 2;

-- 즉 DELETE FROM 테이블명 WHERE 조건식;

결과는 요렇게 된다.

Id  | Name  | Salary
----+-------+------------------
profile
프로덕트 마케터인데 이제 데이터를 좀 곁들인.

0개의 댓글