테이블을 관리하는 명령어로는 3가지가 있다.
create 생성 -----> 테이블을 생성하면 alter와 drop으로 수정, 삭제함 drop이나 delete는 회사가 망하지 않는 이상 쓰지 않는다.
alter 수정
drop 삭제
SQL> DESC 테이블명; -> 명령어로 테이블 구조를 볼 수 있다.
table, index, sqeuence, | view(alter없음, 실체가 없음,물리적인 공간차지X),userm tablespace
segment (실제로 메모리를 차지하는 영역)
데이터의 내용은 바뀔지라도 데이터의 구조는 안바뀐다.
테이블 생성과 데이터 타입의 이해
테이블 생성과 삭제
SQL> CREATE TABLE 테이블 (
2 컬럼 데이터_타입 [DEFAULT default값] [컬럼 레벨 제약조건],
3 컬럼 데이터_타입 [DEFAULT default값] [컬럼 레벨 제약조건],
4 ......
5 [테이블 레벨 제약조건],
6 .....
7 );
drop table 테이블; 하면 purge recyclebin;으로 휴지통 비우기
dba_ : sys만 볼 수 있다.
user_ 소유한 테이블 일반사용자
all_ 소유한 테이블 뿐만 아니라 억세스 가능한 테이블을 볼 수 있음 일반사용자
딕셔너리 안에있는 테이블은 대문자이다.
SQL> SELECT table_name
2 FROM user_tables;
SQL> SELECT table_name, column_name, data_type, data_length
2 FROM user_tab_columns
3 [WHERE table_name = '테이블'];
테이블 생성에서 이름 규칙
- 문자로 시작한다.
- 30자 이내로 한다.
- 영문, 숫자, _, $, #만을 사용한다.
. 한글 사용은 가능하지만 되도록 사용하지 않는 것이 좋다.
- 테이블의 이름은 동일한 유저(스키마) 안에서 유일해야 한다.
- 예약어는 사용이 불가능하다.
- 대소문자를 구별하지 않는다.ITCLASS - 79 - B&A
. 생성할 때 사용한 문자와는 관계없이 모든 이름은 대문자로 정의된다.
. 테이블 이름은 딕셔너리에 저장되는데, 모두 대문자로 저장된다.
데이터 타입
- 오라클은 다양한 데이터 타입을 제공한다. 다음은 그 중 많이 사용되는 데이터 타입들이다.
- 문자 타입
. VARCHAR2, CHAR, LONG, CLOB
- 숫자 타입
. NUMBER
- 날짜 타입
. DATE
- 이진 타입
. RAW, LONG RAW, BLOB, BFILE
- ROWID 타입
. ROWID : 각행을 구별할수있는 고유한 위치값(index에 저장되어 있음)
제약 조건 이해와 설정 : PK, FK
오라클에서 제공되는 제약 조건
- PRIMARY KEY (주키, 주식별자) : PK는 테이블의 모든 데이터를 유일하게 식별해주는 컬럼이다.
- FOREIGN KEY (외부키, 외부식별자) : FK는 테이블 간 관계(Relationship)를 의미한다.
- UNIQUE KEY
- NOT NULL
- CHECK
PK
예를 들어 student 테이블의 학번은 나머지 컬럼의 결정인자
주식별자는 중복되지 않아야한다.
score 테이블에서는 sno와 cno를 합친게 주식별자가 된다.
sno -> (sname, sex, major, avr, syear ...)
eno -> (ename, job, dno,...)
score
(sno,cno) -> result
주식별자
FK (참조하는)
Primary Key 설정
SQL> CREATE TABLE 테이블 (
2 ..... 3 CONSTRAINT 제약_조건 PRIMARY KEY (컬럼)); -> 테이블레벨 제약조건
SQL> CREATE TABLE 테이블 (
2 컬럼 데이터_타입 CONSTRAINT 제약_조건 PRIMARY KEY, -> 컬럼레벨 제약조건
3 ......
Foreign Key 설정
SQL> CREATE TABLE 테이블 (
2 ..... 3 CONSTRAINT 제약_조건 FOREIGN KEY (컬럼)
4 REFERENCES 참조할_테이블 (참조할_컬럼) [ON DELETE CASCADE]);
SQL> CREATE TABLE 테이블 (
2 컬럼명 데이터_타입 CONSTRAINT 제약_조건 FOREIGN KEY
3 REFERENCES 참조할_테이블 (참조할_컬럼)
4 [ON DELETE CASCADE],
5 .....
제약 조건 조회
SQL> SELECT c.table_name, c.constraint_name, c.constraint_type, s.column_name
2 FROM user_constraints c, user_cons_columns s
3 WHERE c.constraint_name = s.constraint_name
4 AND c.table_name in (검색_대상_테이블_목록)
5 ORDER BY c.table_name;
SQL> SELECT p.table_name 상위테이블, p.constraint_name 상위제약조건,
2 c.table_name 하위테이블, c.constraint_name 참조제약조건
3 FROM user_constraints p, user_constraints c
4 WHERE c.r_constraint_name=p.constraint_name
5 AND p.table_name in (검색_대상_테이블_목록)
6 ORDER BY p.table_name;
'SQL' 카테고리의 다른 글
SQL 제약 조건 UK, NOT NULL, CHECK (0) | 2022.11.08 |
---|---|
오라클 트렌젝션, 데드락 (0) | 2022.11.08 |
SQL 명령어 그룹함수와 HAVING절, GROUP BY절, (0) | 2022.11.08 |
SQL 명령어 서브쿼리,중복제거,DML문의 이해 (0) | 2022.11.08 |
오라클 사용자 계정 만들기, 데이터베이스 서버 네트워크 연결 (0) | 2022.11.08 |