오브젝트
테입블 - 행과 열을 가진 기본 구성단위
뷰 - 여러테이블의 컬럼들을 뷰로 만들어서 사용자에게 제공해준다.
테이블에서 가져와서 - > 다른 테이블이 변경되면 뷰 값도 변경된다.
-> 논리적으로 데이타의 부분집합을 , 하나의 테이블이나 여러개의 데이타로 부터
시퀀스 - 수치값을 발생한다.
인덱스 - 사전적으론 목차, 많은 양의 데이타를 가져오는데는 속도가 느려진다,
그걸 방지하기 위해서 테이블에 목차를 생성한다.
Synomym - 오브젝트에 별도의 이름을 준다. 별멍같은....
Crate table
CREATE TABLE dept (
deptno NUMBER(2),
dname VARCHAR2(14),
location VARCHAR2(13)
);
데이타 타입에는 숫자형, 문자형 , date 형 밖에 없다.
사용자 테이블(User Tables)과 시스템 테이블(Data Dictionary)
- > DD테이블 - 오라클에 의해서 만들어지거나 유지되는 테이블이다.
기존의 테이블에서 원하는 컬럼만 뽑아서 테이블 생성가능
CREATE TABLE dept30
AS
SELECT empno, ename,
sal*12 ANNSAL, // 이것은 별명설정해준다.
hiredate
FROM emp
WHERE deptno = 30;
DESCRIBE dept30
테이블의 사용자 조정 방법 - Alter table
- ADD, MODIFY, DROP
ADD :
ALTER TABLE dept30 // 기존 칼럼 명 있으면 불가- 당연한것.
ADD (deptno int(3));
Modufy :
ALTER TABLE dept30
MODIFY (ename VARCHAR2(30)); // 오라클용
ALTER TABLE dept30
MODIFY ename VARCHAR(30); // mysql 용
- > 기존 길이보다 작아지면, 기존 데이타가 짤린다 그래서 보통 늘리는 용도로 사용한다.
Change : mysql 에서 지원한다.
CREATE TABLE test
AS SELECT * FROM emp;
ALTER TABLE test
MODIFY empno int(5); // 데이터 타입만
ALTER TABLE test
CHANGE empno no int(5); // 칼럼 명까지 바꾸고 싶을때
ALTER TABLE test
CHANGE comm comm INT; // 데이타 타입이 바꿔져서, 오류생김 유의할것
ALTER TABLE test
RENAME TO new; // 테이블 이름 바꿈
Rename :
RENAME dept TO detail_dept; // 오라클
RENAME TABLE detp TO detail_dept; // mysql
Drop :
ALTER TABLE dept30
DROP COLUMN ename; // 칼럼을 제거해준다.
Drop table 은 DDL이라서 버퍼에 쌓이지 않고 , 그래도 지워버린다.
유의할것. - > 앞에 한 트랜잭션도 모두 커밋이 되버림
Truncating a Table : 테이블 전체를 지워버린다.
TRUNCATE TABLE detail_dept;
- > 딜리트 , 드랍, 트렁케이트 차이? 드랍은 롤백 안됨 스토리지 반납은 안함 , 트렁케이트 스토리지 반납을 한다.
Adding Comments to a Table - 오라클에서만 가능 , 주석을 달자
COMMENT ON TABLE employees
IS ‘Employee Information’;