SQLD 특강 2일차

LSH·2023년 8월 22일
0

교육 정보

  • 교육 명: 경기미래기술학교 AI 교육
  • 교육 기간: 2023.05.08 ~ 2023.10.31
  • 오늘의 커리큘럼:
    SQLD 특강 (8/21 ~ 8/25)
  • 강사: 조미정 강사님
  • 강의 계획:
    1. SQLD 특강

CREATE

  • CREATE TABLE
CREATE	TABLE	JOBS_TEMP 
(
	JOB_ID		VARCHAR2(10)	PRIMARY KEY,
	JOB_TITLE	VARCHAR2(35)	NOT NULL,
	SALRARY		NUMERIC(6,0)
);
  • CREATE TABLE 제약 조건 설정(3가지 방법)
CREATE TABLE TEST
(
	TEST_ID VARCHAR2(10) PRIMARY KEY,
    TEST_TITLE VARCHAR2(35) NOT NULL
);

CREATE TABLE TEST
(
	TEST_ID VARCHAR2(10) CONSTRAINT TEST_PK PRIMARY KEY,
    TEST_TITLE VARCHAR2(35) CONSTRAINT TEST_NN NOT NULL,
    TEST_NAME VARCHAR2(35) CONSTRAINT TEST_FK REFERENCES TEST2(TEST_NAME)    
);

CREATE TABLE TEST
(
	TEST_ID VARCHAR2(10),
    TEST_TITLE VARCHAR2(35), 
    TEST_NAME VARCHAR2(35), 
    CONSTRAINT TEST_PK PRIMARY KEY (TEST_ID),
    CONSTRAINT TEST_NN CHECK (LENGTH(NAME) > 2),
    CONSTRAINT TEST_FK FOREIGN KEY (TEST_NAME) REFERENCES TEST2(TEST_NAME),
);
  • CHECK CONSTRAINT
SELECT % FROM USER_CONSTRAINTS WHERE TABLE_NAME IN ('TEST', 'TEST2');
  • CREATE TABLE FROM EXISTING TABLE
CREATE TABLE TEST3
AS SELECT * FROM TEST;

ALTER

  • ALTER TABLE
-- ADD
ALTER TABLE TEST ADD (TEST_ADDR VARCHAR2(100));

--MODIFY
ALTER TABLE TEST MODIFY (TEST_ADDR VARCHAR2(100) DEFAULT 'SEOUL;' NOT NULL NOVALIDATE);

--RENAME
ALTER_TABLE TEST RENAME COLUMN ADDR TO ADDRESS;

--DROP
ALTER TABLE TEST DROP COLUMN ADDRESS;

--ADD CONSTRAINT 
ALTER TABLE TEST ADD CONSTRAINT TEST_PK_ID PRIMARY KEY (TEST_ID);

--ADD CONSTRAINT (FK)
ALTER TABLE TEST ADD CONSTRAINT TEST_FK_2 FOREIGN KEY (TEST_NAME)
REFERENCES TEST2(TEST_NAME);

→ 여기서 FK로 걸린 test2의 test_name 에 없는 값을 test table의 test_name에 입력하려하거나 test table에 입력되어있는 test_name 값을 test2에서 제거하려고 하면 무결성 제약조건 위배로 에러가 남

DELETE FROM TEST2

SELECT 와 달리 DELETE는 * 없이도 특정 행을 지정해주지 않으면 모든 행을 삭제함

profile
:D

0개의 댓글