[database] 데이터베이스(DB, Database) 널(null)과 공백의 차이

업데이트:

널(null)과 공백의 차이

참고링크

운영체제 프론트엔드 백엔드 데이터베이스 인프라
리눅스구조 js필터 아파치에러로그 행삭제 아파치스쿱
프로세스 헬로월드 웹서버개념 ES기초 로그분석
네임스페이스 프로젝트생성 아파치설치 MySQL기초 beeline
디렉토리 헤더생성 flask연동 큐브리드 하둡기초
리다이렉션 async-get 장고MsSQL연결 null공백 나이파이
쓰레드 async-post 장고MySQL연결 MySQL설치(win) 백본
라즈베리파이설치 로그인페이지 장고inpectdb MySQL테이블생성 제플린
OSI7계층소개   장고read   SSL인증
OSI1계층   장고insert   커버로스
OSI2계층   장고put   도커개념
OSI3계층   장고del   도커설치
OSI4계층   flask한글요청   도커기초
OSI5,6,7계층       도커이미지
DNS서버       컨테이너네트워크
DHCP       도커API
bashrc       도커컴포즈
bash       도커볼륨
ifconfig       장고이미지
소켓프로그래밍       도커postgre
리눅스유저생성       도커이미지삭제
netstat포트열기       도커Redis
컴파일러       k8s구조
운영체제vs커널       k8s설치
작업스케쥴링       k8s서비스배포
디스크추가       POD네트워크
aws유저추가       퍼시스턴트볼륨
기초명령어       k8s에러
포트번호        

참고 링크

오라클(oracle)의 경우 null과 공백(““)은 같다고 한다. 즉, 해당 필드에 해당하는 값을 공백으로 넣는다면 자동으로 null값으로 표시된다. 하지만 mysql의 경우 공백을 넣게 되는 경우 공백으로 나타나고, 이는 null값과 다른다. 그럼 mysql을 이용할때 null값은 어떻게 넣을 수 있을까?

  • mysql에 null값 넣기 예제

DB명은 a, table명은 t1이라고 하면 a.t1은 아래와 같다.

name age hobby
kim 30 soccer
lee 17 computer

이때 널값을 포함하는 새로운 레코드(record)를 삽입(insert)하고 싶을때는 아래와 같이 해당 필드를 애초에 표시하지 않는다.

insert into a.t1(name, age) values (park, 25)

그러면 아래와 같은 결과를 확인할 수 있다.

name age hobby
kim 30 soccer
lee 17 computer
park 25 null

주의할 점은 필드가 세개라고해서 꼭 insert할때 필드를 세개 모두 쓰지 않는 다는 것이다. 만약 자신이 꼭 필드명을 다 쓰고 싶다면 아래와 같이 넣자.

insert into a.t1(name, age, hobby) values (park, 25, null)