오라클디비실습준비

Updated:

오라클

오라클 18c Express Edition을 다운받고 계정을 생성하려 했다.

그 다음 SQL developer 프로그램을 다운받았다.

그리고 계정 생성에서 계속 에러가 났다.

CREATE USER 계정이름 IDENTIFIED BY 계정비번;

을 적으면 다음과 같은 오류가 나온다.

1행 오류: ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.

그래서 인터넷 검색을 해보니 오라클 12c로 넘어오면서 계정 이름 앞에 c##을 붙여 주어야 한다고 한다.

CREATE USER c##계정이름 IDENTIFIED BY 계정비번;

이라고 입력해야 계정이 생성된다.

테이블 생성하기

테이블 이름 지정 규칙

  • 문자로 시작해야 한다.
  • 1자 부터 30자까지 가능하다.
  • A-Z, a-z, 0-9, _, $, # 만 포함한다.(한글 이름도 가능)
  • 동일한 사용자가 소유한 다른 객체의 이름과 중복되지 않아야 한다.
  • Oracle Server의 예약어(CREATE, DROP, SELECT 등)는 사용할 수 없다.

테이블 생성시 주의사항

  • 테이블 이름을 저장하고 각 칼럼들은 괄호 “()”로 묶어 지정한다.
  • 컬럼 뒤에 데이터 타입은 꼭 지정되어야 한다.
  • 각 칼럼들은 콤마 “,”로 구분되고, 항상 끝은 세미콜론 “;”으로 끝난다.
  • 한 테이블 안에서 칼럼 이름은 같을 수 없다. 다른 테이블에서의 칼럼 이름과 같을 수 있다.

테이블 생성 구문

CREATE TABLE 테이블이름 (
	칼럼1 데이터타입 [DEFAULT] [제약조건],
    칼럼2 데이터타입 [DEFAULT] [제약조건],
    ......
);

예시

CREATE TABLE stadium (
	STADIUM_ID CHAR(3) NOT NULL,
    STADIUM_NAME VARCHAR2(20) NOT NULL,
    HOMETEAM_ID CHAR(3),
    SEAT_COUNT NUMBER,
    ADDRESS VARCHAR2(60),
    DDD VARCHAR2(3),
    TEL VARCHAR2(10),
    CONSTRAINT stadium_PK PRIMARY KEY (STADIUM_ID)
);

CONSTRAINT는 제약 조건 stadium_PK를 참조키로 한다는 의미다. 이 부부은 나도 이해가 잘 안되어서 다시 공부해서 작성해야지!

PRIMARY KEY 는 STADIUM_ID 값을 기본키로 한다는 것이다.

데이터 유형

  1. 테이블 생성시 칼럼을 정의할 때 선언한 데이터 유형은 그 칼럼이 받아들일 수 있는 자료의 유형을 규정한다.

    -> 선언한 유형이 아닌 다른 종류의 데이터가 들어오려고 하면 데이터베이스는 에러를 발생시킨다.

  2. 오라클에서 제공하고 있는 기본 데이터 타입의 종류는 크게 문자형 데이터, 숫자형 데이터, 날짜 데이터로 구분한다.

  3. 데이터 유형과 더불어 지정한 크기(SIZE)도 중요한 기능을 제공한다.

    -> 선언 당시에 지정한 데이터의 크기를 넘어선 자료가 입력되는 상황은 에러를 발생시킨다.

문자형 데이터 타입

데이터 유형 설명 길이
CHAR(size) 고정 길이 문자데이터 최대크기 2000바이트
size 값 생략 시 기본값 1
VARCHAR2(size) 가변 길이 문자데이터 최대 4000바이트
size값 생략 안됨
CLOB LONG타입 확장된 형태
가변길이 문자데이터 저장
최대 4GB
LONG 가변 길이의 문자 데이터 최대 크기 2GB

숫자 데이터 타입

데이터 유형 설명 길이
NUMBER(prec, scale) 정수를 포함한 모든 실수를 표현하고 저장하는데 사용
38자리 양수 및 음수
Precision: 전체 자릿수-생략한 경우 적용할 수 있는 최대값 38
Scale: 소수점 이하 자릿수 -생략한 경우 적용할 수 있는 값 0
최대값 21 BYTE
BINARY_FLOAT 32bit 부동소수 4BYTE
BINARY_DOUBLE 64bit 부동소수 8BYTE

날짜 데이터 타입

데이터 유형 설명 길이
DATE 고정길이 날짜와 시간 데이터
BC 4712년 1월 1일부터 9999년 12월 31일까지 표현
7BYTE
NLS_DATE_FORMAT
TIMESTAMP Millisecond 까지 표현 가능한 데이터 타입
0~9까지 가능
기본값 6
7~11 BYTE
NLS_TIMESTAMP_FORMAT
TIMESTAMP WITH TIME ZONE 시간대와 함께 날짜와 시간 표현 13BYTE
NLS_TIMESTAMP_FORMAT
TIMESTAMP WITH LOCAL TIME ZONE 저장 시 DB시간대 준수
조회 시 클라이언트 시간대로 표현
7~11BYTE
NLS_TIMESTAMP_FORMAT

Comments