Search

RDBMS NULL

Image
220px-Db-omega.svg.png
Category
Start.Date
End.Date
Member

RDBMS VERSION

RDBMS
VERSION
VERSION CHECK SQL
TIBERO
7 FS02 (Compiled at Jun 20 2022 11:29:40 build seq 202489 init rev {2022-03-10})
SELECT * FROM VT_VERSION;
ORACLE
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SELECT * FROM V$VERSION;
MySQL
8.0.29
SELECT VERSION();
MariaDB
10.8.3-MariaDB-1:10.8.3+maria~jammy
SELECT VERSION();
MS SQL Server
Microsoft SQL Server 2022 (CTP2.0) - 16.0.600.9 (X64)
SELECT @@VERSION;
IBM Db2
DB2 v11.5.7.0
SELECT * FROM SYSIBMADM.ENV_INST_INFO;
PostgreSQL
PostgreSQL 14.3 (Debian 14.3-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
SELECT VERSION();
CUBRID
11.2.0.0658
SELECT VERSION();

NULL

•
NULLģ˜ ģ¶”ģƒģ ģø ģ˜ėÆø
ā—¦
ėÆøģ§€ģ˜ ź°’
ā—¦
ģ•Œ 수 ģ—†ėŠ” ź°’
ā—¦
정핓지지 ģ•Šģ€ ź°’
•
NULL ⇒ ģŠ¤ķģ…œ 마커

NULL ģ €ģž„

RDBMS
ORACLE
TIBERO
MySQL
MariaDB
MS SQL Server
PostgreSQL
IBM Db2
SQLite
CUBRID
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
'NULL'
string
string
string
string
string
string
string
string
string
' '
string
string
string
string
string
string
string
string
string
''
NULL
NULL
string
string
string
string
string
string
string
•
'' ⇒ empty 값에 NULL ė˜ėŠ” string으딜 RDBMS ė§ˆė‹¤ 다넸 ź²½ģš°ź°€ ģžˆģŒ
ģ“źø°ģ¢… RDBMS간에 ė°ģ“ķ„° ė§ˆģ“ź·øė ˆģ“ģ…˜ ģž‘ģ—… ģˆ˜ķ–‰ ģ‹œ ģ£¼ģ˜ ORACLE (NULL) ⇒ PostgreSQL(NULL) : 문제 ģ—†ģŒ PostgreSQL('') ⇒ ORACLE(NULL) : '' ź°’ģ“ NULL딜 ģ¹˜ķ™˜ ė˜ģ–“ 결과가 ė‹¬ė¼ģ§€ėŠ” ė¬øģ œź°€ ė°œģƒķ•  수 ģžˆģŒ // '' ź°’ģ„ ģž…ė „ ģ‹œ ORACLE NOT NULL ģ œģ•½ 씰걓에 ģ˜ķ•“ ģž…ė „ ģ‹¤ķŒØ ķ•  수 ģžˆģŒ (사전 ķ˜‘ģ˜ ķ•„ģš”)
NULL ģ €ģž„ SQL

NULL 크기

•
정핓지지 ģ•Šģ€ ź°’ģ“ė¼ź³  ķ•˜ģ§€ė§Œ ė°ģ“ķ„° ė² ģ“ģŠ¤ģ— 정핓지지 ģ•Šģ€ ź°’ģ“ė¼ź³  ė§ˆķ‚¹ ģ •ė„ėŠ” ķ•“ģ£¼ģ–“ģ•¼ķ•˜źø° ė•Œė¬øģ— ė¶„ėŖ… NULLė„ ģ •ķ•“ģ§„ 크기가 ģžˆģŒ

TIBERO

ORACLE

TIBERO | ORACLE

MySQL / MariaDB

PostgreSQL

MS SQL Server

CUBRID

IBM Db2

RDBMS별 NULLģ“ HEAP에 ģ €ģž„ė˜ėŠ” ģ‹¤ģ œ 크기
RDBMS
ORACLE
TIBERO
MySQL
MariaDB
MS SQL Server
PostgreSQL
IBM Db2
CUBRID
NULL 크기 (byte)
0
0 ė˜ėŠ” 1
0
0
0
0
-
0 ė˜ėŠ” ģ„ ģ–øėœ ė°ģ“ķ„° ķƒ€ģž…ģ„ 따름

NULL 처리 ė°©ģ‹

SELECT NULL

SELECT 절 NULL ģ—°ģ‚°
RDBMS
ORACLE
TIBERO
MySQL
MariaDB
MS SQL Server
PostgreSQL
IBM Db2
SQLite
CUBRID
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1 + NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1 - NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1 * NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
1 / NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
SELECT 절 NULL ė¬øģž ź²°ķ•©
RDBMS
ORACLE
TIBERO
MySQL
MariaDB
MS SQL Server
PostgreSQL
IBM Db2
SQLite
CUBRID
'A'||NULL||'C’
AC
AC
NULL (ģ—°ģ‚°)
NULL (ģ—°ģ‚°)
-
NULL
NULL
NULL
NULL
'A'+NULL+'C’
-
NULL (ģ—°ģ‚°)
NULL (ģ—°ģ‚°)
NULL (ģ—°ģ‚°)
NULL
-
-
NULL (ģ—°ģ‚°)
NULL
CONCAT('A',NULL,'C')
-
-
NULL
NULL
AC
AC
-
-
NULL
CONCAT('A',NULL)
A
A
NULL
NULL
A
A
NULL
-
NULL
•
NULL (ģ—°ģ‚°) : ė¬øģž ź²°ķ•©ģ“ ģ•„ė‹Œ ė¬øģž ģ—°ģ‚°
•
- : 미지원
SELECT 절 NULL ė‚ ģ§œģ‹œź°„ ģ—°ģ‚°
RDBMS
ORACLE
TIBERO
MySQL
MariaDB
MS SQL Server
PostgreSQL
IBM Db2
SQLite
CUBRID
ė‚ ģ§œģ‹œź°„ķ•Øģˆ˜ + NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
SELECT 절 NULL ė¶€ģšø 비교
RDBMS
ORACLE
TIBERO
MySQL
MariaDB
MS SQL Server
PostgreSQL
IBM Db2
SQLite
CUBRID
NULL or TRUE
-
-
TRUE (1)
TRUE (1)
-
TRUE
TRUE
TRUE (1)
-
NULL or FALSE
-
-
NULL
NULL
-
NULL
NULL
NULL
-
•
TRUE : TRUE ė°˜ķ™˜
•
TRUE (1) : 1 ė°˜ķ™˜
•
- : 미지원
SELECT 절 NULL처리 SQL

집계 ķ•Øģˆ˜

•
ķ…ŒģŠ¤ķŠø 결과넼 통핓 NULLź³¼ģ˜ ģ—°ģ‚°/ ė¹„źµėŠ” NULLģ²˜ė¦¬ź°€ ė˜ź±°ė‚˜ NULLģ„ ė¬“ģ‹œķ•“ė²„ė¦½ė‹ˆė‹¤.
•
집계 ꓀련 ķ•Øģˆ˜ģ—ģ„œėŠ” NULLģ“ ķ¬ķ•Øėœ 딜우딜 ģøķ•œ ģ–“ė–¤ ģ˜ķ–„ģ“ ģžˆģ„ź¹Œģš”
ķ…ŒģŠ¤ķŠø ķ…Œģ“ėø”
x
xx
1
NULL
2
NULL
3
NULL
4
40
5
50
RDBMS
ORACLE
TIBERO
MySQL
MariaDB
MS SQL Server
PostgreSQL
IBM Db2
SQLite
CUBRID
COUNT(*)
5
5
5
5
5
5
5
5
5
COUNT(x)
5
5
5
5
5
5
5
5
5
COUNT(xx)
2
2
2
2
2
2
2
2
2
SUM(x)
15
15
15
15
15
15
15
15
15
SUM(xx)
90
90
90
90
90
90
90
90
90
SUM(x+xx)
99
99
99
99
99
99
99
99
99
AVG(x)
3
3
3
3
3
3
3
3
3
AVG(xx)
45
45
45
45
45
45
45
45
45
AVG(x+xx)
49.5
49.5
49.5
49.5
49
49.5
49
49.5
49.5
•
집계 ķ•Øģˆ˜ģ—ģ„œėŠ” NULL ė”œģš°ėŠ” ķ¬ķ•Øķ•˜ģ§€ ģ•Šź³  집계가 ģˆ˜ķ–‰ ė©ė‹ˆė‹¤.
ā—¦
COUNT(xx), SUM(xx), AVG(xx)
•
집계 ķ•Øģˆ˜ģ—ģ„œ ė‘ź°œ ģ“ģƒģ˜ COLUMNģ„ ź°™ģ“ķ•  경우 NULL ė”œģš°ģ— ķ•“ė‹¹ķ•˜ėŠ” ź°’ģ€ ģ „ė¶€ ė¬“ģ‹œ ė©ė‹ˆė‹¤.
ā—¦
x 컬럼과 xxģ»¬ėŸ¼ģ˜ NULL ź°’ģ„ ź³ ė ¤ķ•˜ģ§€ ģ•Šź³  집계 ķ•Øģˆ˜ź°€ ģ‚¬ģš© 될 경우 ģ˜ė„ķ•œ 결과가 ė„ģ¶œ ė˜ģ§€ ģ•Šģ„ 수 ģžˆģŠµė‹ˆė‹¤.
ā—¦
SUM(x+xx), AVG(x+xx)
•
비교 ėŒ€ģƒ RDBMS 모두 ė™ģ¼ ķ•©ė‹ˆė‹¤. ė‹¤ė§Œ, ģ†Œģˆ˜ģ  ģ²˜ė¦¬ģ—ģ„œ ģ°Øģ“ź°€ ģžˆģŠµė‹ˆė‹¤.
ā—¦
ģ†Œģˆ˜ģ ģžė¦¬ė„¼ ė²„ė¦¬ėŠ” ź²½ģš°ź°€ ģžˆģŒ.
ā–Ŗ
MS SQL, IBM Db2 : ģ •ģˆ˜ė„¼ ģ—°ģ‚°ķ–ˆģ„ ė•Œ ģ†Œģˆ˜ģ ģ“ ė‚˜ģ˜¤ė©“ ė²„ė¦¬ėŠ” ķŠ¹ģ„±
ģ£¼ģ˜ 사항
•
ė°ģ“ķ„°ė² ģ“ģŠ¤ģ— ģ§€ģ›ķ•˜ģ§€ ģ•ŠėŠ” ķ•Øģˆ˜ź°€ ģ—†ėŠ” 경우 PROCEDURE넼 ģƒģ„±ķ•˜ģ—¬ ģ‚¬ģš© ķ•  ė•Œ ģ£¼ģ˜
외부 ķ•Øģˆ˜/ķ”„ė”œģ‹œģ € ģž‘ģ„± ģ‹œ ģ£¼ģ˜ SQL
집계 ķ•Øģˆ˜ NULL처리 SQL

NULL ģ •ė ¬

ģˆ«ģžķ˜•
x
xx
1
NULL
2
NULL
3
NULL
4
40
5
50
6
NULL
ė¬øģžķ˜•
x
xx
1
NULL
2
NULL
3
NULL
4
A
5
Z
6
NULL
ė‚ ģ§œķ˜•
x
xx
1
NULL
2
NULL
3
NULL
4
2022-01-01 00:00:00.000
5
2022-12-31 00:00:00.000
6
NULL
RDBMS
ORACLE
TIBERO
MySQL
MariaDB
MS SQL Server
PostgreSQL
IBM Db2
SQLite
CUBRID
NUMBER ORDER BY xx ASC;
ź°€ģž„ 큰 ź°’
ź°€ģž„ 큰 ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ 큰 ź°’
ź°€ģž„ 큰 ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
STRING ORDER BY xx ASC;
ź°€ģž„ 큰 ź°’
ź°€ģž„ 큰 ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ 큰 ź°’
ź°€ģž„ 큰 ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
DATETIME ORDER BY xx ASC;
ź°€ģž„ 큰 ź°’
ź°€ģž„ 큰 ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ 큰 ź°’
ź°€ģž„ 큰 ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ ģž‘ģ€ ź°’
ź°€ģž„ 큰 ź°’
•
ORDER BY 넼 ģˆ˜ķ–‰ķ•˜ģ—¬ ģ •ė ¬ģ„ ģˆ˜ķ–‰ķ•˜ė©“ ė¶„ėŖ… NULLģ˜ 크고 ģž‘ģŒģ„ ķ™•ģø ķ•  수 ģžˆģŠµė‹ˆė‹¤.
•
MIN/MAX 집계 ķ•Øģˆ˜ ź²°ź³¼ģ—ģ„œėŠ” NULLģ„ ź°’ģœ¼ė”œ ģ²˜ė¦¬ķ•˜ģ§€ ģ•ŠģŒ
RDBMS
ORACLE, TIBERO, MySQL, MariaDB, MS SQL Server, PostgreSQL, IBM Db2, SQLite, CUBRID
NUMBER MIN(x),MIN(xx)
1 40
NUMBER MAX(x),MAX(xx)
6 50
STRING MIN(x),MIN(xx)
1 A
STRING MAX(x),MAX(xx)
6 Z
DATETIME MIN(x),MIN(xx)
1 2022-01-01-00.00.00.000000
DATETIME MAX(x),MAX(xx)
6 2022-12-31-00.00.00.000000
NULL SORT SQL

NULL INDEX

INDEX와 NULL
1번 SQL : SELECT * FROM tbl WHERE xx IS NOT NULL; 2번 SQL : SELECT * FROM tbl WHERE xx IS NULL; CREATE INDEX idx_tbl_x ON tbl(xx);
SQL
복사
•
INDEX에 NULL ķ¬ķ•Ø
ā—¦
1번 SQL : NULLģ“ ģ•„ė‹Œ 것만 INDEX FFS SCAN ģˆ˜ķ–‰
ā—¦
2번 SQL : NULLģø ź²ƒģ„ 찾기 ģœ„ķ•“ INDEX RANGE SCAN ģˆ˜ķ–‰
•
INDEX에 NULL ėÆøķ¬ķ•Ø
ā—¦
1번 SQL : NULLģ“ ģ•„ė‹Œ 것만 INDEX FFS SCAN ģˆ˜ķ–‰
ā—¦
2번 SQL : NULLģø ź²ƒģ„ 찾기 ģœ„ķ•“ TABLE ACCESS (FULL) ģˆ˜ķ–‰
ė°ģ“ķ„° 걓수(NOT NULL: 60,000 / NULL: 4,000)
TOTAL_CNT
NOTNULL_CNT
NULL_CNT
64,000
60,000
4,000
ė°ģ“ķ„° ė¶„ķ¬ė„
X
XX
COUNT(*)
1
NULL
1,000
2
20
10,000
3
NULL
1,000
4
40
10,000
5
NULL
1,000
6
60
10,000
7
70
10,000
8
NULL
1,000
9
90
10,000
10
100
10,000

TIBERO

ORACLE

MySQL / MariaDB

PostgreSQL

MS SQL Server

IBM Db2

CUBRID

RDBMS별 INDEX에 NULL ķ¬ķ•Ø 여부 ķ™•ģø
RDBMS
ORACLE
TIBERO
MySQL
MariaDB
MS SQL Server
PostgreSQL
IBM Db2
CUBRID
INDEX NULL ķ¬ķ•Ø 여부 (ė‹Øģ¼)
X (ė‹Øģ¼)
X (ė‹Øģ¼)
O (ė‹Øģ¼,복합)
O (ė‹Øģ¼,복합)
O (ė‹Øģ¼,복합)
O (ė‹Øģ¼,복합)
O (ė‹Øģ¼,복합)
X (ė‹Øģ¼)
RDBMS
ORACLE
TIBERO
CUBRID
ė‹Øģ¼ 컬럼
X
X
X
복합 컬럼 ķŠ¹ģ • ģ»¬ėŸ¼ģ˜ NOT NULLģ¼ 경우
O
O
X
복합키 NULL ģøė±ģŠ¤ 구성 ź²€ģ¦ SQL
•
IS NULL
ā—¦
INDEX에 NULL ķ¬ķ•Ø RDBMS
ā–Ŗ
INDEX ģŠ¤ģŗ”ģ„ 통핓 NULLģ˜ ź²°ź³¼ ķ™•ģø
ā—¦
INDEX에 NULL ėÆøķ¬ķ•Ø RDBMS
ā–Ŗ
ķ•Øģˆ˜ 기반 ģøė±ģŠ¤ ķ™œģš© : NVL(xx, ā€˜unkown’) ķ˜•ķƒœė”œ ė§Œė“¤ģ–“ģ„œ ķ™œģš©
ā–Ŗ
ORACLE, TIBEROģ˜ 경우 복합 ģøė±ģŠ¤ ģ»¬ėŸ¼ģ— ķ¬ķ•Ø 된 ģ»¬ėŸ¼ģ“ 1개 ģ“ģƒ NOT NULL ģ œģ•½ 씰걓에 ķ•“ė‹¹ķ•˜ė©“ 다넸 ģ»¬ėŸ¼ģ€ NULLģ„ ķ¬ķ•Øķ•œė‹¤.
•
([notnull column], xx)
ā–Ŗ
ORACLE, TIBEROģ˜ 경우 복합 ģøė±ģŠ¤ 구성 ģ‹œ NOT NULL ģ œģ•½ 씰걓 ģ»¬ėŸ¼ģ“ ģ—†ģ„ 경우 NULLģ„ ģøė±ģŠ¤ģ— ķ¬ķ•Øķ•˜ź³  ģ‹¶ģ„ 경우
•
(xx,’1’)
•
IS NOT NULL
ā—¦
INDEX에 NULL ķ¬ķ•Ø RDBMS
ā–Ŗ
INDEX ģŠ¤ģŗ”ģ„ 통핓 NULLģ“ ģ•„ė‹Œ ź²°ź³¼ ķ™•ģø
ā—¦
INDEX에 NULL ėÆøķ¬ķ•Ø RDBMS
ā–Ŗ
핓당 ģ»¬ėŸ¼ģ˜ MIN ź°’ģ„ źµ¬ķ•“ģ„œ ķ™œģš©
•
ź³µė°±ģ„ string으딜 ģ²˜ė¦¬ķ•˜ėŠ” RDBMSģ˜ 경우
ā—¦
ģ •ģˆ˜ ė˜ėŠ” ė¬øģž: WHERE xx >=’’; ķ™œģš©
ā—¦
ģŒģˆ˜ : WHERE xx > (select MIN(xx)-99 from tbl9_null limit1);
•
ORACLE, TIBEROėŠ” INDEX FFS ģžė™ģœ¼ė”œ ė™ģž‘
ā–Ŗ
ORACLE, TIBEROģ˜ 경우 복합 ģøė±ģŠ¤ ģ»¬ėŸ¼ģ— ķ¬ķ•Ø 된 ģ»¬ėŸ¼ģ“ 1개 ģ“ģƒ NOT NULL ģ œģ•½ 씰걓에 ķ•“ė‹¹ķ•˜ė©“ 다넸 ģ»¬ėŸ¼ģ€ NULLģ„ ķ¬ķ•Øķ•œė‹¤.
•
([notnull column], xx)
ā–Ŗ
ORACLE, TIBEROģ˜ 경우 복합 ģøė±ģŠ¤ 구성 ģ‹œ NOT NULL ģ œģ•½ 씰걓 ģ»¬ėŸ¼ģ“ ģ—†ģ„ 경우 NULLģ„ ģøė±ģŠ¤ģ— ķ¬ķ•Øķ•˜ź³  ģ‹¶ģ„ 경우
•
(xx,’1’)

정리

NULL ģ €ģž„

•
'' (empty) ź°’ģ“ RDBMS(ģ“ķ•˜: DB) ė§ˆė‹¤ NULL ė˜ėŠ” ė¬øģžģ—“ ģ·Øźø‰ģ“ 다넓다.
•
ė¬øģžģ—“ ģ·Øźø‰ DBģ—ģ„œ NULL 처리 DB딜 ģ“ź“€ ģ‹œ ģ£¼ģ˜ ķ•„ģš” (ź²°ź³¼ ź°’ģ“ ė‹¬ė¼ģ§ˆ 수 ģžˆģœ¼ė©“ ģ œģ•½ 씰걓 ģœ„ė°˜ģ“ ė˜ģ–“ ģ“ź“€ ģžģ²“ ź±“ģˆ˜ģ—ģ„œ 배제 될 수 ģžˆė‹¤.)

NULL 크기

•
DBė§ˆė‹¤ NULL 크기 3개 ķŒØķ„“ģ“ ģžˆė‹¤.
ā—¦
NULL 묓씰걓 0 byte
ā—¦
TIBEROģ˜ 경우 ģ—°ģ† 된 NuLL에 ėŒ€ķ•œ 크기 부여
col1
col2
col3
BYTE
NULL
NULL
NULL
1 + 0 + 0
col1
col2
col3
BYTE
NULL
NULL
1
1 + 1 + type
col1
col2
col3
BYTE
NULL
1
NULL
1 + type +
TIBEROģ˜ 경우 NULL ķ—ˆģš© ģ»¬ėŸ¼ģ„ ģµœėŒ€ķ•œ ė’¤ė”œ ė¹¼ėŠ”ź²Œ TABLE ķ¬źø°ģ—ģ„œ ķšØģœØģ ģ“ė‹¤.
ā—¦
CUBRIDģ˜ 경우 ė°ģ“ķ„° ķƒ€ģž…ģ˜ 크기넼 미리 할당
INT ⇒ 4 byte / datetime ⇒ 8 byte / VARCHAR, CLOB ⇒ 0 byte

NULL ģ—°ģ‚°/ė‚“ė¶€ ķ•Øģˆ˜/외부 ķ•Øģˆ˜,ķ”„ė”œģ‹œģ €

•
NULL ģ—°ģ‚°
ā—¦
NULL ź³¼ ģ—°ģ‚°ė˜ėŠ” ėŖØė“  ź°’ģ€ NULL딜 처리 ėœė‹¤.
•
ė‚“ė¶€ ķ•Øģˆ˜
ā—¦
ė³€ķ™˜/집계 ķ•Øģˆ˜ ģˆ˜ķ•™ģ  ģ—°ģ‚°ģ“ ė“¤ģ–“ź°€ėŠ” ķ•Øģˆ˜ėŠ” NULLģ„ ė°°ģ œķ•˜ź³  ģ—°ģ‚°ķ•œė‹¤.
ā—¦
ė¬øģžģ—“ ģ ‘ķ•© ķ•Øģˆ˜ģ˜ 경우 NULLģ“ 들얓간 경우 NULL처리 ķ•˜ź±°ė‚˜ NULLģ„ ģ œź±°ķ•˜ź³  ģ ‘ķ•© ķ•œė‹¤.
•
외부 ķ•Øģˆ˜, ķ”„ė”œģ‹œģ €
ā—¦
ķ•Øģˆ˜,ķ”„ė”œģ‹œģ € ģž‘ģ„± ģ‹œ NULLģ„ ź³ ė ¤ķ•˜ģ§€ ģ•Šģœ¼ė©“ ģ˜ė„ģ¹˜ ģ•Šź²Œ 결과가 NULL딜 출렄 될 수 ģžˆė‹¤.

NULL ģ •ė ¬

•
DB ė§ˆė‹¤ NULLģ„ ģ •ė ¬ ķ•˜ėŠ” ź°’ģ€ ź°€ģž„ 큰 ź°’ģœ¼ė”œ ģ—¬źø°ź±°ė‚˜ ź°€ģž„ ģž‘ģ€ ź°’ģœ¼ė”œ ģ—¬ź²Øģ„œ ģ •ė ¬ķ•œė‹¤.
ā—¦
중간 ź°’ģ€ 없다
ā—¦
NULLģ„ ģ œź±°ķ•˜ģ§€ ģ•Šź³  ģ •ė ¬ķ•˜ģ—¬ ź°’ģ„ ģ–»ģœ¼ė ¤ź³  ķ•  경우 ģ˜ė„ģ¹˜ ģ•Šģ€ NULLģ“ 출렄 될 수 ģžˆė‹¤.
ā—¦
ėŒ€ģ†Œ ė° MIN/MAX ķ•Øģˆ˜ģ—ģ„œėŠ” NULLģ„ 배제 ķ•˜ź³  ģ²˜ė¦¬ķ•œė‹¤.

NULL ģøė±ģŠ¤

•
DBė§ˆė‹¤ INDEX에 NULLģ„ ķ¬ķ•Øķ•˜ėŠ” ź²½ģš°ź°€ ģžˆź³  ķ•˜ģ§€ ģ•ŠėŠ” ź²½ģš°ź°€ ģžˆė‹¤.
ā—¦
싱글/복합 ģøė±ģŠ¤ 구성 ģ‹œ NULLģ„ 모두 ķ¬ķ•Øź±°ė‚˜ ź²½ģš°ģ— ė”°ė¼ ķ¬ķ•Øķ•œė‹¤.
ā–Ŗ
복합 ģøė±ģŠ¤ 구성 ģ‹œ ķŠ¹ģ • ģ»¬ėŸ¼ģ“ NOT NULLģø 경우 다넸 ģ»¬ėŸ¼ģ€ NULLģ„ ķ¬ķ•Øķ•œė‹¤.
ā—¦
싱글/복합 ģøė±ģŠ¤ 모두 NULLģ„ ķ¬ķ•Ø ķ•˜ģ§€ ģ•ŠėŠ”ė‹¤.
ā–Ŗ
ķ•Øģˆ˜ ģøė±ģŠ¤ė„¼ ķ™œģš©ķ•˜ģ—¬, ģøė±ģ‹± 처리넼 ķ•  수 ģžˆė‹¤.

END.