最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle中null值和空字符串的坑及解決

 更新時(shí)間:2024年08月26日 09:53:00   作者:草莓田田圈~  
這篇文章主要介紹了Oracle中null值和空字符串的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

思考

在學(xué)習(xí)oracle數(shù)據(jù)庫(kù)的過(guò)程中,發(fā)現(xiàn)當(dāng)對(duì)字段進(jìn)行約束,默認(rèn)空字符串時(shí),出現(xiàn)報(bào)錯(cuò)

--創(chuàng)建employees表
CREATE TABLE employees (
  id NUMBER,
  name VARCHAR2(100)  
);
--對(duì)表新增email列,添加約束默認(rèn)空字符串并且非空
ALTER TABLE employees ADD email VARCHAR2(100) DEFAULT ''  NOT NULL;

以上操作的預(yù)期是向employees表中添加數(shù)據(jù),email不添加數(shù)據(jù)的時(shí)候默認(rèn)是空字符串,但實(shí)際上無(wú)法添加成功。

在MySQL數(shù)據(jù)庫(kù)中

--創(chuàng)建表employees
CREATE TABLE employees(
id int,   
name VARCHAR(100)   
);
--添加字段email,并添加約束
ALTER TABLE employees ADD email VARCHAR(100) DEFAULT ''  NOT NULL;
  • 向表中添加數(shù)據(jù)
--emial字段沒(méi)有添加,默認(rèn)為空字符串,不是null
INSERT INTO employees (id,name) VALUES (1,'TOM');
INSERT INTO employees  VALUES (2,'Carl','');
--email添加一個(gè)值
INSERT INTO employees  VALUES (3,'Jhon','123@qq.com');
--查詢結(jié)果
mysql> SELECT  *  FROM  employees;
+------+------+------------+
| id   | name | email      |
+------+------+------------+
|    1 | TOM  |            |
|    2 | Carl |            |
|    3 | Jhon | 123@qq.com |
+------+------+------------+
3 rows in set (0.00 sec)

在MySQL數(shù)據(jù)庫(kù)中符合預(yù)期,email字段有數(shù)值時(shí),是實(shí)際的數(shù)值,相反是默認(rèn)的值。

  • 修改約束
ALTER TABLE employees modify email VARCHAR(100);
  • 添加數(shù)據(jù)
INSERT INTO employees (id,name) VALUES (1,'TOM');
INSERT INTO employees  VALUES (2,'Carl','');
  • 查看結(jié)果
mysql> SELECT  *  FROM  employees;
+------+------+-------+
| id   | name | email |
+------+------+-------+
|    1 | TOM  | NULL  |
|    2 | Carl |       |
+------+------+-------+
2 rows in set (0.00 sec)

MySQL中空字符串就是空字符串,空值就是NULL

在Oracle數(shù)據(jù)庫(kù)中

--創(chuàng)建表
CREATE TABLE employees (
id NUMBER,
name VARCHAR2(100)  
);
--新增email字段,添加約束
ALTER TABLE employees ADD email VARCHAR2(100) DEFAULT ''  NOT NULL;
  • 向表中添加數(shù)據(jù)報(bào)錯(cuò)
INSERT INTO employees (id,name) VALUES (1,'TOM');
INSERT INTO employees  VALUES (2,'Carl','');

  • 修改約束
--修改email的約束,改成可以添加空值
ALTER TABLE employees MODIFY email varchar2(100) ;
--插入數(shù)據(jù)
INSERT INTO employees (id,name,email) VALUES (1,'TOM','');  --添加空字符串
INSERT INTO employees  VALUES (2,'Carl',null);

查詢結(jié)果,結(jié)果都是null

