- 테이블 생성하기 : CREATE
CREATE TABLE TBL_TEST
( NO NUMBER(3)
, NAME VATCHER2(10)
);
-- CREATE 테이블 테이블명
-- ( 컬럼명 데이터요소(크기)
-- , 컬럼명 데이터요소(크기)
-- :
-- );
-- 현재 접속한 사용자 계정이 갖고있는(소유하고 있는) 테이블 조회
SELECT *
FROM TAB;
--==>> TBL_TEST TABLE
SELECT *
FROM USER_TABLES;
--==>> TBL_TEST USERS VALID 10 1 255 65536 1048576 1 2147483645
-- 각각의 테이블들이 어떤 테이블 스페이스에 저장되어 있는지 조회
SELECT TABLE_NAME, TABLESPACE_NAME
FROM USER_TABLES;
--==>>
/*
TBL_TEST USERS
EMP USERS
BONUS USERS
SALGRADE USERS
*/
테이블이 생성되는 테이블 스페이스를 지정할 수도 있다.
CREATE TABLE TBL_TEST2
( NO NUMBER(4)
, NAME VARCHAR2(20)
) TABLESPACE TBS_TEST;
-- CREATE 테이블 테이블명
-- ( 컬럼명 데이터요소(크기)
-- , 컬럼명 데이터요소(크기)
-- :
-- ) TABLESTPACE 테이블스페이스명;
- 테이블의 자료구조 확인하기 : DESCRIBE / DESC
DESCRIBE TBL_TEST;
--==>>
/*
이름 널? 유형
------ -------- ------------
NO NUMBER(3)
NAME VARCHAR2(10)
*/
DESC TBL_TEST2;
--==>>
/*
이름 널? 유형
------ -------- ------------
NO NUMBER(3)
NAME VARCHAR2(10)
*/
- 오라클의 주요 자료구조
cf) MSSQL 서버의 표현타입
MSSQL 서버의 정수 표현 타입
tinyint 0 ~ 255 1Byte
smallint -32,768 ~ 32,767 2Byte
int -21억 ~ 21억 4Byte
bigint 디게 크다 8Byte
MSSQL 서버의 실수 표현 타입
float, real
MSSQL 서버의 숫자 표현 타입
decimal, numeric
MSSQL 서버의 문자 표현 타입
char, varchar, Nvarchar
※ ORACLE 은 숫자 표현 타입이 한 가지로 통일되어 있다.
1. 숫자형 NUMBER → -10의 38승-1 ~ 10의 38승
NUMBER(3) → -999 ~ 999
NUMBER(4) → -9,999 ~ 9,999
NUMBER(4, 1) → -999.9 ~ 999.9 → 소수점 이하 한자리 포함 총 네자리
※ ORACLE 의 문자 표현 타입
2. 문자형 CHAR → 고정형 크기 (무조건 지정된 크기 소모)
CHAR(10) ←← '가나다' 6Byte 이지만 10Byte 를 소모
CHAR(10) ←← '가나다라마' 10Byte
CHAR(10) ←← '가나다라마바' 10Byte 를 초과하므로 입력 불가
VARCHAR2 → 가변형 크기 (상황에 따라 크기가 변경)
VARCHAR2(10) ←← '가나다' 6Byte 이지만 6Byte 를 소모
VARCHAR2(10) ←← '가나다라마' 10Byte
VARCHAR2(10) ←← '가나다라마바' 10Byte 를 초과하므로 입력 불가. 줄어들긴 하지만 늘어나진 않음.
NCHAR → 유니코드 기반 고정형 크기(글자 수)
NCHAR(10) ←← 10글자
NVARCHAR2 → 유니코드 기반 가변형 크기(글자 수)
NVARCHAR2(10) ←← 10글자
3. 날짜형 DATE
날짜형 세션 변경하기
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
- 컬럼 구조의 추가 및 제거
-- TBL_TEST 테이블에 주민등록번호 데이터를 담을 수 있는 컬럼 추가
ALTER TABLE TBL_TEST
ADD SSN CHAR(13);
-- ALTER TABLE 테이블명
-- ADD 컬럼명 자료구조;
-- TBL_TEST 테이블에 추가한 SSN(주민등록번호) 컬럼 제거
ALTER TABLE TBL_TEST
DROP COLUMN SSN;
-- ALTER TABLE 테이블명
-- DROP COLUMN 컬럼명;
- 데이터 삽입(등록)하기 : INSERT
INSERT INTO TBL_TEST VALUES (10,'Eun');
--INSET INTO 테이블명 VALUES (형식에 맞는 데이터들);
- 데이터 수정하기 : UPDATE
UPDATE MY_HSB
SET BIGO = '공략대상', JOB = '꼭배우여야만하는거아니지만'
WHERE BIGO = '미혼';
UPDATE 테이블명
SET 변경컬럼 = 변경내용, 변경컬럼2 = 변경내용2
WHERE 조건;
- 데이터 삭제하기 : DELETE
DELETE
FROM MY_HSB
WHERE BIGO = '기혼'; -- 잘가라...
-- BIGO가 기혼인 레코드 모두 삭세
DELETE
FROM 테이블명
WHERE 조건;
- 테이블과 컬럼에 커멘트 등록하기
-- 테이블 레벨의 커멘트 정보 입력
COMMENT ON TABLE TBL_TEST IS '테스트용';
-- COMMENT ON TABLE 테이블명 IS '커멘트';
SELECT *
FROM USER_TAB_COMMENTS;
--==>> TBL_TEST TABLE 테스트용
-- 테이블에 소속된 컬럼에 대한 커멘트 데이터 입력
COMMENT ON COLUMN TBL_TEST.NAME IS '이름';
-- COMMENT ON COLUMN 테이블명.컬럼명 IS '커멘트';
SELECT *
FROM USER_COL_COMMENTS
WHERE TABLE_NAME = 'TBL_TEST';
--==>>
/*
TBL_TEST NO
TBL_TEST NAME 이름
*/
- 테이블 복사하기
CREATE TABLE TBL_TEST3
AS
SELECT *
FROM TBL_TEST;
- 테이블 데이터 전체 삭제
DELETE TBL_TEST3;
단, 테이블이 삭제되는 것이 아닌 테이블의 구조(뼈대, 특)는 그대로 남아있는 상태에서 데이터만 모두 소실(삭제)
테이블을 삭제하는 것은 DROP인데 휴지통에는 남아있기 때문에 PURGE RECYCLEBIN 문을 실행해주어야 됨.
DROP TABLE TBL_TEST3;
-- 휴지통으로 넘어한 DROP 된 테이블 영구삭제
PURGE RECYCLEBIN;
'Study📚 > Oracle' 카테고리의 다른 글
Oracle - NVL(), NVL2(), COALESCE(), 문자열 다루기 (1) | 2023.10.24 |
---|---|
Oracle - SELECT 문 관찰 (1) | 2023.10.22 |
Oracle - DUAL 테이블, 사용자 계정 생성 (0) | 2023.10.21 |
Oracle - 오라클 서버 연결 모드 (0) | 2023.10.19 |
Oracle - 데이터베이스란? (3) | 2023.10.18 |