SQL table에 있는 Default 의미
288
작성한 질문수 5
SQL table을 생성하면
Field, Type, Null, Key, Default, Ext
순으로 있는데
Field, Type, Null, Key, Ext은 테이블 만들때 다 다뤘던거라 알겠는데 Dafult는 항상 NULL이라고 되어있는데 어떤건지 잘 모르겠더라구요. 그리고 NOT NULL이라고 데이터 형식을 적으면 NULL 에 Yes라고 뜨는데 Default에는 NULL이라고 되어있어서 가끔 헷갈리기도 하는 것 같아요.
Default가 의미하는게 무엇이고, 왜 항상 NULL이라고 되어있는지 궁금합니다
답변 1
0
안녕하세요. 답변 도우미입니다.
Default는 SQL 테이블을 생성할 때 각 필드에 대해 기본값을 설정할 수 있는 옵션입니다. 이 기본값은 해당 필드에 값을 명시적으로 지정하지 않았을 때 자동으로 입력되는 값입니다.
### Default의 의미
- 기본값: 특정 필드에 데이터가 삽입되지 않았을 때 자동으로 설정되는 값입니다.
- 예를 들어, age라는 필드의 기본값을 18로 설정하면, 새 레코드를 삽입할 때 age 필드에 값이 주어지지 않으면 자동으로 18이 입력됩니다.
### Default가 항상 NULL인 이유
- 기본적으로, 필드의 Default 값은 명시적으로 설정하지 않으면 NULL로 설정됩니다. 즉, 해당 필드에 값이 지정되지 않으면 NULL이 저장됩니다.
- Default 값이 NULL로 설정된 것은 필드가 특별히 기본값을 필요로 하지 않음을 나타냅니다.
### NOT NULL과 Default의 관계
- 필드에 NOT NULL 제약 조건을 설정하면, 해당 필드에 NULL 값을 저장할 수 없습니다.
- 그러나 Default 값은 여전히 설정되지 않으면 NULL일 수 있습니다. 이 경우, 값을 입력하지 않고 새 레코드를 삽입하려고 하면 오류가 발생합니다.
- 따라서 NOT NULL 필드에는 기본값을 명시적으로 설정하는 것이 좋습니다.
### 예시
아래는 테이블을 생성하는 예시입니다.
```sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
age INT DEFAULT 18,
email VARCHAR(100) DEFAULT NULL
);
```
이 예시에서:
- username 필드는 NOT NULL로 설정되어 있어 값이 반드시 입력되어야 합니다.
- age 필드는 값을 입력하지 않으면 기본값으로 18이 입력됩니다.
- email 필드는 값을 입력하지 않으면 NULL이 입력됩니다.
따라서 테이블을 조회하면 다음과 같이 나올 수 있습니다:
```plaintext
Field | Type | Null | Key | Default | Extra
---------|---------------|------|-----|---------|------
id | INT | NO | PRI | NULL | auto_increment
username | VARCHAR(50) | NO | | NULL |
age | INT | YES | | 18 |
email | VARCHAR(100) | YES | | NULL |
```
위의 표에서:
- username은 NOT NULL이지만 Default 값이 설정되지 않았으므로 기본값이 NULL로 나타납니다.
- age는 기본값이 18로 설정되어 있습니다.
- email은 NULL을 허용하며 기본값도 NULL로 설정되어 있습니다.
요약하자면, Default 값은 해당 필드에 값이 제공되지 않았을 때 자동으로 입력되는 값이며, 기본적으로는 NULL로 설정됩니다. NOT NULL 필드의 경우, 기본값을 명시적으로 설정하는 것이 실수를 방지할 수 있습니다.
감사합니다.
잔재미코딩 드림
FOREIGN KEY 정리하기, 영상대로 SQL코드 복붙해도 안되요.
0
18
1
실습을 따라하는데 데이터베이스가 보이지 않아요
0
55
1
섹션1 4강부터 강의 실행 안됨 이슈
0
77
1
강의 자료 다운로드 관
0
91
1
강의 영상이 안나와요..
0
83
1
섹션4 화면 자체가 안나와요
0
118
1
강의 화면이 안 보이고, 목소리밖에 안나와요 ;;
0
116
1
데이터 삭제 질문
0
123
1
mysql 설치가 되지 않습니다.
0
1390
3
강의 결과 질문 - SQLD, 데이터베이스 설계, 프로젝트 구축 하여 취업
0
147
1
지마켓 파일 불러왔는데, 테이블이 생성이 안됩니다
0
119
1
실습 코드 깃허브 업로드
0
145
1
sql_safe_updates 옵션
0
154
1
sql 설치 문제
0
1424
2
서브쿼리를 JOIN으로 바꾸기
0
157
1
중고급 SQL과 실전 데이터 문의
1
159
1
(맥환경) workbench 이용할 때 패스워드 입력 안해도 자동으로 활성화 가능해져요..
0
353
1
강의 커리큘럼 질문 있습니다.
0
176
1
강의 자료 이미지가 보이지 않습니다.
0
163
1
Join 구문에서 메인 테이블
0
179
1
예제문제 추가 쿼리 질문
0
204
2
강의 화면 출력이 되지 않는 현상
0
211
1
파이썬으로 다루는 MySQL
0
208
1
JOIN 활용 SQL 연습문제
0
179
1