原因是因?yàn)樵贠racle中,將長(zhǎng)度為零的字符值視為NULL

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Oracle?Temp表空間不足問(wèn)題的多種解決方案

    Oracle?Temp表空間不足問(wèn)題的多種解決方案

    在Oracle數(shù)據(jù)庫(kù)中臨時(shí)表空間(Temp Tablespace)是用于存儲(chǔ)排序、哈希連接和并行查詢等操作中間結(jié)果的關(guān)鍵結(jié)構(gòu),這篇文章主要介紹了Oracle?Temp表空間不足問(wèn)題的多種解決方案,需要的朋友可以參考下
    2025-11-11
  • Oracle數(shù)據(jù)庫(kù)中的優(yōu)化方法

    Oracle數(shù)據(jù)庫(kù)中的優(yōu)化方法

    這篇文章主要給大家介紹了Oracle數(shù)據(jù)庫(kù)中的優(yōu)化方法,Oracle數(shù)據(jù)庫(kù)是當(dāng)前應(yīng)用最廣泛的大型數(shù)據(jù)庫(kù)之一,其系統(tǒng)結(jié)構(gòu)復(fù)雜,性能受多方面因素影響,其中查詢操作是影響其性能的關(guān)鍵因素,需要的朋友可以參考下
    2023-07-07
  • 解決ORA-12154 TNS無(wú)法解析指定的連接標(biāo)識(shí)符問(wèn)題

    解決ORA-12154 TNS無(wú)法解析指定的連接標(biāo)識(shí)符問(wèn)題

    Oracle11g server 64bit服務(wù)器端安裝在Windows Server2008 Enterprise上,安裝Oracle11g client 32bit,通過(guò)SQL Plus以sysdba身份連接數(shù)據(jù)庫(kù),并且創(chuàng)建表空間、用戶、授權(quán)成功,在連接數(shù)據(jù)庫(kù)時(shí)出現(xiàn)問(wèn)題,下面講解ORA-12154無(wú)法解析指定的連接標(biāo)識(shí)符問(wèn)題,感興趣的朋友一起看看
    2024-01-01
  • Oracle使用fy_recover_data恢復(fù)truncate刪除的數(shù)據(jù)

    Oracle使用fy_recover_data恢復(fù)truncate刪除的數(shù)據(jù)

    這篇文章主要介紹了Oracle使用fy_recover_data恢復(fù)truncate刪除的數(shù)據(jù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Oracle 臨時(shí)表空間SQL語(yǔ)句的實(shí)現(xiàn)

    Oracle 臨時(shí)表空間SQL語(yǔ)句的實(shí)現(xiàn)

    臨時(shí)表空間用來(lái)管理數(shù)據(jù)庫(kù)排序操作以及用于存儲(chǔ)臨時(shí)表、中間排序結(jié)果等臨時(shí)對(duì)象,本文主要介紹了Oracle 臨時(shí)表空間SQL語(yǔ)句的實(shí)現(xiàn),感興趣的可以了解一下
    2021-09-09
  • 使用oracle發(fā)生標(biāo)識(shí)符無(wú)效問(wèn)題及解決

    使用oracle發(fā)生標(biāo)識(shí)符無(wú)效問(wèn)題及解決

    這篇文章主要介紹了使用oracle發(fā)生標(biāo)識(shí)符無(wú)效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Oracle常見(jiàn)問(wèn)題解決方案匯總

    Oracle常見(jiàn)問(wèn)題解決方案匯總

    今天小編就為大家分享一篇關(guān)于Oracle常見(jiàn)問(wèn)題解決方案匯總,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • Linux虛擬機(jī)下安裝Oracle 11G教程圖文解說(shuō)

    Linux虛擬機(jī)下安裝Oracle 11G教程圖文解說(shuō)

    這篇文章主要介紹了Linux虛擬機(jī)下安裝Oracle 11G教程圖文詳解,本文文字圖解相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • oracle鎖表該如何解決

    oracle鎖表該如何解決

    這篇文章主要給大家介紹了關(guān)于oracle鎖表如何解決的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • oracle正則表達(dá)式regexp_like的用法詳解

    oracle正則表達(dá)式regexp_like的用法詳解

    本篇文章是對(duì)oracle正則表達(dá)式regexp_like的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評(píng)論

银川市| 固始县| 姜堰市| 施秉县| 河东区| 墨竹工卡县| 鄄城县| 乐至县| 临江市| 临沭县| 深州市| 囊谦县| 浏阳市| 科技| 长武县| 阿坝县| 札达县| 齐齐哈尔市| 迁安市| 宣城市| 马公市| 仙居县| 达州市| 贡山| 绥阳县| 东丰县| 滕州市| 达州市| 南召县| 略阳县| 论坛| 阜宁县| 苍山县| 炉霍县| 宝鸡市| 莆田市| 句容市| 富民县| 东乌珠穆沁旗| 广南县| 滨州市|