[ANSI SQL] 3. 데이터 수정(UPDATE) / 삭제(DELETE)
데이터 수정 / 변경(UPDATE)
- 테이블의 특정한 행을 수정/변경(update)
- 테이블의 모든 행을 수정/변경(update)
기본 형식
- 업데이트 할 테이블
- 열 이름과 새값
- 수정/변경(update) 할 행을 결정 짓는 필터 조건
* 예시 : Temp_Table
Temp_Table 의 field1 의 값을 유일 값인 기본키로 하고 data2-3 의 값을 변경해보자.
field1 | field2 | field3 | field4 |
data1 | data1-2 | data1-3 | data1-4 |
data2 | data2-2 | data2-3 | data2-4 |
data3 | data3-2 | data3-3 | data3-4 |
UPDATE Temp_Table SET field3='변경된 값' WHERE field1 = 'data2';
해석 해보자면 Temp_Table 의 field1의 값이 'data2' 인 행의 field3의 값을 '변경된 값'으로 수정 해라.
실행 후 table 검색 결과
SELECT * FROM Temp_Table ;
field1 | field2 | field3 | field4 |
data1 | data1-2 | data1-3 | data1-4 |
data2 | data2-2 | 변경된 값 | data2-4 |
data3 | data3-2 | data3-3 | data3-4 |
--------------------------------------------------------------------------------------------------------------------
*주의 : 만약 해당 구문에서 WHERE 문이 없다면 table 의 field3 열의 모든 데이터가 '변경된 값' 으로 수정 될 것이다.
UPDATE Temp_Table SET field3='변경된 값';
실행 후 table 검색 결과
SELECT * FROM Temp_Table ;
field1 | field2 | field3 | field4 |
data1 | data1-2 | 변경된 값 | data1-4 |
data2 | data2-2 | 변경된 값 | data2-4 |
data3 | data3-2 | 변경된 값 | data3-4 |
--------------------------------------------------------------------------------------------------------------------
동시에 여러 구문을 업데이트 할수 도 있다.
UPDATE Temp_Table SET field3='수정1', field4='수정2' WHERE field1 = 'data2';
해석 해보자면 Temp_Table 의 field1의 값이 'data3' 인 행의 field3의 값을 '수정1'로 field4의 값을 '수정2'로 변경 해라.
실행 후 table 검색 결과
SELECT * FROM Temp_Table ;
field1 | field2 | field3 | field4 |
data1 | data1-2 | 변경된 값 | data1-4 |
data2 | data2-2 | 변경된 값 | data2-4 |
data3 | data3-2 | 수정1 | 수정2 |
이러한 형식으로 여러 열(field)의 값을 수정 할 수 있다.
----------------------------------------------------------------------------------------------------------------------
데이터 삭제(DELETE)
- 테이블에서 특정한 행을 삭제
- 테이블에서 전체 행을 삭제
DELETE 문은 열 이름이나 * 와 같은 문자를 사용할 수 없으며 열이 아닌 전체 행을 삭제 한다.
특정한 열을 삭제하기 위해서는 UPDATE 문을 사용해서 NULL(NULL이 인정되는)로 설정해 주어야한다.
DELETE FROM Temp_Table WHERE field1='data2';
해석 해보자면 Temp_Table 의 field1의 값이 'data2' 인 행을 삭제하라.
실행 후 table 검색 결과
SELECT * FROM Temp_Table ;
field1 | field2 | field3 | field4 |
data1 | data1-2 | 변경된 값 | data1-4 |
data3 | data3-2 | 수정1 | 수정2 |
field1의 값이 data2 인 행이 삭제 되었다.
---------------------------------------------------------------------------------------
WHERE 조건문이 없을 경우에는 Temp_Table 의 모든 행이 삭제된다.
DELETE FROM Temp_Table ;
해석 해보자면 Temp_Table 의 모든 행을 삭제하라.
실행 후 table 검색 결과
SELECT * FROM Temp_Table ;
field1 | field2 | field3 | field4 |
Temp_Table 의 모든 data가 삭제되었지만 table의 껍데기는 남아있다.
table 자체를 삭제 하기 위해서는 DROP TABLE을 사용해야 한다. 다음....
* 참고 : 테이블의 모든 행을 삭제 하기 위해서는 TRUMCATE TABLE 문을 사용하는것이 좋다고 한다.
이렇게 하면 결과는 동일하지만 데이터 변화를 기록하지 않기 때문에 속도가 빠르다나...
출처: https://inforyou.tistory.com/23?category=710791 [a battle with myself]
'Database > ANSI SQL' 카테고리의 다른 글
JOIN 종류 (ANSI방식 JOIN) (0) | 2020.01.02 |
---|---|
[SQL] ANSI Join (0) | 2020.01.02 |
[ANSI SQL] 7. WHERE 절의 조합(AND / OR / NOT / IN) (0) | 2020.01.02 |
[ANSI SQL] 6. 데이터 필터링(WHERE/BETWEEN AND/IS NULL) 조건부 연산자 (0) | 2020.01.02 |
[ANSI SQL] 5. 데이터 가져오기/데이터 정렬(SELECT FROM/ORDER BY) (0) | 2020.01.02 |
[ANSI SQL] 4. 테이블 생성과 제어(CREATE/ALTER/DROP/SYSTEM DATE) (0) | 2020.01.02 |
[ANSI SQL] 2. 데이터 삽입 (INSERT/INSERT SELECT/ SELECT INTO) (0) | 2020.01.02 |
[ANSI SQL] 1. SQL의 이해 (0) | 2020.01.02 |