3 minute read

DDL

  • Data Definition Language
  • 데이터 정의 언어
  • 객체(OBJECT)를 만들고(CREATE) 수정(ALTER)하고 삭제(DELETE)
  • 데이터가 아닌 데이터의 구조 자체를 정의
  • Oracle 객체(OBJECT) 종류
    • 테이블(TABLE)
    • 뷰(VIEW)
    • 시퀀스(SEQUENCE)
    • 인덱스(INDEX)
    • 패키지(PACKAGE)
    • 프로시저(PROCEDUAL)
    • 함수(FUNCTION)
    • 트리거(TRIGGER)
    • 동의어(SYNONYM)
    • 사용자(USER)

CREATE

  • 객체 생성
-- TABLE 생성 예시

CREATE TABLE 테이블명 (
	컬럼명 자료형(크기),
	컬럼명 자료형(크기),
	...
);

-- 제약 조건 추가 TABLE 생성
CREATE TABLE 테이블명 (
    컬럼명 자료형(크기) [DEFAULT 기본값] [제약조건],  
    컬럼명 자료형(크기) [DEFAULT 기본값] [제약조건],
    ...
);

-

CREATE TABLE MEMBER (
    MEMBER_ID VARCHAR2(20),
    MEMBER_PWD VARCHAR2(20),
    MEMBER_NAME VARCHAR2(20),
    MEMBER_DATE DATE DEFAULT SYSDATE
);

테이블을 생성했다.

-

Alt text

생성한 테이블을 확인해보았다.
아직은 데이터를 추가하지 않았기때문에
컬럼만 보인다.

계정명 아래 테이블 폴더를 열어보면
테이블이 추가되어 있는 것을 확인할 수 있다.

-

Alt text

테이블 구조를 조회하는 방법이다.
DESC는 description이라고 한다. 서술, 묘사 등…!


컬럼 주석

COMMENT ON COLUMN 테이블명.컬럼명 IS '주석 내용';

Alt text

주석 추가 전.

-

Alt text
주석 추가 후.


Data Dictionary

  • 데이터의 자원을 효율적으로 관리하기 위해 다양한 정보를 저장하는 시스템 테이블
  • 사용자가 테이블을 생성하거나 수정할 때 자동으로 생성
  • 사용자가 직접 수정하거나 삭제 불가능
  • 시스템이 관리하는 테이블이기 때문에 내용을 알 수 없음
    • 오라클에서 사용자가 내용을 알아볼 수 있도록 내용을 변환하여 데이터 딕셔너리 뷰를 제공
-- 테이블 구조 조회
SELECT * 
FROM USER_TABLES 
WHERE TABLE_NAME = 'MEMBER';

-- 테이블 컬럼 정보 조회
SELECT *
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'MEMBER';

ALTER

  • 테이블 내용을 수정할 때 사용
  • 컬럼의 추가/삭제, 제약조건의 추가/삭제, 컬럼의 자료형 변경, DEFAULT 값 변경
  • 제약조건 수정은 불가(삭제 후 재생성)

1) 컬럼 추가
ALTER TABLE 테이블명
ADD (컬럼명 자료형(크기));


2) 컬럼 수정
ALTER TABLE 테이블명
MODIFY 컬럼명 자료형(크기)
...
MODIFY 컬럼명 자료형(크기);

3) 컬럼 삭제
ALTER TABLE 테이블명
DROP COLUMN 컬럼명;

4) 컬럼 이름 변경
ALTER TABLE 테이블명
RENAME COLUMN 기존 컬럼명 TO 변경 컬럼명

5) 제약조건 추가
ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건(컬럼명)
...
ADD CONSTRAINT 제약조건명 제약조건(컬럼명);

6) 제약조건 삭제
ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명
...
DROP CONSTRAINT 제약조건명;

7) 제약조건명 변경
ALTER TABLE 테이블명
RENAME CONSTRAINT 기존 제약조건명 TO 변경 제약조건명;

8) 테이블명 변경
ALTER TABLE 테이블명
RENAME TO 변경 테이블명;

-- OR

RENAME 테이블명 TO 변경 테이블명;

DROP

  • 객체 삭제
-- TABLE 삭제 예시
DROP TABLE 테이블명;

Oracle 데이터형

