오라클디비실습준비
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 값을 기본키로 한다는 것이다.
데이터 유형
-
테이블 생성시 칼럼을 정의할 때 선언한 데이터 유형은 그 칼럼이 받아들일 수 있는 자료의 유형을 규정한다.
-> 선언한 유형이 아닌 다른 종류의 데이터가 들어오려고 하면 데이터베이스는 에러를 발생시킨다.
-
오라클에서 제공하고 있는 기본 데이터 타입의 종류는 크게 문자형 데이터, 숫자형 데이터, 날짜 데이터로 구분한다.
-
데이터 유형과 더불어 지정한 크기(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