오라클 DDL CREATE

최주영·2023년 4월 8일
0

오라클

목록 보기
12/22

DDL : Data Definition Language

  • 데이터 정의 언어로 객체를 만들고(CREATE), 수정하고(ALTER), 삭제(DROP)하는 구문
  • DDL 명령어는 데이터베이스에 즉각 반영됨 (ROLLBACK 불가능)

  • 자바와 SQL 비교
테이블
클래스멤버변수(필드)객체

✅ CREATE

  • 테이블이나 인덱스, 뷰 등 데이터베이스 객체를 생성하는 구문
    -> 테이블 생성 : 데이터를 저장할 수 있는 공간을 생성하는 것
    -> 테이블을 생성하기 위해서는 저장공간을 확보하는데 확보할 때 TYPE이 필요

  • CREATE TABLE 테이블명(컬럼명 자료형(길이), 컬럼명2 자료형....);

  • 문자열 타입
    (1) CHAR : 고정형 문자형 저장타입으로 길이만큼 공간을 확보하고 저장 (최대 2000바이트 저장)
    (2) VARCHAR2 : 가변형 문자열로 저장되는 데이터만큼 공간확보하고 저장 (최대 4000바이트 저장)
    CHAR -> 크기 지정안해도 가능
    VARCHAR2 -> 무조건 크기지정해야함
    (3) NCHAR
    (4) NVARCHAR2
    (5) CROB : 최대 4GB까지 저장 가능
  	CREATE TABLE TBL_STR(  // 테이블 생성
   		 A CHAR(6), 
   		 B VARCHAR2(6),
   		 C NCHAR(6),
   		 D NVARCHAR2(6)
	);
  
  INSERT INTO TBL_STR VALUES('ABC','ABC','ABC','ABC');  -- 값 삽입 가능
  INSERT INTO TBL_STR VALUES('가나','가나','가나','가나'); -- 값 삽입 가능
  INSERT INTO TBL_STR VALUES('가나','가나','가나','가나다라마바사');--값 삽입 불가능 (최대 저장이 6인데 7을 삽입했기때문)
  • 숫자형 타입
    (1) NUMBER : 실수, 정수 모두 저장이 가능함
    선언방법 : NUMBER(PRECISION, SCALE) : 저장할 범위설정
    -> PRECISION : 표편할 수 있는 전체 자리수 (1~38)
    -> SCALE : 소수점 이하의 자리수 (-84, 127)
  CREATE TABLE TBL_NUM(
    A NUMBER,  -- 대체적으로 이렇게넣음 (모두 다 넣어줌)
    B NUMBER(5),  -- 전체자리수가 5자리이지만 소수점을 반올림함
    C NUMBER(5,1), -- 5자리이지만 소수점은 한자리만 표현1
    D NUMBER(5,-2)  -- 둘째자리수까지만 표현
);
  
INSERT INTO TBL_NUM VALUES(1234.567, 1234.567, 1234.567, 1234.567);
INSERT INTO TBL_NUM VALUES(123456.123, 12345.123, 123456.123, 123456.123); -- 전체자리수가 5자리이므로 안됨 (x)
INSERT INTO TBL_NUM VALUES(123456.123,12345.123,1234.123,0);
INSERT INTO TBL_NUM VALUES(123456.123, 12345.123, 1234.123, 123.1234567);
INSERT INTO TBL_NUM VALUES('1234.567', '1234.567', '1234.567', '1234.567');
  
  • 날짜형 타입
    (1) DATE : 년, 월, 일 까지만 표시
    (2) TIMESTAMP : 년, 월, 일 뿐아니라 시간까지 표시
CREATE TABLE TBL_DATE(
    BIRTHDAY DATE,
    TODAY TIMESTAMP
);
  
INSERT INTO TBL_DATE VALUES('98/08/03','98/01/26 15:30:30');
// 값을 바로 넣는 방식
  
INSERT INTO TBL_DATE VALUES(TO_DATE('98/08/03','RR/MM/DD'),
            TO_TIMESTAMP('98/01/26 15:30:30', 'RR/MM/DD HH24:MI:SS'));  
  			// 형식에 맞춰서 값을 넣는 방식

✅ 생성된 테이블의 컬럼에 설명(COMMENT) 작성

  • COMMENT ON COLUMN 테이블이름.컬럼이름 IS 저장할 내용;
  • 테이블 안에다 적는 것이 아니라 따로 명령어로 처리해야 한다
COMMENT ON COLUMN MEMBER.MEMBER_NAME IS '회원이름 최소2글자이상 저장';
COMMENT ON COLUMN MEMBER.MEMBER_ID IS '회원아이디 최소4글자이상';
COMMENT ON COLUMN MEMBER.MEMBER_PWD IS '회원비밀번호 최소8글자이상';  


SELECT *
FROM USER_COL_COMMENTS -- 주석처리한 컬럼들을 저장한 테이블에 접근
WHERE TABLE_NAME = 'MEMBER'; -- 해당 멤버테이블에만 접근


-- 테이블에 커멘트 작성하기
COMMENT ON TABLE MEMBER IS '회원정보저장';  -- 멤버테이블에 커멘트 작성
SELECT * FROM USER_TAB_COMMENTS;  -- 주석처리한 테이블들을 저장한 테이블에 접근


profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글