본문 바로가기

웹 개발/DBMS

[Web_DBMS] 02

● FOREIGN KEY(FK)

- 다른 테이블의 PK를 의미한다.

- 보통 테이블끼리 관계를 맺을 때 사용한다.

- 중복이 가능하다.

 

 

 

● 조합키

- 하나의 테이블에 2개 이상의 PK가 설정되어 있는 경우

- 하나의 PK는 중복이 가능하지만, 두 개 이상의 PK가 모두 중복이 되면 안된다.

 

 

 

● 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";

 

 

※ 테이블 생성 확인

ERD

 

 

 

 

실습(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)
);

 

결과

 

 

- 특정 테이블의 컬럼에 제약조건 추가

/*
 * ADD CONSTRAINT : 제약조건 추가
 * PK_CAR : 제약조건 이름
*/
ALTER TABLE TBL_CAR ADD CONSTRAINT PK_CAR PRIMARY KEY(CAR_NUMBER);

 

결과

 

 

- 특정 테이블의 컬럼에 제약조건 삭제

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)
);

 

제약조건의 이름을 자동으로 지정해준다.

 

 

- 특정 테이블의 컬럼에 제약조건 삭제

※ 자동으로 생성된 제약조건의 이름을 찾아 써준다.

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