1. UPDATE ''(공백), NULL 이후 SELECT 하기


1
2
3
4
5
6
/* 테스트 테이블 생성 */
CREATE TABLE TEST_TABLE1 AS(
    SELECT 1 E_ID, '조현영' E_NAME FROM DUAL UNION ALL
    SELECT 2 E_ID, '이상현' E_NAME FROM DUAL UNION ALL
    SELECT 3 E_ID, '김지숙' E_NAME FROM DUAL 
);
cs


1
2
3
/* 조회하기 */
SELECT * 
  FROM TEST_TABLE1;
cs




1
2
3
4
/* E_NAME을 공백으로 업데이트 한다. */
UPDATE TEST_TABLE1
   SET E_NAME = ''
 WHERE E_ID = 1;
cs


1
2
3
4
/* E_NAME을 공백으로 업데이트 한 내용을 SELECT한다. */
SELECT * 
  FROM TEST_TABLE1
 WHERE E_NAME = '';
cs




결과가 나오지 않는다.


본인은 E_NAME을 공백으로 UPDATE를 완료하고 

E_NAME에는 공백의 데이터가 들어갈 것이라 예상했지만 

공백으로 조회했을때 데이터가 조회되지 않는다.


1
2
3
4
/*결과가 나온다. */
SELECT * 
  FROM TEST_TABLE1
 WHERE E_NAME IS NULL;
cs


하지만 IS NULL로 SELECT를 하면 데이터가 조회된다.



이 결과를 통해 NULL, 공백('') 모두 NULL로 업데이트 치는 것을 확인했다.


1
2
3
4
5
6
7
8
9
/* E_NAME을 공백으로 업데이트 한다. */
UPDATE TEST_TABLE1
   SET E_NAME = ''
 WHERE E_ID = 1;
 
/* E_NAME은 NULL로 업데이트 된다. */
UPDATE TEST_TABLE1
   SET E_NAME = NULL
 WHERE E_ID = 1;
cs


Mybatis를 사용한다면 param값의 유무에 따라 null과 공백을 같이 체크하는 경우를

다음과 같이 볼 수 있다. 


1
2
<if test='custNo != null and custNo != ""'>
</if>
cs


본인은 쿼리에서도 공백으로 데이터를 넣으면 공백으로 업데이트 되는 줄 알았던 것이다.




2. 테이블 컬럼 데이터 쉽게 UPDATE 하는 방법 


일반적인 UPDATE 문이다.

1
2
3
UPDATE TEST_TABLE1
   SET E_NAME = ''
 WHERE E_ID = 1;
cs


UPDATE 하기전 UPDATE할 데이터를 미리 SELECT 하고 데이터를 확인해

조건을 걸어 작업 하는 경우가 많은데 2단계의 과정 대신

SELECT 해서 바로 컬럼으로 접근해 고칠수 있는 방법이 있다.


1
2
3
4
5
6
7
 EDIT [테이블명] 
 WHERE [컬럼] = [조건]
 ;
 
 SELECT A.*, ROWID
   FROM [테이블명] alias A
 ;
cs


위 구문을 사용하면 SELECT하고 해당 컬럼 데이터에 마우스 더블클릭으로 데이터를 조작하여 업데이트 할 수 있다.






+ Recent posts