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
반응형
그리드형
'IT > MSSQL' 카테고리의 다른 글
[MSSQL] 유니크(UNIQUE) 제약조건 - 생성(추가), 삭제 (0) | 2023.03.08 |
---|---|
[MSSQL] 기본키(Primary Key) 제약조건 - 생성 추가, 삭제(3가지 방법) (0) | 2023.03.08 |
[MSSQL] update시 select문 조인하여 사용하기 (0) | 2023.03.08 |
[MSSQL] 데드락(교착상태) 리포트 생성 및 추적 방법 (XML 설명 추가) (0) | 2023.03.01 |
[MSSQL] SQL Network Interfaces, error: 26 (Sql Server browser 시작 안됨) (0) | 2023.03.01 |
댓글