Mysql 의 NULL 과 Empty String

1863 단어 mysqlnullemptystring
최근 Mysql 에 새로 접 촉 했 습 니 다.어제 새 테이블 은 테이블 구조 정 보 를 저장 하 는 데 사 용 됩 니 다.

create table tablist(TABLE_SCHEMA varchar(40),TABLE_NAME varchar(40),COLUMN_NAME varchar(40),COLUMN_TYPE varchar(40),
IS_NULLABLE varchar(10),COLUMN_DEFAULT varchar(40),COLUMN_COMMENT varchar(1000),REMARK varchar(2000));
insert into tablist(TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,COLUMN_COMMENT)
select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,COLUMN_COMMENT
from information_schema.`COLUMNS` where TABLE_SCHEMA='leo';
그리고 tablist 표를 조회 합 니 다.

어떤 열 에 comment 가 없 는 지 보 세 요.그래서:

select * from tablist where COLUMN_COMMENT is null;
알 아 낸 결과 엠 티 세트 라 니.그러나 위 검색 결과 와 navicat 에서 알 수 있 듯 이 null 값 은 결과 에'null'이라는 단 어 를 집중 적 으로 표시 하고 빈 문자열 은 비어 있 습 니 다.
자 료 를 찾 아 보 니 Mysql 의 null 값 과 빈 문자열 이 다 릅 니 다.여기 가 이상 합 니 다.COLUMNCOMMENT 는 insert 를 거 친 후에 null 값 이 빈 문자열 로 바 뀌 었 습 니 다.(원인 은 밝 혀 지지 않 았 습 니 다.)
사용select * from tablist where COLUMN_COMMENT='';조회 가 정상 입 니 다.
NULL columns require additional space in the row to record whether their values are NULL.For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.
Mysql 의 myisam 엔진 에서 null 값 은 추가 저장 공간(1bit)을 차지 하고 빈 문자열 은 공간 을 전혀 차지 하지 않 습 니 다.또한 null 값 은 B 트 리 색인 에 저장 되 지 않 고 데이터 양 이 많 을 때 심각 한 성능 문 제 를 일 으 킬 수 있 습 니 다.
둘 의 조회 방식 도 다르다.null 값 조 회 는 is null/is not null 조 회 를 사용 하고 empty string 은=또는!=조회 하면 됩 니 다.
총결산
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 Mysql 의 NULL 과 Empty String 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기