데이터형 설명
CHAR(크기) 고정길이 문자 데이터(최대 2,000 Byte)
VARCHAR2(크기) 가변길이 문자 데이터(최대 4,000 Byte)
NUMBER 숫자 데이터(최대 40자리)
NUMBER(길이) 숫자 데이터로, 길이 지정 가능하다 (최대 38자리)
DATE 날짜 데이터(BC 4712년 1월 1일 ~ AD 4712년 12월 31일)
LONG 가변 길이 문자형 데이터(최대 2GB)
LOB 2GB까지의 가변길이 바이너리 데이터 저장 가능 (이미지, 실행파일 등 저장 가능)
ROWID DB에 저장되지 않는 행을 식별할 수 있는 고유 값
BFILE 대용량의 바이너리 데이터 저장 가능(최대 4GB)
TIMESTAMP DATE형의 확장된 형태
INTERVAL YEAR TO MONTH 연도과 월을 이용하여 기간 저장
INTERVAL DAY TO SECONT 일, 시, 분, 초를 이용하여 기간 저장

CHAR

CHAR(크기)
  • 크기: 문자열 크기 지정
  • 지정한 크기보다 적은 문자열 입력 시 남은 공간은 공백
  • 데이터는 큰따옴표(“)를 사용
  • 대소문자 구분
데이터 타입 저장 되는 값 설명
KIMCH CHAR(6) KIMCHI  
  CHAR(9) KIMCHI*** 공백 3칸(3BYTE)
  CHAR(3) ERROR  
김치 CHAR(6) 김치 한글은 한 글자당 3BYTE
  CHAR(9) 김치*** 공백 3BYTE
  CHAR(3) ERROR  

VARCHAR2

VARCHAR2(크기)
  • 가변
  • 크기: 문자열 크기 지정
  • 크기가 0일 경우 NULL로 인식
  • 데이터는 큰따옴표(“)를 사용
  • 대소문자 구분
데이터 타입 저장 되는 값 설명
KIMCH CHAR(6) KIMCHI  
  CHAR(9) KIMCHI*** 가변 데이터형이기 때문에 공백 없이 저장
  CHAR(3) ERROR  
김치 CHAR(6) 김치 한글은 한 글자당 3BYTE
  CHAR(9) 김치*** 가변 데이터형이기 때문에 공백 없이 저장
  CHAR(3) ERROR  

NUMBER

NUMBER(전체 자리수, 소수점 이하 자리수)
  • 전체 자리수: 1~38
  • 소수점 이하 자리수: -84~127
데이터 타입 저장 되는 값 설명
12345.678 NUMBER 12345.678  
  NUMBER(7) 12346 7자리이지만 정수는 5자리이므로 5개만 표현, 첫 번째 소수로 인해 반올림 되어 저장
  NUMBER(7, 1) 12345.7 7자리이지만 정수 5자리와 소수 1자리만 표현, 두 번째 소수로 인해 반올림 되어 저장
  NUMBER(7, 3) ERROR 7자리, 소수점 이하 3자리로 정수는 총 4자리인데 실제 값의 정수는 5자리이므로 오류
  NUMBER(7, -2) 12300 s가 -2여서 소수점 왼쪽 두 번째 자리 4가 반올림되어 저장
0.1234 NUMBER(4, 5) ERROR 유효숫자는 4개가 맞지만 소수점 아래가 5자리인데 4자리이므로 오류
0.01234 NUMBER(4, 5) 0.01234  
0.0001234 NUMBER(3, 7) ERROR 소수점 이하 일곱 째 자리까지 유효숫자는 4개인데 p가 3이므로 오류
0.00001234 NUMBER(3, 7) 0.0000123 소수점 이하 일곱 째 자리까지 유효숫자는 3개이기 때문에 마지막 4 제외

DATE

  • 일자 정보 관리
  • 기본적으로 년/월/일 정보만 표기
  • 날짜 연산 및 비교 가능
연산 결과 타입 설명
날짜 + 숫자 DATE 날짜에서 숫자만큼 며칠 후
날짜 - 숫자 DATE 날짜에서 숫자만큼 며칠 전
날짜 - 날짜 NUMBER 두 날짜의 일수 차
날짜 + 숫자/24 DATE 날짜 + 시간

Categories:

Updated: