테이블
데이터를 저장할 수 있는 체계적인 도구
- 파일 또한 데이터를 저장할 수 있음
- 통신이 안되고, 동시 접속하였을 때, 데이터 유실이 발생할 수 있음
- 파일이 데이터를 저장할 수 없는 것은 아닌데 이미지와 같은 파일 크기가 클때, 주로 저장
테이블 생성
- 테이블명은 `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 |