공부기록/DB

DB (테이블생성,추가,제거,제약조건 생성FILE)

보더96 2023. 6. 16. 17:44

밑으로 내려가면서 순서대로 설정!

 

CREATE TABLE product(
prod_no VARCHAR2(5),
prod_name VARCHAR2(20) 
);
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ테이블 생성ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


DROP TABLE product;


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ테이블 제거ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
ALTER TABLE product
ADD prod_price NUMBER(6);
ㅡㅡㅡㅡPRICE NUMBER 6자ㅡㅡㅡㅡ


ALTER TABLE product
MODIFY prod_price DEFAULT 0;

ㅡㅡㅡㅡprice에 가격을 넣지 않으면 0값으로 넣어진다ㅡㅡㅡㅡ


ALTER TABLE product
MODIFY prod_name VARCHAR2(100);

ㅡㅡㅡㅡname 바이트를 100바이트로 설정ㅡㅡㅡㅡ

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ테이블 조건 변경ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


INSERT INTO product(prod_no, prod_name) VALUES(  'C0001'   , '아메리카노'   );
INSERT INTO product(prod_no, prod_name) VALUES(  'C0002'   , '라떼'   );
INSERT INTO product(prod_no, prod_name) VALUES(  'C0003'   , '핫초코'   );
INSERT INTO product(prod_no, prod_name) VALUES(  'C0004'   , '아이스딸기아사이'   );
INSERT INTO product VALUES ( 'F0001' , '치즈케이크' , 1000);
INSERT INTO product VALUES ( 'F0002' , '치즈베이글' , NULL);
INSERT INTO product VALUES ( 'F0003' , '치킨샌드위치' , '');
SELECT * FROM product;
ㅡㅡㅡㅡㅡㅡㅡㅡ위 자료가 product 테이블에 들어감!ㅡㅡㅡㅡㅡㅡㅡ


INSERT INTO product VALUES ( 'F0004' , '밀박스' );   --  (X) price가 안적혀있어서

INSERT INTO product VALUES(  'C0001'   , '다른상품' , 0  ); 
INSERT INTO product VALUES(  ''   , '번호없는상품1' , 0  );
INSERT INTO product VALUES(  ''   , '번호없는상품2' , 0  );

ㅡㅡㅡㅡㅡ빈문자열은 작은따음표 안에 아무것도 없어야한다ㅡㅡㅡㅡㅡ

DELETE product WHERE TRIM(prod_no) IS NULL;   --상품번호가 NULL인애들 삭제
DELETE product WHERE prod_name = '다른상품';  --이름이 다른상품인 애들 삭제

ㅡㅡㅡ위에 제약조건을 안넣어서 prod_no 안들어간애들 삭제ㅡㅡㅡ


ALTER TABLE product
ADD CONSTRAINTS prod_no_pk PRIMARY KEY(prod_no);

ㅡㅡㅡㅡprod_no가 안들어간 애들은 추가 못하게 제약조건 설정ㅡㅡㅡㅡ

INSERT INTO product VALUES(  'C0001'   , '다른상품' , 0  ); 
INSERT INTO product VALUES(  ''   , '번호없는상품1' , 0  );
INSERT INTO product VALUES(  ''   , '번호없는상품2' , 0  );

ㅡㅡㅡㅡㅡㅡ제약조건을 추가해서 위 3줄은 안들어가진다ㅡㅡㅡㅡㅡㅡ 

INSERT INTO product(prod_no, prod_name) VALUES ( 'D0001' , '라임블렌디드');

ㅡㅡㅡprod_no 에서 price가 없으면 못들어가게 제약조건이 있어 추가안됨ㅡㅡㅡ


INSERT INTO product(prod_no, prod_name) VALUES ( 'D0002' , NULL );

ㅡㅡㅡㅡㅡㅡㅡㅡ제약조건을 안넣어서 NULL값이 들어가진다ㅡㅡㅡㅡㅡㅡㅡ


DELETE product WHERE prod_name IS NULL;
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ이름이 NULL인 애들 삭제ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


ALTER TABLE product
MODIFY prod_name CONSTRAINTS prod_name_nn NOT NULL;
INSERT INTO product(prod_no, prod_name) VALUES ( 'D0002' , NULL );
ㅡㅡㅡㅡㅡㅡㅡ이름에 NULL값이 못들어가게 제약조건 설정!ㅡㅡㅡㅡㅡㅡㅡ

 

DELETE product WHERE prod_name IS NULL;

ㅡㅡㅡㅡㅡㅡNULL이란 이름을 가진 데이터 삭제ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

UPDATE product SET prod_name=prod_name||'음료' , prod_price=3000 WHERE prod_no LIKE 'D%';

ㅡㅡㅡㅡㅡㅡㅡㅡㅡ기존 상품이름 뒤에 "음료"라는 문자를 대입ㅡㅡㅡㅡㅡㅡㅡㅡㅡ

SELECT * FROM product;

 

완성!