kwohyuno 2023. 3. 15. 17:49

delete from 테이블 ; 

 

rollback ; 

 

 

--테이블에 컬럼 추가

alter table 테이블명 add 컬럼명 자료형() ; 

 

--컬럼 명 변경

alter table 테이블명 rename column 예전꺼 to 나중꺼; 

 

--제약 조건을 제거

alter table 테이블명 drop CONSTRAINT 제약조건명;

 

--제약조건 추가

alter table person ADD CONSTRAINT 제약조건명;

 

--GENDER에 '남자', '여자' 외의 데이터를 넣으면 오류가 발생되도록 check 제약조건을 추가해보자

alter table person ADD CONSTRAINT PERSON_CK_GENDER CHECK (GENDER IN ('남자', '여자')); 

 

--시퀀스 생성하는 방법 (시퀀스명을 seq1로 가정)

create SEQUENCE seq1; 

 

--시퀀스 제거

drop sequence seq1;

 

 

DB정규화

DB 서버의 메모리를 낭비하지 않기 위해서 어떤 테이블을 식별자로 가지는 여러개의 테이블로 나누는 과정을 정규화라 한다

정규화된 데이타베이스는 중복이 최소화되도록 설계된 데이터베이스로, 메모리를 절약할 수 있고 구조화된 시스템으로 인해 관리가 편하다. 

다만, 조회비율이 매우 높은 시스템의 경우에는 테이블간의 join 연산이 반복적으로 이뤄지기 때문에 질의 응답 속도가 살짝 늦어질 수 있다 

 

예시)  student 테이블을 외부키로 갖는 새로운 테이블 stuinfo.    stuinfo의 num은 student의 num값만 넣을 수 있도록 설정

 

alter table stuinfo add constraint info_fk_num foreign key(num) references student(num);

만약 stuinfo 의 num에 3을 추가했다면 student 테이블에서 num=3인 데이타는 삭제할 수 없다 

 

단 제약조건 추가시 on delete cascade를 추가했을 경우 부모테이블의 num=3인 데이타 삭제시 stuinfo의 num=3인 모든 데이터는 자동 삭제된다 

 

조회 )   select sd.num, name, height, ban, addr, hp, java, spring 

from student sd, stuinfo si

where sd.num = si.num; 

 

outer join )

select sd.num, name, height, ban, addr, hp, java, spring

from student sd, stuinfo si

where sd.num=si.num(+) and addr is null; 

 

 

자식 레코드가 있을 경우 부모 레코드를 먼저 삭제할 수 없기에 stuinfo의 데이타를 먼저 삭제 후 student의 데이타를 삭제할 수 있다 

테이블 제거시 서브테이블을 먼저 제거 후 부모 테이블 제거

drop table stuinfol

drop table student;

 

 

 

 

 

 

 

댓글수0