Study📚/Oracle

Oracle - DUAL 테이블, 사용자 계정 생성

woo!na 2023. 10. 21. 00:37

- DUAL 테이블

오라클에서 제공하는 더미 테이블로 큰 의미 없는 임시 더미 테이블이다. 주로 SELECT 문 결과를 확인하거나, 함수를 사용한 결과를 출력하는 등 간단한 쿼리문을 테스트 할 때 사용된다.

 

- DUAL 테이블을 이용한 여러가지 관찰

--○ 현재 오라클 서버에 접속한 자신의 계정 조회
show user
--==>> USER이(가) "SYS"입니다.
--> sqlplus 상태일 때 사용하는 명령어 ';' 없어도 됨

SELECT USER
FROM DUAL;
--==>> SYS

SELECT 1 + 2
FROM DUAL;
--==>> 3

SELECT 오라클수업;
--==>> 에러 발생
-- (ORA-00923: FROM keyword not found where expected)
-- FROM DUAL 생략 불가능

SELECT 오라클수업
FROM DUAL;
--==>> 에러 발생
-- (ORA-00904: "오라클수업": invalid identifier)

SELECT "오라클수업"
FROM DUAL;
--==>> 에러 발생
-- (ORA-00904: "오라클수업": invalid identifier)

SELECT '오라클수업'
FROM DUAL;
--==>> 오라클수업

SELECT 3.14 + 3.14
FROM DUAL;
--==>> 6.28

SELECT 10 * 5
FROM DUAL;
--==>> 50

SELECT 10 * 5.0
FROM DUAL;
--==>> 50

SELECT 4 / 2
FROM DUAL;
--==>> 2

SELECT 10 / 2.5
FROM DUAL;
--==>> 4

SELECT 10 / 2.4
FROM DUAL;
--==>> 4.16666666666666666666666666666666666667

SELECT '즐거운' + '오라오라오라클'
FROM DUAL;
--==>> 에러 발생
-- (ORA-01722: invalid number)
-- 문자열은 연산자를 통한 결합 불가능

 

- TABLESPACE

TABLESPACE 란 세그먼트(테이블, 인덱스, ...)를 담아두는(저장해두는) 오라클의 논리적인 저장구조를 의미한다. 물리적인 저장구조는 하드디스크이다.

-- TABLESPACE 생성
CREATE TABLESPACE TBS_TEST
-- 물리적 데이터 파일 경로 및 이름
DATAFILE 'C:\TESTDATA\TBS_TEST01.DBF'
-- 사이즈(용량) 4메가
SIZE 4M
-- 오라클 서버가 세그먼트를 알아서 관리
EXTENT MANAGEMENT LICAL
-- 세그먼트 공간 관리도 오라클 서버가 자동으로 관리
SEGMENT SPACE MANAGEMENT AUTO;
--==>> TABLESPACE TBS_TEST이(가) 생성되었습니다.

즉, 테이블 스페이스는 테이블 이라는 파일철을 보관하는 사물함이다. 라고 이해합시다앙

 

- 오라클 사용자 계정 생성

-- woona 라는 사용자 계정을 만들겠다. 비밀번호는 password!
CREATE USER WOONA IDENTIFIED BY password!
-- 이 계정을 통해 생성하는 오라클 세그먼트는 기본적으로 TBS_TEST 라는 테이블 스페이스에 생성할 수 있도록 설정
DEFAULT TABLESPACE TBS_TEST;
--==>> User WOONA이(가) 생성되었습니다.

사용자 계정을 생성했다고 해서 바로 오라클에 접속하여 테이블을 만들 수 있는 것은 아니다.

CREATE SESSION 권한, CREATE TABLE 권한 등을 부여해야한다.

-- 오라클 서버 접속이 가능한 권한 부여
GRANT CREATE SESSION TO WOONA;
-- 테이블 생성이 가능한 권한 부여
GRANT CREATE TABLE TO WOONA;
-- 테이블 스페이스에서 사용할 수 있는 공간(할당량) 지정
ALTER USER WOONA
QUOTA UNLIMITED ON TBS_TEST;	-- UNLIMITED -> 제한 없음

테이블 생성 권환을 부여받았어도 할당량을 지정해주지 않으면 테이블 생성이 불가능하다.