ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DML]INSERT,UPDATE,DELETE
    SQLD/SQL 2023. 8. 29. 13:59

    1.INSERT

    • 테이블에 데이터를 삽입한다.
    • INSERT는 컬럼명을 명시하여 삽입하거나 명시하지 않고 삽입하는 두 가지 유형으로 나뉜다.

    1)데이터 삽입하는 방법

    1️⃣컬럼명을 명시하고 INSERT

    INSERT INTO 테이블명(컬럼명1,컬럼명2) VALUES(데이터1,데이터2);
    
    INSERT INTO USER(ID,EMAIL,NAME) VALUES(1,'bcde@naver.com','김길똥')
    ID EMAIL NAME AGE
    1 bcde@naver.com 김길똥 NULL
    • 원하는 컬럼에만 값을 입력한다.
    • 지정한 컬럼명과 입력되어야하는 값을 서로 1:1로 매핑해서 입력하면 된다.
    • 데이터 유형이 문자형이라면 '로 입력하고 숫자형은 그대로 입력한다.
    • 컬럼의 순서는 테이블의 컬럼 순서와 같을 필요는 없으며, 정의하지 않은 컬럼의 값은 DEFAULT로 NULL값이 된다.
    • 컬럼이 PK나 NOT NULL제약조건이 있는경우 반드시 값을 입력해야한다.

    2️⃣컬럼명을 명시하지 않고 INSERT

    INSERT INTO 테이블명 VALUES(전체 컬럼 수에 맞는 데이터);
    
    INSERT INTO USER VALUES(1,'abcd@naver.com','홍길동',23)
    ID EMAIL NAME AGE
    1 abcd@naver.com 홍길동 23
    • 모든 컬럼에 데이터를 넣는다.
    • 컬럼의 순서에 맞게 데이터 값을 입력해야한다.

    2)오라클과 SQL Server에서 공백의 차이

    INSERT INTO 테이블명 VALUES('001','','2023-08-29');

    오라클에서는 공백('')이 NULL값으로 입력이 된다.

    *단, 공백이 한칸(' ')이라도 있으면 NULL이 아니라 공백이 들어간 값이 된다.

    SQL Server에서는 공백('')이 공백 문자열로 입력이 된다.

     

     

    2.UPDATE

    UPDATE 테이블명 SET 컬럼명 = 새로운 데이터 WHERE 조건
    • 이미 저장된 데이터를 수정하기 위한 명령어
    • 수정해야할 컬럼이 많다면 SET절에 이어서 명시할 수 있다.
    • WHERE절이 없으면 모든 ROW가 변경되므로 주의

     

    3.DELETE

    DELETE FROM 테이블명 WHERE 조건
    • 이미 저장된 데이터를 삭제할때 사용하는 명령어
    • WHERE절이 없다면 모든 ROW가 삭제되므로 주의
    • 로그를 남기므로 ROLLBACK이 가능하다.

    1)DELETE와 TRUNCATE의 비교

    TRUNCATE DELETE
    DDL DML
    ROLLBACK 불가능 COMMIT이전으로 ROLLBACK 가능
    테이블의 컬럼은 남기고 모든 행을 제거한다. 
    로그를 남기지 않으므로 DELETE보다 효율적이다.
    WHERE절 없이 사용 시 TRUNCATE와 동일한 동작한다.
    로그를 남기므로 롤백(undo)가 가능하다.

     

    'SQLD > SQL' 카테고리의 다른 글

    [DML]SELECT-서브쿼리  (0) 2023.09.07
    [DML]SELECT-연산자  (0) 2023.08.30
    [DML]SELECT구문  (0) 2023.08.29
    [DDL]ALTER,DROP,TRUNCATE,RENAME  (0) 2023.08.29
    [DDL]CREATE  (0) 2023.08.28
Designed by Tistory.