Oracle

[Oracle] 테이블 관리

2024. 12. 30. 09:45

테이블

데이터를 저장할 수 있는 체계적인 도구

  • 파일 또한 데이터를 저장할 수 있음
  • 통신이 안되고, 동시 접속하였을 때, 데이터 유실이 발생할 수 있음
  • 파일이 데이터를 저장할 수 없는 것은 아닌데 이미지와 같은 파일 크기가 클때, 주로 저장

테이블 생성

  • 테이블명은 `snake_case`방식으로 작성
  • 속성명은 테이블명_속성명으로 작성
  • 예약어가 겹치거나 이름이 겹치는 문제 예방
create table pokemon(
no number(10),
name varchar2(30),
type varchar2(9)
);

데이터 타입

데이터 타입(데이터 크기)
  • 데이터 크기는 `byte`단위
  • 데이터 크기는 최대 들어올 수 있는 길이보다 살짝 널널하게 설정
  • `number`는 용량을 많이 차지하지 않지만, `varchar2`, `char`과 같은 문자열은 크기 제한을 함

char

고정 문자열

  • 크기 미만으로 값을 넣으면 공백 처리됨
  • 문자열 크기가 고정되어 있는 상황에 사용
  • `boolean`과 같은 값도 적용 가능 ('남자' or '여자', 'y' or 'n')

 

varchar2

가변 문자열

  • 크기는 제한하지만, 그 안의 크기에서 자유롭게 사용 가능
  • `varchar`는 권고되지 않음
  • 한글은 3바이트, 영어나 숫자 등은 1바이트 (`utf-8`)
    • `ms949` 방식은 한 글자 당 2바이트

 

number

숫자

  • 자리수를 지정하지 않으면 기본 값 38자리 지정
  • 값이 확실하지 않은 경우는 크기 지정하지 않음
  • 정수와 소수 자리수를 정하려면 `number(n,m)` 사용 (n은 총 자리수, m은 소수 자리수)

 

timestamp

날짜

  • 연/월/일/시/분/초/밀리초 형태로 저장
  • `YYYY-MM-DD HH24:MI:SS:FF` 형식으로 지정
`Y` 연도
`M` 월
`D` 일
`HH` 12시간
`HH24` 24시간
`MI` 분
`SS` 초
`FF` 밀리초

 

제약조건 (constraints)

기대하는 데이터만 추가가 가능하도록 강제하는 키워드

check

특정값

  • 컬럼에 대한 조건 지정 가능
  • 문자열 외따옴표 사용, 쌍따옴표는 별칭 의미
  • `boolean`에 대한 값도 처리 가능
  • `null` 값을 제외하고 검사
check(country_popualtion > 0)

 

not null

필수값

  • `null`값이 들어오지 못하는 컬럼에 지정 가능
lecture_name varchar2(90) not null
속성명 데이터타입 not null

 

unique

고유키

  • `not null`보다 뒤에 옴
student_level number unique
속성명 데이터타입 unique

 

default

기본값

  • `not null`보다 앞에 옴
item_early char(1) default 'N' not null
속성명 데이터타입 default 기본값

 

primary key

기본키

  • 중복과 변경이 안되는 대표값
  • 변경은 가능하지만 권장하지 않음
  • `not null` 포함되어 있음
pokemon_no number(10) primary key

not null unique와 primary key 차이

내용값의 변경이 가능하면 not null unique를 사용하고 값의 변경이 불가능하다면 primary key를 사용한다.


테이블 정보 확인

desc pokemon;
desc 테이블명;

테이블 수정

 

컬럼 추가 (alter table add)

한 개 추가

alter table board add board_group number not null;
alter table 테이블명 add 컬럼명 데이터타입;

 

여러 개 추가

alter table board add(
	board_group number not null,
	board_target number,
	board_depth number not null,
	check(board_group > 0),
	check(board_target > 0),
	check(board_depth >= 0)
);
alter table 테이블명 add 항목정보;

 

컬럼 삭제 (alter drop column)

alter table board drop column board_group;
alter table 테이블명 drop column 컬럼명;

 

컬럼 수정 (alter table modify)

컬럼의 데이터 타입이나 크기 등을 수정할 때 사용

alter table board modify board_group number(10) not null;
alter table 테이블명 modify 컬럼명 데이터타입;

 

테이블 이름 변경 (alter table rename)

alter table board rename to board2;
alter table 테이블명 rename to 새테이블명;

테이블 삭제

drop table pokemon;
drop table 테이블명;

 

테이블 및 참조된 데이터 삭제

  • 참조된 데이터를 자동으로 삭제
drop table pokemon cascade constraints;

 

'Oracle' 카테고리의 다른 글

[Oracle] 연산자  (0) 2025.02.09
[Oracle] sequence  (0) 2024.12.30
[Oracle] DBeaver 개발 환경 세팅  (0) 2024.12.30
[Oracle] 데이터 관리  (0) 2024.12.30
[Oracle] Oracle 개발 환경 세팅  (0) 2024.12.30
'Oracle' 카테고리의 다른 글
  • [Oracle] sequence
  • [Oracle] DBeaver 개발 환경 세팅
  • [Oracle] 데이터 관리
  • [Oracle] Oracle 개발 환경 세팅
개발하는 벌꿀오소리
개발하는 벌꿀오소리
겁없는 벌꿀오소리처럼 끊임없이 도전하자!
  • 글쓰기 관리
  • 개발하는 벌꿀오소리
    벌꿀오소리의 개발 노트
    개발하는 벌꿀오소리
  • 전체
    오늘
    어제
    • 분류 전체보기 (74)
      • Java (60)
        • 기본 (23)
        • 모듈 (8)
        • 자료구조 (5)
        • 알고리즘 (0)
        • 파일 입출력 (5)
        • JDBC (5)
        • Spring Boot (14)
      • Oracle (13)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 공지사항

  • hELLO· Designed By정상우.v4.10.3
개발하는 벌꿀오소리
[Oracle] 테이블 관리
상단으로

티스토리툴바