create
-
테이블 생성
create table 테이블명(
열이름 데이터타입 [옵션],
열이름 데이터타입 [옵션]
);
create table classes(
cno number(4) constraint classes_PK_con primary key,
cname varchar2(255) not null
);
constraint : 제약조건을 추가하겠다.
classes_PK_con : 별칭
생성 후 테이블 누르고 새로고침 누르면 됨.

데이터타입 - 문자형
char(숫자) - 문자형
- varchar2와 같지만 고정길이 문자 (짧은 문자)
- 많이 사용되지 않음.
varchar2(숫자) - 문자형
- 숫자 byte의 가변길이 문자
- 최대 4000byte까지 가능
- ex) 제목
long - 문자형
- 가변길이 문자형 데이터
- 최대 2G.
- 테이블당 하나의 컬럼만 생성 가능.
- ex) 게시글
number(n) - 숫자형
number(n, m) - 숫자형
- n자리 가변길이 정수와 m자리 가변길이 소수점.
date : 날짜형
코멘트
- 많이 사용하지 않음.
- 생성
- 테이블 : comment on table 테이블명 is '쓸 말.
- 컬럼 : comment on column 테이블명.컬럼명 is '쓸 말.
- 수정
- 테이블 : comment on table 테이블명 is '수정할 말'
- 컬럼 : comment on column 테이블명.컬럼명 is '수정할 말'
(덮어쓰기임)
- 삭제
- 테이블 : comment on table 테이블명 is ''
- 컬럼 : comment on column 테이블명.컬럼명 is ''
- 조회
select * from user_tab_comments;
select * from user_col_comments;
제약조건
- constraint 종류
- primary key(기본키) : unique와 not null이 포함되어 있음.
- foreign key(외래키) : 다른 테이블의 기본키 값을 연결해서 현재 테이블에 가져다 쓰는 것 (연결된 것)
- fk 걸어놓으면 fk키의 원 테이블 삭제 하기 번거로워서 보통 사용하지 않는다. (정석은 사용하는 것)
- unique : 해당 컬럼에 중복되는 데이터 금지
- NOT NULL : 해당 컬럼은 무조건 정보가 들어가 있어야 한다.
- 최대한 null값이 없는 테이블로 설계하는 걸 추천.
- NULL들어가게 하려면 조건을 NULL로 수정하면 됨
- 사용 이유
- 각 테이블에 해당 컬럼이 어떤 조건을 가져야하는지 결정하고, 그리고 해당 조건을 만족하지 않는 정보가 들어올 때 오류를 나타내준다.
- 잘 못 된 정보가 들어가지 않게 제약을 걸어주기 위함.
- select * from user_constraints; : 유저가 소유하고 있는 제약조건 검색
- select * from user_cons_columns; : 컬럼별로 소유하고 있는 제약조건 검색
create table student(
s_seqno number(4) constraint studentPK_s_seqno primary key,
s_name varchar2(50) not null,
s_phone varchar2(50),
s_regDate date not null,
c_seqno number(4) constraint studentFK_c_seqno REFERENCES classes(c_seqno),
t_seqno number(4) constraint studentFK_t_seqno REFERENCES teacher(t_seqno)
);
foreign key는 t_seqno number(4) constraint studentFK_t_seqno REFERENCES teacher(t_seqno) 이렇게 해야한다. references 테이블명(컬럼명)