inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

학습 효과를 높일 수 있는 꿀팁과 공유사항 (업데이트)

SQL table에 있는 Default 의미

288

지연

작성한 질문수 5

0

SQL table을 생성하면

Field, Type, Null, Key, Default, Ext

순으로 있는데

Field, Type, Null, Key, Ext은 테이블 만들때 다 다뤘던거라 알겠는데 Dafult는 항상 NULL이라고 되어있는데 어떤건지 잘 모르겠더라구요. 그리고 NOT NULL이라고 데이터 형식을 적으면 NULL 에 Yes라고 뜨는데 Default에는 NULL이라고 되어있어서 가끔 헷갈리기도 하는 것 같아요.

Default가 의미하는게 무엇이고, 왜 항상 NULL이라고 되어있는지 궁금합니다

python sql mysql dbms/rdbms 데이터-엔지니어링

답변 1

0

잔재미코딩 DaveLee

안녕하세요. 답변 도우미입니다.

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 |

```

위의 표에서:

- usernameNOT NULL이지만 Default 값이 설정되지 않았으므로 기본값이 NULL로 나타납니다.

- age는 기본값이 18로 설정되어 있습니다.

- emailNULL을 허용하며 기본값도 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