Transaction
- 데이터 베이스에서 사용되는 쪼갤 수 없는 업무처리의 단위
- 하나의 작업 내부의 과정이 잘못되면 전부 취소 된다. ex) 송금

Roll back
commit
commit 과 Roll back은 데이터(DML)에 한정된다.
DCL, DDL 은 되돌릴 수 없다.
aurocommit 확인 방법
-
auto commit 설정 여부 -> select @@autocommit;
-
set autocommit = 1; -- autocommit 설정 on
-
set autocommit = 0; -- autocommit 설정 off
constraint (제약조건)
- 제약조건은 컬럼에 데이터를넣을 경우 특정한 조건을 만족시켜야 할 경우 사용 한다.
1. Primary key ( 기본키 제약조건 )
- 중복과 null을 허용하지 않음
- 테이블 종속적이다. (하나의 테이블에서 하나의 PK)
- 하나의 컬럼으로 하나의 PK를 만들 수 있지만 여러개의 컬럼을 합쳐서 만들 수 도 있다.( 최대 16개)
1-1 primary key 생성 방법
alter table employees add constraint primary key (emp_no);
alter table employees add primary key (emp_no);
- upsert : 중복되는 키 값이 있으면 수정, 없으면 삽입
2. combination key (복합키)
- 하나의 컬럼으로 하나의 키본키를 구성하는 것이 가장 좋으나.
어쩔수 없는 경우 다수의 컬럼을 조합해서 기본키를 생성
- 외래키를 이용해 복합키를 만드는 경우가 있는데, 이경우 UPDATE 나 INSERT에 제한을
주므로 사용하지 않는 것이 좋다
3. not null
- null을 허용하지 않음
- not null은 제약조건이지만 속성으로 취급한다
-- alter table [테이블명] modify 컬럼명;
alter table pk_test modify second_col varchar(4) not null;
select *from information_schema.TABLE_CONSTRAINTS where TABLE_NAME = 'pk_tow_test';
- 제약조건 삭제
- alter table [테이블] Drop [제약조건 종류];
alter table pk_tow_test drop Primary key;
Relation Data Base Mangerment System
1. 참조 제약 조건 ( 외래키 제약조건 )
1) 테이블 생성 시 추가
2) 테이블 생성 후 추가
- alter table [테이블명] add constraint 제약조건종류 references [가저올 테이블](가져올 컬럼)
alter table child_table add constraint foreign key(user_id) references parent_table(user_id);
2. 연계 참조 무결성 제약조건
- 부모자식간에 논리적으로 앞 뒤말이 맞아야한다는 제약조건
-> 참조한 상태로 논리적으로 연결되어 있다.
- 부모한테 없는 값을 외래키에 넣으려고 하면 에러가 나타난다
-> 왜? 연계 참조 무결성 제약조건이 깨지므로
-> 부모테이블의 기본키는 user04가 없지만, 자식이 그것을 쓰려고 했다 -> 부모 없는 자식은 없다
부모 테이블을 지워보자
- ※ 연계 참조 무결성을 해치지 않고 삭제 하려면 자식이 먼저 삭제되고, 이후에 부모가 삭제 되어야 한다.
- ※ 이 과정을 자동으로 수행해주는 on delete cascade 옵션이 있다.
- 단. 테이블을 생성 할때 옵션을 넣어주어야 한다.
3. Unique 제약조건
- 중복을 허용하지 않는 제약 조건
- 테이블에 다수 존재 할 수 있다.
- unipue + not null = pk -> 기본키가 없다고 하면 pk가 될수있다
-> 그래서 후보키라고도 불리운다 ( 기본키가 될 수 있는 조건을 갖추므로.. )
alter table [테이블명] add constraint [제약조건종류](컬럼명)
4. Check 제약조건
- 조건이 맞지 않으면 받지 않는 제약조건
- 주의 사항 : 조건은 기존 데이터가 만족해야할 조건을 걸어야 한다.
- 안쓰는 이유 : 조건의 유연성이 떨어짐 , 조건 변경시 DDL을 수정해야 한다.
-> 이럴경우 자바에서 먼저 수정해주면 된다
- ※ 어떤 조건이 걸려 있는지 파악하기 쉽지 않기에 잘 사용하지 않음
질문지
- DML, DCL, DDL
2 Transaction?
- roll back , commit ?
3.1 order by 란 / order by 의 위치
-
autocommit ?
-
기본키 제약조건
-
복합키 제약조건
-
외래키?
-
식별관계와 비식별관계
-
unique 제약조건?
9.1 테이블에 몇개 까지 존재하는지
- 연계 참조 무결성 제약조건
11 특정한 옵션을 통해 삭제해주는 것은?