기초공사 (html,css,javascript)

sql developer - 조금씩 알아가다 본문

카테고리 없음

sql developer - 조금씩 알아가다

에스프레소라떼 2023. 4. 26. 18:32

테이블을 만들때는 테이블의 구조에 필요한 제약조건을 설정해줘야한다.

기본키 (primary key)와 외래키(foreign key)가 대표적인 제약조건이다.

기본키 - 학번, 아이디, 사번 등고 같은 고유한 번호에 의미하는 열에

외래키 - 기본키와 연결하는 열에 지정한다.

고유키 - 이메일, 휴대폰과 같이 중복되지 않는 열에 지정(이메일,휴대폰)

 - 회원의 평균키는 200cm를 넘지 않겠죠? 이때 실수로 200을 입력하는 것을 방지하는 제약조건이 '체크'(check)이다.

매번 입력하기 귀찮다면 '기본값' 을 설정할 수 있다.

값을 꼭 입력해야하는 not null, 제약조건도 있따.

제약조건은 데이터의 무결성을 지키기위해 제한하는 조건이다.
 - 데이터의 무결성이란 '데이터에 결함이 없음'을 의미한다.

 간단한 예로 네이버의 회원 아이디가 중복되면 어떤 일이 일어날까?

상당한 혼란이 일어날것이다.

이런것이 바로 데이터의 결함이고 이런 결함이 없는 것이 '데이터의 무결성' 이라고 표현한다.

이러한 결함을 미리 방지하기 위해서 회원 테이블의 아이디를  '기본키'로 지정할수있다.

기본키의 조건은 '중복되지 않고, 비어 있지도 않음' 이므로, 실수로 중복된 아이디를 넣으려고 해도 입력조차 불가능하다.

 

.TTS_FIRST라는 테이블을 만들었따.

기본키를 생성안하고, null로 지정이 됬었다.

 

추후 수정할일이 있어서 아래사진처럼 편집에 기본키를 설정하고 '널이아님'체크를 하니 오류가 나서 수정이 안된다.

 

ORA-02296: (PVOICE_TEMP.) 사용으로 설정 불가 - 널 값이 발견되었습니다.

ALTER TABLE TTS_FIRST  
MODIFY (WORDS NOT NULL)



not null / null 

과제 : not null을 허용할수없는 이유

null - 빈값
not null - 빈값이 아니다 값이 있다.

값을 허용할 수 없다. -----> 이미 값이 없다.이미 null이다.

수정 : 데이터가 몇개 없어서 테이블을 다시 만들고 처음부터 기본키를 정해주고  데이터유형을 number로 선택 후 ;널이아님을 체크함.

 

alter 사용법의 많은 방법이 있으나,

 

실 개발자님 의견을 들어보니.

이럴경우는 데이터를 백업하고 테이블을 다시 만든다고 한다.

 

이 부분은 나중에 검색을 다시 해봐야겠다.