DB2的字元型欄位,NULL與空串
對於DB2的字元型欄位,NULL與空串(即’\0′)的概念不同,在開發中要區分對待。
1、在建表時,如果不附加任何約束,那麼CHAR型欄位可以儲存任何合法字元及NULL。
插入x’00′: 可以
插入NULL: 可以
INSERT預設值: NULL
2、NOT NULL約束
插入x’00′: 可以
插入NULL: 失敗
INSERT預設值: INSERT失敗
3、NOT NULL WITH DEFAULT約束
插入x’00′: 可以
插入NULL: 失敗
INSERT預設值: 預設為空格,可指定其他字元,甚至是x’00′
例如 NOT NULL WITH DEFAULT ’4′
NOT NULL WITH DEFAULT x’00′
以SQC方式查詢一個值為NULL的字元型欄位,可能會引發-305錯誤。日常應用中習慣以NOT NULL WITH DEFAULT約束建表,該約束只保證欄位值非NULL,但可能是任何其他值,包括’\0′。
命令列不容易區分空格、空串、NULL以及’-',可以使用ASCII()或HEX()內建函式來區分:
空串 正常顯示: hex():00
空格 正常顯示: hex():20
NULL 正常顯示:- hex():-
‘-’ 正常顯示:- hex(): 2D
但是設定了oracle的相容性之後,現沒有空字串一說,會把''當null來對待!不知道是在相容性的哪一級設定的?
16進位制值 |
相容特性 |
描 述 |
1 (0x01) |
ROWNUM |
支援ROWNUM出現在WHERE字句中 |
2 (0x02) |
DUAL |
支援DUAL表 |
3 (0x04) |
Outer join operator |
支援外連線操作符(+) |
4 (0x08) |
Hierarchical queries |
支援使用CONNECT BY的巢狀查詢 |
5 (0x10) |
NUMBER data type |
支援NUMBER資料型別 |
6 (0x20) |
VARCHAR2 data type |
支援VARCHAR2資料型別 |
7 (0x40) |
DATE data type |
支援DATE和TIMESTAMP組合使用 |
8 (0x80) |
TRUNCATE TABLE |
支援TURNCATE TABLE語句 |
9 (0x100) |
Character literals |
支援CHAR和GRAPHIC 資料型別的賦值操作 |
10 (0x200) |
Collection methods |
支援集合方法,例如對ARRAY的first、 last、next和previous方法 |
11 (0x400) |
Data dictionary-compatible views |
支援建立資料字典相容特性檢視 |
12 (0x800) |
PL/SQL compilation |
支援PL/SQL語言 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/241379/viewspace-772652/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- java查詢資料庫,int型欄位為null的情況Java資料庫Null
- json轉化保留null欄位JSONNull
- MySQL-去掉不為null的欄位MySqlNull
- Mybatis-Plus 更新欄位為 NULLMyBatisNull
- sql 統計多個欄位的和(如果欄位中含有 null 的處理)SQLNull
- MySQL null值欄位是否使用索引的總結MySqlNull索引
- [BUG反饋]新建欄位無法使用字元型預設值字元
- [20201224]order by欄位順序與查詢條件為NULL.txtNull
- MySQL中TEXT與BLOB欄位型別的區別MySql型別
- 萬用字元——*可以當空串或任意串(一)字元
- MySQL欄位新增註釋,但不改變欄位的型別MySql型別
- 為什麼資料庫欄位要使用NOT NULL?資料庫Null
- Oracle的null和空串【一切有為法,如夢幻泡影 】OracleNull
- sql語句修改欄位型別和增加欄位SQL型別
- DB2巧用欄位自動增長主鍵的方法DFDB2
- MongoDB更改欄位型別MongoDB型別
- laravel-query-builder 對於欄位 值為 null的排序方式LaravelUINull排序
- MySQL欄位究竟是否需要設定成not nullMySqlNull
- mysql和mongodb替換欄位中某字元MySqlMongoDB字元
- [提問交流]建立模型,新增屬性,欄位型別如何設定2位小數的欄位型別模型型別
- ES Mapping ,1 欄位型別APP型別
- MySQL欄位型別最全解析MySql型別
- Mysql替換欄位中指定字元(replace 函式)MySql字元函式
- 查詢某欄位有特殊字元(PATINDEX函式)字元Index函式
- sqlserver判斷欄位值是否存在某個字元SQLServer字元
- 技術乾貨| MongoDB如何查詢Null或不存在的欄位?MongoDBNull
- JSON欄位型別在ORM中的使用JSON型別ORM
- TreeSet的null值與元素型別的約束Null型別
- 多型關聯自定義的型別欄位的處理多型型別
- 面試題:對NotNull欄位插入Null值 有啥現象?面試題Null
- Java資料型別與資料庫欄位型別對應關係Java資料型別資料庫
- 欄位管理,為什麼只有新增的時候才自動匹配欄位型別型別
- 【mongo】mongo 欄位型別互轉Go型別
- Linux 中 awk命令如何擷取指定欄位的前幾個字元Linux字元
- PHP 操作 mysql blob 資料型別的欄位PHPMySql資料型別
- mysql表操作(alter)/mysql欄位型別MySql型別
- Oracle 修改欄位型別和長度Oracle型別
- 檢視oracle資料庫中,哪些表的欄位是null值比較多Oracle資料庫Null