일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Spring
- I/O
- ABSOLUTE
- call by refelrence
- SQL
- UTF-8
- transform
- 스마트에디터
- method
- transition
- box-sizing
- 산업기사
- static
- fixed
- text-shadow
- position
- datasourceexplorer
- where
- relative
- codepage
- 정보처리
- 정보처리기사
- MySQL
- STREAM
- 이미지확대
- Encoding
- 정보처리 산업기사
- 기사
- call by value
- Today
- Total
a battle with myself
[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 문을 사용하는것이 좋다고 한다.
이렇게 하면 결과는 동일하지만 데이터 변화를 기록하지 않기 때문에 속도가 빠르다나...
'sql' 카테고리의 다른 글
[ANSI SQL] 6. 데이터 필터링(WHERE/BETWEEN AND/IS NULL) 조건부 연산자 (0) | 2016.08.11 |
---|---|
[ANSI SQL] 5. 데이터 가져오기/데이터 정렬(SELECT FROM/ORDER BY) (0) | 2016.08.10 |
[ANSI SQL] 4. 테이블 생성과 제어(CREATE/ALTER/DROP/SYSTEM DATE) (0) | 2016.08.09 |
[ANSI SQL] 2. 데이터 삽입 (INSERT/INSERT SELECT/ SELECT INTO) (0) | 2016.08.03 |
[ANSI SQL] 1. SQL의 이해 (0) | 2016.08.02 |