공부 기록/DBMS

[ DBMS - 4일차 ]

pulttaegi 2026. 5. 10. 09:31
반응형

[ DDL 언어 ] 

구분 설명
CREATE


ALTER



COMIT
ROLLBACK

 자동 COMMIT을 잠시 꺼준다.
다시 자동 COMMIT을 켜준다.
예시 문제

 

구분 DELTE TRUNCATE
종류 데이터 조작어(DML) 데이터 정의어(DDL)
롤백(Rollback) 가능 불가능
속도 느림 빠름
WHERE절 사용 가능 (특정 행 삭제) 사용 불가능 (모든 행 삭제)
로그  삭제된 각 행을 기록 최소한의 정보만 기록

 

[ 테이블 생성시 중요한 키 ] 관계형

구분 설명
후보키 기본키를 지정할 수 있는 유일한 컬럼 (가능성)
대체키 후보키 중에 기본키로 지정하고 남은 컬럼 (후보키)
기본키 (Primary key == PK) 테이블에서 데이터 값을 식별하기 위한 유일한 키(값)를 설정
- 후보키 중에서 선택하는 키
- 중복값을 가질 수 없음
- NULL 값을 가질 수 없음
외래키 (Foreign key == FK) 보통 테이블과 연결시 이용하는 키
* 외래키에 입력되는 값은 연결되어 있는 테이블의 기본키 컬럼에 값이 반드시 존재해야함
- 중복값을 가질 수 있음
- NULL 값을 가질 수 있음
uk (유니크키) - NULL은 허용하지만 중복을 허용하지 않음
- 하나의 테이블에서 2개 이상의 컬럼에 유니크 키를 지정 가능함
- 몇개든지 지정 가능함
조합키 컬럼 2개를 묶어서(그룹화해서) 기본키로 지정하는 방법

 

[ 개념 정리 ]

구분 설명
부모 테이블 주는 입장
자식 테이블 받는 입장
구분 설명
기본키 
설정 및 확인


기본키로 설정함


무조건 값을 입력 하도록 설정됨


PRIMARY KEY가 활성화됨


기본키로 설정되어서 BOLD 처리된 것을 확인 가능함
기본키
이름 설정




PRIMARY KEY와 PRIMARY KEY 이름 설정


이름이 설정된 것을 볼 수 있음

활용 문제

활용 예시

기본키 설정을 여러번 실행할 경우 다음과 같은 오류가 발생함. 기본키는 중복되지 않기 때문임.


마찬가지로 기본키에 NULL값을 입력할 경우에도 오류가 발생함. 기본키에는 NULL 값을 입력할 수 없기 때문임.
 
CREATE TABLE TBL_SCHOOL(
SCHOOL_NUMBER NUMBER,
SCHOOL_NAME VARCHAR2(1000),
CONSTRAINT PK_SCHOOL PRIMARY KEY(SCHOOL_NUMBER));

INSERT INTO TBL_SCHOOL VALUES(1,'DBMS대학교');
INSERT INTO TBL_SCHOOL VALUES(2,'JAVA대학교');
INSERT INTO TBL_SCHOOL VALUES(3,'PYTONH대학교');
SELECT * FROM TBL_SCHOOL;

CREATE TABLE TBL_STUDENT(
STUDENT_NUMBER NUMBER,
STUDENT_NAME VARCHAR2(1000),
STUDENT_AGE NUMBER,
SCHOOL_NUMBER NUMBER,
CONSTRAINT PK_STUDNET PRIMARY KEY (STUDENT_NUMBER),
CONSTRAINT FK_STUDENT FOREIGN KEY (SCHOOL_NUMBER)
REFERENCES TBL_SCHOOL(SCHOOL_NUMBER));

INSERT INTO TBL_STUDENT VALUES(1,'홍길동',22,1);
INSERT INTO TBL_STUDENT VALUES(2,'김철수',17,2);
INSERT INTO TBL_STUDENT VALUES(3,'이유리',24,3);
SELECT * FROM TBL_STUDENT;

INSERT INTO TBL_STUDENT VALUES(4, '둘리', 35, 4);    (X)
INSERT INTO TBL_STUDENT VALUES(4, '둘리', 35, 2);    (O)



ALTER TABLE 테이블명 DROP CONSTRAINT 외래키 이름;
=
ALTER TABLE TBL_STUDENT DROP CONSTRAINT FK_STUDENT;

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

 

반응형

'공부 기록 > DBMS' 카테고리의 다른 글

[ DBMS - 8일차 ]  (0) 2026.05.24
[ DBMS - 3일차 ]  (0) 2026.05.09
[ DBMS - 2일차 ]  (0) 2026.05.03
[ DBMS - 1일차 ]  (0) 2026.05.02