فصل بیست و ششم :
NULL Values در SQLite
Null همانطور که قبلا هم توضیح داده شد به مقدار نامعلوم و نامشخص اطلاق میشود .
فیلدی که هنوز مقداری ندارد.
باز هم تاکید میکنم که null با یک رشته با طول صفر "" و یا عدد 0 متفاوت است.
SQLite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
یعنی فیلد های ID , NAME و AGE را نمی توان خالی و بدون مقدار رها کرد. یعنی نمی توانیم رکوردی دراین جدول داشته باشیم که این سه فیلد ان بدون مقدار باشند.
حالا دوباره برگردیم به جدول COMPANY
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
دستور ذیل را اجرا کنید
sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);
و نتیجه:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22
7 James 24
حالا اگر بخواهیم سلکتی بنویسیم که رکورد هایی را برای ما بیاورد که فیلد SALARY آنها Null است چه باید کرد؟
برای فهمیدن اینکه مقدار فیلدی برابر با NULL است از اپراتور = نمی توانیم استفاده کنیم بلکه باید از :
IS NULL
برای سنجش نال بودن مقدار موجود در فیلد ها استفاده کرد و همچنین برای نقیض آن از :
IS NOT NULL
استفاده میکینم .
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NOT NULL;
رکوردهایی از جدول COMANY را بیاور که مقدار فیلد SALARY آنها NULL نباشند.
و نتیجه :
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
حالا سلکتی بنویسید که رکورد هایی را بیاورد که مقدارSALARY آنها NULL باشند
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NULL;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
6 Kim 22
7 James 24
مفاهیم و موضوعات این فصل عبارتند از :