● FOREIGN KEY(FK)
- 다른 테이블의 PK를 의미한다.
- 보통 테이블끼리 관계를 맺을 때 사용한다.
- 중복이 가능하다.
● 조합키
- 하나의 테이블에 2개 이상의 PK가 설정되어 있는 경우
- 하나의 PK는 중복이 가능하지만, 두 개 이상의 PK가 모두 중복이 되면 안된다.
![](https://blog.kakaocdn.net/dn/cQDDOV/btrxWBAArBV/KJjWuKkAc334JnhTnLK6T0/img.png)
● UNIQUE KEY(UK)
- NULL은 허용하지만 중복을 허용하지 않는다.
● 컴파일 언어와 스크립트 언어
1. 컴파일 언어
- 파일 단위로 해석한다.(일괄처리)
- 수정이 거의 없을 때 효율적이다.
- 번역 파일이 생성된다.
- JAVA, C언어, C++, ...
2. 스크립트 언어
- 한 줄 단위로 해석한다.(개별처리)
- 빈번한 수정 시 효율적이다.
- 번역 파일이 따로 생성되지 않고, 번역 하자마자 실행된다.
- CSS, JS, SQL, 파이썬, ...
● SQL문(쿼리문)
- DDL, DML, DCL, TCL
- 스크립트 언어
- DBMS와 소통하는 언어
● DDL(Data Definition Language)
- 데이터 정의어
- 테이블 조작, 제어 관련 쿼리문
1. CREATE : 테이블 생성
CREATE TABLE [테이블명](
[컬럼명] [자료형(용량)] [제약조건],
...
);
2. DROP : 테이블 삭제
DROP TABLE [테이블명];
3. ALTER : 테이블 수정
ALTER TABLE [테이블명] (--아래 코드 작성--)
(1) 테이블 명 수정
RENAME TO [새로운 테이블명];
(2) 컬럼 추가
ADD([새로운 컬럼명] [자료형(용량)]);
(3) 컬럼명 변경
RENAME COLUMN [기존 컬럼명] TO [새로운 컬럼명];
(4) 컬럼 삭제
DROP COLUMN [기존 컬럼명];
(5) 컬럼 수정
MODIFY([기존 컬럼명] [자료형(용량)]);
4. TRUNCATE : 테이블 내용 전체 삭제
TRUNCATE TABLE [테이블명];
● 자료형(TYPE)
- 용량은 항상 넉넉하게 주도록 한다.
(1) 숫자
- NUMBER(precision) : 정수
- NUMBER(precision, 소수점 자리수) : 실수
(2) 문자열
- CHAR(용량) : 고정형
- 형식을 정한 날짜, 주민등록번호, 성별처럼 글자 수가 절대 변하지 않는 값을 넣는다.
(ex) CHAR(4)에 'A'를 넣으면 빈 자리가 공백으로 채워진다.(A^^^)
- VARCHAR(용량), VARCHAR2(용량) : 가변형
- 값의 길이 만큼 공간이 배정된다.
- 글자 수에 변화가 있는 값을 넣는다.
(3) 날짜
- DATE
- FORMAT에 맞춰서 날짜를 저장하는 타입
● 주석
- 한 줄 주석
--
- 범위 주석(Ctrl + Shift + /)
/*
*/
실습(DDL(1))
- 이름과 나이 컬럼이 존재하는 "USER" 테이블 생성하기
CREATE TABLE "USER"(
NAME VARCHAR2(500),
AGE NUMBER
);
※ "USER" 테이블 삭제
DROP TABLE "USER";
※ 테이블 생성 확인
![](https://blog.kakaocdn.net/dn/c1CCLm/btrxY5t6GxG/AxxOMJ5m06RCkoYhzkm76K/img.png)
실습(DDL(2))
※ 문제
/*
* 자동차 테이블 생성
* 자동차 번호
* 자동차 브랜드
* 출시 날짜
* 색상
* 가격
*/
1. PK 지정하지 않은 경우
- 테이블 생성
CREATE TABLE TBL_CAR(
CAR_NUMBER NUMBER,
CAR_BRAND VARCHAR2(1000),
CAR_RELEASE_DATE DATE,
CAR_COLOR VARCHAR2(1000),
CAR_PRICE NUMBER(5)
);
![](https://blog.kakaocdn.net/dn/qqHmZ/btrxZDKTLuW/Dt2a5iBKKTgyI5rR3Zl6tk/img.png)
- 특정 테이블의 컬럼에 제약조건 추가
/*
* ADD CONSTRAINT : 제약조건 추가
* PK_CAR : 제약조건 이름
*/
ALTER TABLE TBL_CAR ADD CONSTRAINT PK_CAR PRIMARY KEY(CAR_NUMBER);
![](https://blog.kakaocdn.net/dn/AIUea/btrxQ5CVZrg/rJKiXC2uNi4k0xXwuPJca0/img.png)
- 특정 테이블의 컬럼에 제약조건 삭제
ALTER TABLE TBL_CAR DROP CONSTRAINT PK_CAR;
2. PK 지정한 경우
- 테이블 생성
CREATE TABLE TBL_CAR(
CAR_NUMBER NUMBER PRIMARY KEY,
CAR_BRAND VARCHAR2(1000),
CAR_RELEASE_DATE DATE,
CAR_COLOR VARCHAR2(1000),
CAR_PRICE NUMBER(5)
);
![](https://blog.kakaocdn.net/dn/vGShL/btrxU0gHxJq/lVplidWVQYwrj1KDtIKlI1/img.png)
- 특정 테이블의 컬럼에 제약조건 삭제
※ 자동으로 생성된 제약조건의 이름을 찾아 써준다.
ALTER TABLE TBL_CAR DROP CONSTRAINT SYS_C007005;
'웹 개발 > DBMS' 카테고리의 다른 글
[Web_DBMS] 06 (0) | 2022.04.04 |
---|---|
[Web_DBMS] 05 (0) | 2022.04.03 |
[Web_DBMS] 04 (0) | 2022.04.02 |
[Web_DBMS] 03 (0) | 2022.04.01 |
[Web_DBMS] 01 (0) | 2022.03.30 |