
오늘은 직원(직원) 테이블과 네이버회원 테이블을 갖고
1️⃣ DDL(테이블 생성·제약조건)
2️⃣ DML(INSERT, UPDATE, DELETE)
연습해볼 거에여!
-- 1) 직원 테이블 생성
CREATE TABLE 직원 (
직원ID NUMBER(6) NOT NULL, -- PK 후보
이름 VARCHAR2(20),
성 VARCHAR2(25) NOT NULL,
이메일 VARCHAR2(25) NOT NULL, -- UK 후보
핸드폰 VARCHAR2(20),
입사일 DATE NOT NULL,
직업ID VARCHAR2(10) NOT NULL,
급여 NUMBER(8,2),
커미션비율 NUMBER(2,2),
매니저ID NUMBER(6),
부서ID NUMBER(4)
);
-- 2) 직원 테이블 삭제 (테스트용)
DROP TABLE 직원;
-- 3) PK, UK, CK 등 제약조건 추가
ALTER TABLE 직원
ADD CONSTRAINT 직원_직원ID_PK PRIMARY KEY(직원ID);
ALTER TABLE 직원
ADD CONSTRAINT 직원_직원이메일_UK UNIQUE(이메일);
ALTER TABLE 직원
ADD CONSTRAINT 직원_급여_CK CHECK(급여 > 0);
-- 4) 이름 컬럼 NOT NULL 설정 (DDL 수정)
ALTER TABLE 직원
MODIFY 이름 NOT NULL;
-- 5) FK(부서ID) 추가
ALTER TABLE 직원
ADD CONSTRAINT 직원_부서ID_FK
FOREIGN KEY(부서ID) REFERENCES 부서(부서ID);
-- 6) CK 제약조건 삭제 (테스트)
ALTER TABLE 직원
DROP CONSTRAINT 직원_급여_CK;
포인트
PRIMARY KEY,UNIQUE,CHECK,NOT NULL,FOREIGN KEY를 자유롭게 연습해보세요!- 제약조건은
ALTER TABLE로도 추가·삭제할 수 있어요!
CREATE TABLE 제약조건테스트 (
PK테스트 NUMBER PRIMARY KEY, -- PK
UK테스트 NUMBER UNIQUE, -- UK
NN테스트 NUMBER NOT NULL, -- NN
CK테스트 VARCHAR2(2) CHECK(CK테스트 IN ('남','여')) -- CK
);
CK테스트 컬럼은 '남' 또는 '여' 값만 허용되도록 체크 -- 컬럼 명시 버전
INSERT INTO 네이버회원 (
회원ID, 이름, 비밀번호, 생년월일, 성별
) VALUES (
'ABC', '홍길동', '1234', SYSDATE, '남'
);
-- 컬럼 생략 버전 (테이블 컬럼 순서를 정확히 알아야 함)
INSERT INTO 네이버회원
VALUES (
'DFG', '홍길동', '1234', SYSDATE, '남'
);
Tip!
- 컬럼을 명시하면 → 유지보수에 안전
- 생략하면 → 빠르지만, 컬럼 순서 바뀌면 에러 😱
-- ① 전체 행 업데이트 (주의!!)
UPDATE 직원
SET 직업ID = 'JAVA';
-- ② 특정 행만 업데이트
UPDATE 직원
SET 직업ID = 'JAVA'
WHERE 직원ID = 4;
주의
WHERE없이 실행하면 전체가 바뀌니까 신중하게~- 항상
SELECT로 대상 확인 후UPDATE!
-- ① 전체 삭제 (주의!!)
DELETE FROM 직원;
-- ② 특정 행만 삭제
DELETE FROM 직원
WHERE 직원ID = 2;
주의
- 전체 삭제 전엔 반드시 백업 또는 트랜잭션 확인!
COMMIT;해야 실제 반영!
오늘은 직원 테이블에 제약조건을 붙이고
네이버회원 테이블에 데이터를 삽입, 수정, 삭제 해봤어요!
SQL 연습할 때,
작성일:2025.07.23
작성자:발라