제약조건 종류
1. 주키 - primary key(unique+not null)
2. 유일키 - unique 단점) null이 허용됨!!
3. not null - null을 허용하지 않음
4. check - 지정한 값만을 허용하는 제약조건
5. default - 기본값
6. 외래키 - foreign key
 (외부 테이블의 primary key를 참조하는 제약조건)
 외래키가 있으면 부모테이블이 드랍이 안된다!!
 

부서에 관한 정보는  scott계정에 dept 테이블에 있고
dept테이블과 emp 테이블은 deptno를 같이 가지고 있다.
dept는 emp테이블의 부모테이블이고 emp는 deptno를 참조하고 있다.


부모테이블과 자식테이블

참조당하는 테이블 부모테이블, 참조하는 테이블은 자식테이블
자식테이블은 부모테이블에서 외래키로 참조하는 컬럼을 가지고 있다.

JOIN문이란?

물리적으로 분리된 두개 이상의 테이블을 마치 하나의 테이블 처럼
보여줄 수 있는 테이블간 연결 키워드

형식)
 select 원하는 컬럼명
 from table1,table2.....
 where table1.공통컬럼값=table2.공통컬럼

scott이 근무하는 부서이름과, 스캇의 급여를 출력하시오
 
select dname,sal from emp e,dept d --as 생략한 alias 기법이다.
where e.deptno=d.deptno and ename='SCOTT'

@테이블 복제!!!

create table emp2
as
select * from emp

1)레코드까지 복사
 create table 생성할table이름
 as
 select * from 복사대상table이름

2)구조만 복사하는경우
 create table 생성할table이름
 as
 select * from 복사대상table이름
 whrer 1=0 --조건이 맞지않는것을 주어서 레코드값이 안나오게 한다.

@@@@@@
DML- CRUD
DDL - create,drop,alter

DDL중 alter
1)테이블명 바꾸기
 alter table 테이블명
 rename to 바꿀이름
2)컬럼명 바꾸기
 alter talbe 테이블명
 rename column 원래이름 to 바꿀이름
3)컬럼 삭제
 alter table 테이블명
 drop column 컬럼명
4)컬럼 변경
 alter table 테이블명
 modify(컬러명 자료형 [제약조건])
5)컬럼 추가
 alter table 테이블명
 add 컬럼명 자료형

예)

@ 컬럼명 변경

alter table emp2
rename column ename to 사원명 --(암기하자)

@ 커미션 컬럼 삭제

alter table emp2
drop column comm

@ 컬럼 추가!!

alter talbe emp2
add phone varchar(20) --애드 다음에 컬럼이 나오지 않고 컬럼명이 바로 나옴

@ 컬럼의 자료형 변경
alter table emp2
modify(사원명 varchar(20) not null)

@ 테이블명 변경
alter table emp2
rename to empp2


sqlldr가 외부파일을 흡수


 

Posted by Taoist
,