做開發三年來(B/S),發現基於web 架構的項目技術主要分兩大方面:
第一:C#,它是程序的基礎,也可是其它開發語言,沒有開發語言也就不存在應用程序.
第二:數據庫,現在是信息化世界,大多數信息都可以通過數據庫存儲來交換信息.常與應用程序互相交流信息.
但在SQL開發應用時,我們往往只觀注些常用的方法(insert delete select update),對些小細節方面(系統存儲過程,函數的應用,優化分析)研究的並不多或者是知其一不知其二,所以本人想把在學習工作當中遇到的問題總結些,希望還沒有重視這些方面的朋友會有幫助,少走些彎路.
SQL中的null的用法及要注意的方面
【英文辭典】 null:無效的, 無價值的, 等於零的.
【SQL定義】SQL中, NULL 與空格, 零, 都不相同. 是指為未定義或是不可用的.
構成因素:造成某一列成為NULL 的因素可能是:
(1),值不存在;
(2), 值未知;
(3), 列對表不可用.
它與普通的值最大的異同是:
相同點:
1:統統屬於值范疇.數字1是一個值,字符串'aaa'同樣是一個值,同理 null也是一個值.
2:都是合法的值,普通的數字,字符可以存在於表中字段,null也可以,而且是有意義的.
不同點:
先創建測試表:
USE [myTestDB]
GO
/****** 對象:Table [dbo].[testNull] 腳本日期:10/11/2008 13:45:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[testNull](
[ID] [int] IDENTITY(1,1) NOT NULL,
[a] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[b] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_testNull] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
插入相關測試值:
insert into testNull
values('1','')
insert into testNull
values('2',null)