-
[DML]INSERT,UPDATE,DELETESQLD/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