مفهوم null در SQL Server

مفهوم null در SQL Server

نوشته شده توسط: تیم فنی نیک آموز
تاریخ انتشار: ۱۰ آذر ۱۴۰۱
آخرین بروزرسانی: ۰۳ آبان ۱۴۰۲
زمان مطالعه: 10 دقیقه
۴.۷
(۱۰)

Null به معنی پوچ می‌باشد و برابر با صفر یا blank نمی‌باشد. منظور از blank در واقع ۲ تا تک کوتیشن می‌باشد. برای این منظور، ابتدا با استفاده از دستور use، برای فراخوانی دیتابیس استفاده می‌کنیم. با استفاده از دستور فیلدهای first name,last name,birth date,birth date_shamsi,emplooye group code,manager id از اسکیمای human resources از جدول employee فراخوانی می‌‎کنیم.

SELECT 
  EmployeeCode,FirstName,LastName,BirthDate,
  BirthDate_Shamsi,EmployeeGroupCode,ManagerID
FROM HumanResources.Employee
GO

دوره کوئری نویسی نیک آموز

برای اینکه بخواهیم در  جدول employee از اسکیمای human resources فیلد last name مقدار null بگیرد برای این منظور از ترکیب دستورات alter table,alter column,null مطابق کوئری زیر استفاده می کنیم

ALTER TABLE HumanResources.Employee 
  ALTER COLUMN LastName NVARCHAR(100) NULL
GO

حال در ادامه با استفاده از دستورات insert into -values رکوردهایی به جدول تخصیص می‎‌دهیم. منتهی برای فیلد last name تعدادی از رکوردها برابر null و تعدادی رکوردها برابر blank یا دو تک کوتیشن می‎باشند. برای این منظور، کوئری زیر را اجرا می‌کنیم.

INSERT INTO HumanResources.Employee(EmployeeCode,FirstName,LastName,EmployeeGroupCode,ManagerID) VALUES 
  ('۵۰۱','Masoud','Taheri',7,4),
  ('۵۰۲','Farid',NULL,7,4),
  ('۵۰۳','Hassan','',7,4),
  ('۵۰۴','Hassan','',7,4),
  ('۵۰۵','Ahmad',NULL,7,4),
  ('۵۰۶','Test','NULL',7,4)
GO

حال برای نمایش رکوردهای تخصیص یافته جدید به جدول employee از اسکیمای human resources دستور select اجرا می‌کنیم

SELECT 
  EmployeeCode,FirstName,LastName,BirthDate,
  BirthDate_Shamsi,EmployeeGroupCode,ManagerID
FROM HumanResources.Employee
GO

خروجی مطابق تصویر زیر می‌باشد.

حال، می‌خواهیم رکوردهایی نمایش دهیم که فیلد last name آن‌ها برابر null می‌باشد. برای این منظور first name برابر قرار می‌دهیم.

SELECT 
  EmployeeCode,FirstName,LastName,BirthDate,
  BirthDate_Shamsi,EmployeeGroupCode,ManagerID
FROM HumanResources.Employee
WHERE LastName=NULL
GO

حال، اگر بخواهیم رکوردهایی را نمایش دهیم که برابر مقدار blank می‌باشد، کوئری زیر را اجرا می‌کنیم.

SELECT 
  EmployeeCode,FirstName,LastName,BirthDate,
  BirthDate_Shamsi,EmployeeGroupCode,ManagerID
FROM HumanResources.Employee
WHERE LastName=''
GO

 

که این کوئری هم صحیح نمی‌باشد. درست این هست که برای نمایش فیلدهایی با مقادیر null در قسمت where از کلمه کلیدی is null استفاده شود.

SELECT 
  EmployeeCode,FirstName,LastName,BirthDate,
  BirthDate_Shamsi,EmployeeGroupCode,ManagerID
FROM HumanResources.Employee
WHERE LastName IS NULL
GO

 

 

حال، در ادامه اگر بخواهیم رکوردهای از اسکیما human resources از جدول employee نمایش دهیم که null نباشد، از کلمه کلیدی is not null در قسمت where دستور select استفاده می‌کنیم.

SELECT 
  EmployeeCode,FirstName,LastName,BirthDate,
  BirthDate_Shamsi,EmployeeGroupCode,ManagerID
FROM HumanResources.Employee
WHERE NOT LastName IS NULL
GO

در ادامه با استفاده از دستور delete رکوردهای اضافه شده به جدول employee از اسکیمای human resources پاک می‌کنیم.

DELETE FROM HumanResources.Employee
  WHERE EmployeeCode IN ('501','502','503','504','505','506')
GO

 

همچنین می‌توانیم با ترکیب دستورات alter table,alter column, محتوای فیلد last name از حالت null به not null تغییر دهیم.

ALTER TABLE HumanResources.Employee 
  ALTER COLUMN LastName NVARCHAR(100) NOT NULL
GO

 

 

برای بدست آوردن اطلاعات بیش‌تر در مورد دیگر دستورات SQL ، به مقاله زیر مراجعه کنید.
 
دستورهای SQL Server

چه رتبه ای می‌دهید؟

میانگین ۴.۷ / ۵. از مجموع ۱۰

اولین نفر باش

title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
402 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
title sign
دیدگاه کاربران