2024.12.23(월) 6일차 / DDL (데이터 정의어)

2024. 12. 23. 17:41·SQL ORACLE

데이터 정의어(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)  (1) 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
'SQL ORACLE' 카테고리의 다른 글
  • 2024.12.24(화) 7일차 / DDL(2)
  • 2024.12.24(화) 7일차 / DML (데이터 조작어)
  • JOIN / ORACLE 과 ANSI 의 차이점
  • 2024.12.19(목) / 4일차 / 서브쿼리
동준1234
동준1234
공부 기록
  • 동준1234
    dongjundev
    동준1234
  • 전체
    오늘
    어제
    • 분류 전체보기 (137)
      • 일상 (1)
      • 자격증 (7)
        • 정보처리기사 필기 준비 (6)
        • 정보처리기사 실기 준비 (0)
        • SQLD (1)
      • KPT 회고 (22)
      • SQL ORACLE (18)
      • project (3)
      • 백준 및 코딩테스트 공부 (6)
      • 4학년 캡스톤 디자인 및 전시회 (3)
      • 대학교 캡스톤 디자인 (6)
      • JAVA (48)
      • JDBC (1)
      • 네트워크 (1)
      • AI 머신러닝 (1)
      • Front-End (10)
      • Server (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
동준1234
2024.12.23(월) 6일차 / DDL (데이터 정의어)
상단으로

티스토리툴바