본문 바로가기
SQLD

[SQL 기본과 활용] BASIC DML(INSERT, DELETE, UPDATE)

by orange_han 2021. 3. 26.

INSERT


 - 테이블에 한 건의 레코드를 추가함

 

*여러 건 입력시 INSERT ALL ~ 구문 활용
       - 문자 또는 날짜 값의 경우 작은 따옴표로 묶음

       - 숫자 데이터는 작은 따옴표 없이 사용

 

  • 두 가지 유형으로 입력 가능

INSERT INTO 테이블명 (COLUMN_LIST) VALUES (VALUE_LIST);

일부 칼럼에 대응되는 값만 입력

칼럼 순서는 실제 테이블의 칼럼 순서와 무관

정의하지 않은 칼럼은 NULL 값이 입력됨

ex)

INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME,...) VALUES ('29999001', '손흥민', ...);

INSERT INTO 테이블명 VALUES ( 전체 COLUMN의 VALUE_LIST);

전체 칼럼에 대응되는 값을 모두 입력

빈 값은 NULL 또는 작은 따옴표 둘('')로 입력*(공백없이)*

ex)

INSERT INTO PLAYER VALUES('2999002', '이승우', ...)

  • INSERT ALL
  • 동시에 여러 레코드를 추가하는 경우

테이블 생성 후 초기 데이터 일괄 업로드

기존 테이블의 레코드 조회 후 다른 테이블에 삽입

INSERT ALL 의 경우 반드시 SELECT문을 사용해야함

*새로운 값을 입력할 때는 DUAL테이블 사용 SELECT * FROM DUAL

ex)Table1에서 레코드를 반환하여 Table2, Table3에 분할 저장

INSERT ALL

INTO TABLE2 VALUES (ID, NAME)

INTO TABLE3 VALUES (ID, SALARY)

SELECT ID, NAME, SALARY FROM TABLE1;

*TABLE1에서 ID, NAME, SALARY를 뽑아서 그거를 TABLE2에 ID, NAME 넣고 TABLE3에 ID, SALARY를 넣어라

 

DELETE
      - 테이블에 존재하는 전체 레코드 삭제

      - DELETE 테이블명 / DELETE FROM 테이블명

ex) DELETE PLAYER; 또는 DELETE FROM PLAYER;
*일반적으로는 WHERE 절을 사용하여 특정 레코드를 삭제함

ex)

DELETE FROM STADIUM

WHERE STADIUM_ID = 'TP1';

'TP1이 삭제 됨

 

UPDATE
      - 테이블에 존재하는 전체 레코드의 값 변경

      - UPDATE 테이블명 SET 칼럼명 = 새로운 값

ex) PLAYER 테이블에서 모든 레코드의 POSITION을 'GK'로 변경

UPDATE PLAYER SET POSITION = 'GK';

  • 일반적으로는 WHERE 절을 사용하여 특정 레코드의 값을 변경함

ex)

UPDATE STADIUM SET STADIUM_NAME = '우리 경기장'

WHERE STADIUM_ID = 'D03';

 

 

 

  • UPDATE와 ROWNUM을 이용한 채번
  • 테이블 내의 UNIQUE한 일련번호를 생성하는 경우
  • Q) PLAYER 테이블에 ROW_ID라는 빈 열을 추가하고, ROWNUM의 값을 ROW_ID로 복사하시오.

ALTER TABLE PLAYER ADD (ROW_ID NUMBER);

UPDATE PLAYER SET ROW_ID = ROWNUM;

SELECT ROW_ID, PLAYER_NAME

FROM PLAYER

WHERE ROW_ID = 3;

*ROWNUM 에서는 등호르 쓸 수 없었는데, 칼럼으로 만들어서 등호를 사용할 수 있음!!

'SQLD' 카테고리의 다른 글

[SQL 기본과 활용] TCL/DCL  (0) 2021.04.02
[SQL 기본과 활용] Function  (0) 2021.03.29
[SQL 기본과 활용] DDL  (0) 2021.03.29
[SQL 기본과 활용] BASIC DML(SELECT)  (0) 2021.03.23
[SQL 기본과 활용] 개요  (0) 2021.03.23

댓글