반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- HTML
- JSP
- 테이블 태그
- VirtualBox
- 국비지원
- 데이터베이스
- 부산아이티윌교육센터
- database
- 일기
- 블로그
- 하루노트
- sql
- 설치
- 지스타 통역
- 태그
- 오류
- MIT 챌린지
- 연습
- 자바
- 클라우드기반파이썬네트워크정보시스템과정
- OSSU
- 후기
- mysql
- 정답
- 가상머신
- 이미지 태그
- Tomcat 9.0
- eclipse
- 웹 개발
- javascript
Archives
- Today
- Total
민둥 개발자의 계발 블로그
[mysql] 데이터베이스의 기본 제약조건! 본문
안녕하세요 민둥산의 민둥이입니다. 오늘은 데이터베이스의 데이터에 적용시킬 수 있는 기본 제약 조건들에 대해 알려드리겠습니다.
기본 제약조건(Constraint)이란?
기본 제약조건이란, 테이블에서 데이터를 입력할 때 옵션으로 사용할 수 있는 문법입니다. 테이블의 데이터에 각 칼럼의 설계의도에 맞는 값만 입력할 수 있게 제약 설정이 가능한데요, 예를 들면 회원가입할 때 id값이 중복되면 안 되기에 id값을 중복되지 못하게 하는 식으로 사용할 수 있습니다. DESC 명령어를 사용하여 테이블의 속성을 확인하면 KEY라는 값이 있는데요, 제약조건을 KEY라고 부르기도 합니다.
제약조건(Key)의 종류
- NOT NULL
- 데이터를 사용하여 연산할 때 NULL 값이 있는 컬럼 사용 시 연산에 다른 오류를 생성할 가능성이 있기에 NULL 값을 비허용 하는 제약조건입니다. 회원가입 화면으로 치면 꼭 입력해야 하는 아이디와 비밀번호란 등이 NOT NULL제약조건이 걸리겠네요.
- NOT NULL 값이 제약조건인 컬럼명에 데이터 미입력/NULL값 입력 시 에러가 발생합니다.
- ※주의할 점은 'NULL'이라고 문자열로 입력하는 NULL은 NULL값이 아닌 일반 문자열로 취급되기에 입력이 됩니다. 헷갈리지 마세요!
- UNIQUE
- 고유한 값만 허용하는 제약조건입니다. 다른 말로는 중복되는 값을 허용하지 않는다라고 할 수 있겠네요.
- UNIQUE 제약조건이 걸린 칼럼에 같은 데이터를 2번 입력 시 에러가 발생하여 2번째 데이터는 입력이 되지 않습니다.
- 딱 한 가지, 중복 예외 되는 값이 있습니다. NULL, 즉 데이터 미입력은 같은 칼럼 내에 여러 번 허용이 됩니다(NOT NULL 제약조건 미적용 시입니다). 엄밀히 말하면 NULL 값이라고 다 같은 값이 아닙니다. NULL이라는 값에 사실 #@asd!@#5 asd처럼 사용되지 않는 임시의 값이 입력되어 있어서 각 NULL 값도 굳이 따지자면 다른 값을 보유하고 있습니다. (아마 쓰레기 값이라고도 부릅니다)
- PRIMARY
- 기본 키 제약조건이라고도 불리는데요, 테이블을 대표하는 칼럼에 적용하는 제약조건입니다.
- NOT NULL과 UNIQUE 제약조건을 합친 제약조건으로, 데이터 미입력, 중복 값 2개다 비허용 합니다.
- 테이블 당 1번 사용 가능합니다. (하지만 제약조건들은 중복 적용 가능하기에 PRIMARY 키와 같은 제약조건은 NOT NULL과 UNIQUE를 사용하여 여러 개 만들 수 있습니다)
제약조건 적용방법
CREATE TABLE(컬럼명 데이터 타입 제약조건, 컬럼명2 데이터타입 제약조건...);
적용방법은 간단합니다. 위와 같이 데이터 타입이 오는 자리 바로 뒤에 제약 조건을 적어 주시면 됩니다. 여러 개를 적용하고 싶을 경우는 제약조건 뒤에 다른 제약조건을 더 적어 주시면 됩니다.
반응형
'Study > Database' 카테고리의 다른 글
[mysql] ORDER BY 절 (0) | 2022.05.23 |
---|---|
[mysql] 데이터베이스 WHERE 절 (0) | 2022.05.16 |
[mysql] 데이터베이스의 데이터 조회하는 법 (SELECT 문)! (0) | 2022.04.27 |
[mysql] 데이터베이스 데이터의 관리 (저장, 갱신, 삭제) (0) | 2022.04.27 |
Database 기본 개념 및 문법 (0) | 2022.04.19 |
Comments