본문 바로가기

worklog/DB

SQL INSERT / UPDATE / DELETE

SQLITE 를 이용하여 쿼리문을 테스트하였으니 참고하시기 바랍니다. 
*테스트 테이블 TBL_USER 정보

1
2
3
4
5
6
7
CREATE TABLE `TBL_USER` (
    `FLD_ID`    TEXT NOT NULL,
    `FLD_PW`    TEXT NOT NULL,
    `FLD_NAME`    TEXT NOT NULL,
    `FLD_ADDRESS`    TEXT NOT NULL,
    PRIMARY KEY(`FLD_ID`)
);
cs



  • INSERT
    1. INSERT INTO {0}({1}) VALUES({2});
      e.g.
          
      1
      INSERT INTO TBL_USER (FLD_ID, FLD_PW, FLD_NAME, FLD_ADDRESS) VALUES('ID''PW''NAME''ADDRESS');
      cs

        

    2. INSERT INTO {0} VALUES({2});
      e.g. 
          
      1
      INSERT INTO TBL_USER VALUES('ID''PW''NAME''ADDRESS');
      cs
    3. INSERT INTO {0}({1}) SELECT {2} WHERE NOT EXISTS(SELECT 1 FROM {0} WHERE {3});
      e.g.
          
      1
      2
      3
      4
      5
      6
      7
          INSERT INTO TBL_USER (FLD_ID, FLD_PW, FLD_NAME, FLD_ADDRESS) 
          SELECT 'ID''PW''NAME''ADDRESS'
          WHERE NOT EXISTS (
             SELECT 1
             FROM TBL_USER
             WHERE FLD_ID='ID' AND  FLD_PW='PW' AND FLD_NAME='NAME' AND FLD_ADDRESS='ADDRESS' );
       
      cs
    4. IF NOT EXISTS (SELECT 1 FROM {0} WHERE {3}) BEGIN INSERT INTO {0} ({1}) VALUES ({2}) END;  
                                                                     SQLITE에는 IF-THEN-ELSE가 없음
      e.g.
          
      1
      2
      3
      4
      5
      6
      7
      8
      IF NOT EXISTS
              (   SELECT 1
                  FROM TBL_USER
                  WHERE  FLD_ID='ID' AND  FLD_PW='PW' AND FLD_NAME='NAME' AND FLD_ADDRESS='ADDRESS'
              )
          BEGIN
              INSERT INTO TBL_USER (FLD_ID, FLD_PW, FLD_NAME, FLD_ADDRESS) VALUES('ID''PW''NAME''ADDRESS')
          END;
      cs
      • {0} : 테이블 이름.
      • {1} : 필드 이름(s). 복수의 경우 콤마(,)를 통하여 구분. 
      • {2} : 필드에 해당하는 값(s). 복수의 경우 콤마(,)를 통하여 구분. Text 타입의 경우, 값을 따옴표(')로 감싸준다
      • {3} : INSERT 대상 정보가 이미 해당 테이블에 존재하는지 확인하는 조건

  • UPDATE
    1. UPDATE {0} SET {1} WHERE {2};
      e.g. 
      1
          UPDATE TBL_USER SET FLD_PW='UPDATED PW', FLD_ADDRESS='UPDATED ADDRESS' WHERE FLD_ID='ID';
      cs
      • {0} : 테이블 이름
      • {1} : 업데이트 내용. 복수의 경우 콤마(,)를 통하여 구분. 
      • {2} : 업데이트 대상을 찾는 조건문. 

  • DELETE
    1. DELETE FROM {0} WHERE {1};
      e.g. 
      1
          DELETE FROM TBL_USER WHERE FLD_ID='ID';
      cs
      • {0} : 테이블 이름
      • {1} : 삭제 대상을 찾는 조건문.