데이터 정의어(DDL) : 오라클에서 제공하는 격체를 새로 만들고(CREATE), 구조를 변경하고(ALTER),
구조 자체를 삭제(DELETE)하는 언어이다. 즉 실체 데이터값이 아닌 규칙 자체를 정의하는 언어이다.
1. CREATE
- 객체를 새로 생성하는 구문
1-1. 테이블 생성
테이블 : 행과 열로 구성되는 가장 기본적인 데이터베이스 객체, 모든 데이터들은 테이블을 통해 저장됨.
(DBMS 용어 중 하나로, 데이터를 일종의 표 형태로 표현함)
[표현식]
CREATE TABLE 테이블명 (
컬럼명 자료형 (크기),
컬럼명 자료형 (크기),
컬럼명 자료형
...
)
*자료형
- 숫자 (NUMBER)
- 문자 (CHAR(바이트크기)) | VARCHAR2(바이트크기)) -> 반드시 크기를 지정해 줘야 함
- CHAR : 최대 2000바이트까지 지정가능 / 고정길이(고정된 글자수의 데이터가 담길 경우)
- VARCHAR : 최대 4000바이트까지 지정가능 / 가변길이(몇글자의 데이터가 들어올지 모르는 경우)
- 날짜 (DATE)
1-2. 컬럼에 주석 달기
- 테이블을 열면 표에 있는 컬럼값들을 주석으로 설명할 수 있다.
양식) COMMENT ON COLUMN 컬렴명.테이블명 IS '원하는내용';
2. 제약 조건
- 원하는 데이터값을 구하기 위해 특정컬럼에 설정하는 제약이다.
- 데이터 무결성 보장을 목적으로 한다.
데이터 무결성이란 데이터베이스에 저장된 데이터의 정확성, 신뢰성, 일관성을 보장하는 것을 의미한다.
종류 : NOT NULL, UNIQUE, CHECK, PRIMARY KEY(기본키), FOREIGN KEY(외래키)
2-1. 외래키 제약조건 (FOREIGN KEY)
- 다른 테이블에 존재하는 값만 들어와야 하는데 특정 컬럼에 부여하는 제약조건이다.
- 다른 테이블을 참조한다고 표현하고, 주로 FOREIGN KEY 제약조건으로 인해 테이블간 관계가 형성된다.
두가지 방식으로 나뉘어지는데, 컬럼레벨 방식과 테이블레벨 방식으로 나뉘어진다.
보통 사용 상황이나 선호도에 따라 나뉘어지는데 둘 다 기능적으로 동일하며, 구조적 명확성과 가독성에 의해 사용 방식이 나뉘어진다.
1. 컬럼레벨 방식
양식) 컬럼명 자료형 REFERENCES 참조할 테이블명 [참조할 컬럼명]
2. 테이블레벨 방식
양식) FOREIGN KEY REFERENCES 참조할 테이블명[참조할 컬럼명]
-> 참조할 컬럼명 생략시 참조할 테이블의 PRIMARY KEY로 지정된 컬럼이 매칭된다.
해당 코드를 작성할때, 어떤 방식의 외래키 제약조건을 사용할까 고민했는데, 결국 아무 방식이나 사용해도 된다는 걸 알았다. 나는 컬럼레벨 방식으로 작성하는게 훨씬 쉽다고 느꼈지만, 나중에 보다 복잡한 코드를 작성해야 할 때는 테이블레벨 방식으로 작성하는게 가독성 면에서 훨씬 좋다고 한다.
'SQL ORACLE' 카테고리의 다른 글
2024.12.24(화) 7일차 / DDL(2) (0) | 2024.12.24 |
---|---|
2024.12.24(화) 7일차 / DML (데이터 조작어) (0) | 2024.12.24 |
JOIN / ORACLE 과 ANSI 의 차이점 (2) | 2024.12.20 |
2024.12.19(목) / 4일차 / 서브쿼리 (0) | 2024.12.19 |
2024.12.18(수) / 3일차 / GROUP_BY, HAVING (0) | 2024.12.18 |