본문 바로가기
IT/MSSQL

[MSSQL] NULL, NOT NUL 제약조건 - 생성, 조회

by 베베야 2023. 3. 8.
728x90

MSSQL 제약조건 NULL NOT NULL 대해서 알아보자

1.초기화 하지 않은 변수의 NULL

변수 선언 변수를 초기화 하지 않으면 NULL 값으로 표시가 된다.

DECLARE @num01 int
SET @num01 = @num01 + 100
SELECT @num01 AS [num01]  -- NULL 표시됨

 

2.NULL 값이 허용된 열에 대한 NULL

-- 테이블이 이미 있으면 삭제
IF OBJECT_ID('dbo.Employee', 'U') IS NOT NULL
	DROP TABLE dbo.Employee
GO

-- 테이블 만들기
CREATE TABLE dbo.Employee (
	EmpID char(5) NOT NULL,
	EmpName nvarchar(10) NOT NULL,
	EngName varchar(20) NULL,
)
GO

-- 데이터 추가
INSERT INTO dbo.Employee(EmpID, EmpName, EngName) VALUES('S0001', N'홍길동', 'Gildong') 
INSERT INTO dbo.Employee(EmpID, EmpName) VALUES('S0002',N'일지매') 
INSERT INTO dbo.Employee(EmpID, EmpName, EngName) VALUES('S0003',N'강우동', 'NULL')  
INSERT INTO dbo.Employee(EmpID, EmpName, EngName) VALUES('S0004','NULL', 'NULL') 
GO

-- 확인
SELECT * FROM dbo.Employee
GO

NULL 값이 허용된 컬럼에 값을 넣지 않으면 NULL로 표시되고, 명시적으로 'NULL' 입력하게되면 null이 아니라 문자 'NULL'로 인식하여 들어가게된다

 

3.NULL 조회

-- 문자열 NULL을 찾는 조건(NULL 조회 방법이 아님)
SELECT * FROM dbo.Employee WHERE EngName = 'NULL'
GO

-- NULL을 갖는 데이터 조회
SELECT * FROM dbo.Employee WHERE EngName IS NULL
GO

-- NULL은 = 로 조회하지 않도록 함
SELECT * FROM dbo.Employee WHERE EngName = NULL
GO

반응형
그리드형

댓글