Whiteship's Note

Chapter 3: Modifying Data

DB/SQL : 2008.01.04 11:23


참조 : The Programmer's Guide to SQL

  • 새로운 값 추가하기
    • INSERT INTO 테이블 (컬럼들) VALUES (값들);
    • INTO는 MySQL에서는 생략가능 하지만, SQL-99 스팩이며 오라클에서는 필수다.
    • 컬럼명을 안 써도 되는 경우
      • RDBMS가 값을 반드시 자동 생성 해주는 경우. ex) 주키 컬럼
      • RDBMS가 갑을 자동으로 채워줄 수 있는 경우. ex) 기본값을 설정해둔 컬럼
      • 컬럼이 timestamp 타입임 경우. RDBMS가 알아서 현재 날짜와 시각을 넣어 줌.
      • NULL을 허용하는 컬럼.
    • 기본값으로 전부 채우기
      • INSERT INTO Author DEFAULT VALUES;
    • 여러 줄 한 번에 넣기
      • VALUES 대신에 SELECT 문 사용.
  • 수정하기
    • UPDATE 테이블 SET 컬럼 = 값, 컬럼 = 값 WHERE 조건;
    • 만약에 WHERE 절 빼면 해당 테이블의 모든 컬럼이 바뀌게 되니까 UPDATE 문 실행하기 전에 UPDATE를 SELECT로 바꿔서 변경 대상을 확인하는 것이 좋다.
  • 삭제하기
    • DELETE FROM 테이블 WHERE 조건;
      • FROM도 선택적인데 사용하는 것이 좋다.
      • 주키 컬럼을 조건절에 사용하는 것이 좀 더 안전하다. 유일한 컬럼을 지칭하니까.
    • TRUNCATE TABLE 테이블;
      • DELETE FROM과는 달리 삭제에 대한 로그를 남기지 않아서 좀 더 빠르다.
      • 대신 롤백이 불가능하다.
top

TAG ,
  1. Favicon of http://gerions.egloos.com BlogIcon 윤걸 2008.01.05 17:53 PERM. MOD/DEL REPLY

    delete 와 truncate 의 가장 큰 차이점은 index 의 공간을 사용하는지 여부에 있지용~
    delete 로 날렸을경우 삭제된 데이터의 index 영역은 그대로 남아있게되고
    truncate 는 테이블 자체의 데이터를 다 날려버린 초기화 상태라고 할까나?
    구래서 데이터가 많이 생기고 delete 가 많이 일어나게되면 index 영역이 커질 수 있게된다.
    그거이~ 시스템의 성능에 영향을 미칠 수 있기 땜시로, 가끔 index rebuild 를 해주는게지요~

    갑자기 db 에 삘~ 받았나 보구만..

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.01.05 22:42 PERM MOD/DEL

    우어.. 이런 고급정보까지.. 감사합니다.
    아직 인덱스까지도 못 갔는데 책 뒷부분에 나오겠죠.

    DB 재밌어요.

Write a comment.




: 1 : ··· : 9 : 10 : 11 : 12 : 13 : 14 : 15 :