SQL

INSERT / UPDETE / DELETE

peach_h 2022. 10. 5. 00:49
◇  요약  ◇

INSERT INTO  COLUMN VALUES ( 데이터 ) ; : COLUMN에 데이터 추가
UPDATE 테이블  SET 수정할내용  WHERE 조건 : 조건에 해당하는 열의 내용을 수정한다
DELETE FROM 원하는 테이블 WHERE 조건; :조건에 해당하는 행 삭제
DELETE FROM 원하는 테이블; : 해당 테이블 전부 삭제

CREATE TABLE ~~~ AS SELECT :  CTAS 원하는 COLUMN만 골라서 테이블 만들 때

 

 

INSERT
DROP TABLE DISCOUNTS;

CREATE TABLE DISCOUNTS
    (DISCOUNT_ID NUMBER GENERATED BY DEFAULT AS IDENTITY,
    DISCOUNT_NAME VARCHAR2(255) NOT NULL,
    AMOUNT NUMBER(3, 1) NOT NULL,
    START_DATE DATE NOT NULL,
    EXPIRED_DATE DATE NOT NULL);

DROP TABLE로  DISCOUNTS 테이블을 삭제한 후, CREATE로 새로 생성한다.

 

INSERT INTO
    DISCOUNTS( DISCOUNT_NAME, AMOUNT, START_DATE, EXPIRED_DATE)
    VALUES('Summer Promotion', 9.5, DATE '2017-05-01', DATE '2017-08-31');
    
COMMIT;

INSERT INTO  COLUMN VALUES ( 데이터 ) ;

 

INSERT INTO로 새로운 데이터를 추가한다.

COMMIT을 해야지 실제로 INSERT에 추가한 내용이 데이터에 반영됨 !

 

SELECT * FROM DISCOUNTS;

추가한값이 제대로 들어간 것을 확인할 수 있다 !

 

 

 

 

UPDATE
CREATE TABLE PARTS
(
  PART_ID NUMBER GENERATED BY DEFAULT AS IDENTITY
, PART_NAME VARCHAR(50) NOT NULL
, LEAD_TIME NUMBER(2, 0) NOT NULL
, COST NUMBER(9, 2) NOT NULL
, STATUS NUMBER(1, 0) NOT NULL
, PRIMARY KEY (PART_ID)
);

PART 테이블 형성

INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('sed dictum',5,134,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('tristique neque',3,62,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('dolor quam,',16,82,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('nec, diam.',41,10,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('vitae erat',22,116,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('parturient montes,',32,169,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('metus. In',45,88,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('at, velit.',31,182,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('nonummy ultricies',7,146,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('a, dui.',38,116,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('arcu et',37,72,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('sapien. Cras',40,197,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('et malesuada',24,46,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('mauris id',4,153,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('eleifend egestas.',2,146,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('cursus. Nunc',9,194,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('vivamus sit',37,93,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('ac orci.',35,134,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('arcu. Aliquam',36,154,0);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('at auctor',32,56,1);
INSERT INTO PARTS (PART_NAME,LEAD_TIME,COST,STATUS) VALUES ('purus, accumsan',33,12,1);
COMMIT;

데이터를 INSERT 한 후, COMMIT 까지 완료

 

PART_ID = 1인 행의 COST를 130로 바꿔라
UPDATE PARTS
   SET COST = 130
 WHERE PART_ID = 1
;

COMMIT;

SELECT *
  FROM PARTS
 WHERE PART_ID = 1
 ;

#UPDATE 테이블  SET 수정할내용  WHERE 조건

 

UPDATE로 PART_ID = 1인 행의 COST를 130으로 바꾼다.

UPDATE PARTS
   SET LEAD_TIME = 30, COST = 120, STATUS = 1
 WHERE PART_ID = 5;

COMMIT;

SELECT *
  FROM PARTS
 WHERE PART_ID = 5;

PART_ID = 5인 행의 LEAD_TIME = 30, COST = 120, STATUS = 1로 바꾼모습.

 

 

PARTS의 COST에 1.05를 전부 곱해라
UPDATE PARTS
   SET COST = COST * 1.05;

COMMIT;

SELECT * FROM PARTS
	ORDER BY PART_ID;

 

 

 

DELETE : 삭제하기

# CREATE TABLE ~~~ AS SELECT :  CTAS 원하는 COLUMN만 골라서 테이블 만들 때 자주 씀 !!

CREATE TABLE SALES AS SELECT
       A.ORDER_ID, B.ITEM_ID, B.PRODUCT_ID, B.QUANTITY, B.UNIT_PRICE,
       A.STATUS, A.ORDER_DATE, A.SALESMAN_ID
    FROM ORDERS A, ORDER_ITEMS B
    WHERE A.ORDER_ID = B.ORDER_ID;
    
 SELECT * FROM SALES;

 

ORDERS 테이블을 A, ORDER_ITEMS 테이블을 B로 지정

A와 B에서 ORDER_ID가 같은 것들에서 COLUMN을 지정하여 SALES 테이블을 만든다.

 

DELETE FROM SALES
 WHERE ORDER_ID = 1
   AND ITEM_ID = 1;

COMMIT;

DELETE
  FROM SALES
 WHERE ORDER_ID = 1
;

SELECT * FROM SALES;

COMMIT;

ORDER_ID = 1이고 ITEM_ID = 1인 행이 모두 삭제된 것을 확인

 

DELETE FROM 원하는 테이블 WHERE 조건; :조건에 해당하는 행 삭제

DELETE FROM 원하는 테이블; : 해당 테이블 전부 삭제

 

 

 

'SQL' 카테고리의 다른 글

연습문제풀이  (0) 2022.10.05
서브 쿼리  (0) 2022.10.05
VIEW  (0) 2022.10.05
SELECT문 ( DUAL / ORDER BY / DISTINCT / WHERE )  (0) 2022.10.04
데이터베이스 개론 정리  (0) 2022.10.02