HSQLDB - Boş Değerler

SQL NULL, eksik bir değeri temsil etmek için kullanılan bir terimdir. Bir tablodaki NULL değeri, boş görünen bir alandaki değerdir. Ne zaman alan veya sütun değerini NULL ile karşılaştıran bir koşul vermeye çalışsak, düzgün çalışmıyor.

NULL değerlerini üç şeyi kullanarak halledebiliriz.

  • IS NULL - Sütun değeri NULL ise operatör true döndürür.

  • IS NOT NULL - Sütun değeri NULL DEĞİL ise operatör true döndürür.

  • <=> - Operatör, iki NULL değer için bile (= operatöründen farklı olarak) doğru olan değerleri karşılaştırır.

NULL veya NOT NULL olan sütunları aramak için sırasıyla IS NULL veya IS NOT NULL kullanın.

Misal

Masanın olduğu bir örneği ele alalım tcount_tbliki sütun, yazar ve öğretici_sayısı içeren. Tutorial_count'a NULL değerler sağlayabiliriz, yazarın bir öğretici bile yayınlamadığını gösterir. Bu nedenle, ilgili yazar için tutorial_count değeri NULL olur.

Aşağıdaki sorguları yürütün.

create table tcount_tbl(author varchar(40) NOT NULL, tutorial_count INT);
INSERT INTO tcount_tbl values ('Abdul S', 20);
INSERT INTO tcount_tbl values ('Ajith kumar', 5);
INSERT INTO tcount_tbl values ('Jen', NULL);
INSERT INTO tcount_tbl values ('Bavya kanna', 8);
INSERT INTO tcount_tbl values ('mahran', NULL);
INSERT INTO tcount_tbl values ('John Poul', 10);
INSERT INTO tcount_tbl values ('Sathya Murthi', 6);

Tüm kayıtları görüntülemek için aşağıdaki komutu kullanın. tcount_tbl tablo.

select * from tcount_tbl;

Yukarıdaki komutu uyguladıktan sonra aşağıdaki çıktıyı alacaksınız.

+-----------------+----------------+
|     author      | tutorial_count |
+-----------------+----------------+
|      Abdul S    |      20        |
|    Ajith kumar  |      5         |
|        Jen      |     NULL       |
|    Bavya kanna  |      8         |
|       mahran    |     NULL       |
|     John Poul   |      10        |
|   Sathya Murthi |      6         |
+-----------------+----------------+

Tutorial_count sütununun BOŞ OLDUĞU kayıtları bulmak için, sorgu aşağıdadır.

SELECT * FROM tcount_tbl WHERE tutorial_count IS NULL;

Sorgunun yürütülmesinden sonra aşağıdaki çıktıyı alacaksınız.

+-----------------+----------------+
|     author      | tutorial_count |
+-----------------+----------------+
|       Jen       |     NULL       |
|      mahran     |     NULL       |
+-----------------+----------------+

Tutorial_count sütununun BOŞ DEĞİL OLMADIĞI kayıtları bulmak için, sorgu aşağıdadır.

SELECT * FROM tcount_tbl WHERE tutorial_count IS NOT NULL;

Sorgunun yürütülmesinden sonra aşağıdaki çıktıyı alacaksınız.

+-----------------+----------------+
|      author     | tutorial_count |
+-----------------+----------------+
|      Abdul S    |      20        |
|     Ajith kumar |       5        |
|     Bavya kanna |       8        |
|     John Poul   |      10        |
|   Sathya Murthi |       6        |
+-----------------+----------------+

HSQLDB - JDBC Programı

Kayıtları tcount_tbl tablosundan ayrı olarak alan JDBC programı burada tutorial_ count NULL ve tutorial_count NULL DEĞİLDİR. Aşağıdaki programı şuraya kaydedin:NullValues.java.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class NullValues {
   public static void main(String[] args) {
      Connection con = null;
      Statement stmt_is_null = null;
      Statement stmt_is_not_null = null;
      ResultSet result = null;
      try {
         Class.forName("org.hsqldb.jdbc.JDBCDriver");
         con = DriverManager.getConnection(
            "jdbc:hsqldb:hsql://localhost/testdb", "SA", "");
         stmt_is_null = con.createStatement();
         stmt_is_not_null = con.createStatement();
         result = stmt_is_null.executeQuery(
            "SELECT * FROM tcount_tbl WHERE tutorial_count IS NULL;");
         System.out.println("Records where the tutorial_count is NULL");
         
         while(result.next()){
            System.out.println(result.getString("author")+" |
            "+result.getInt("tutorial_count"));
         }
         result = stmt_is_not_null.executeQuery(
            "SELECT * FROM tcount_tbl WHERE tutorial_count IS NOT NULL;");
         System.out.println("Records where the tutorial_count is NOT NULL");
         
         while(result.next()){
            System.out.println(result.getString("author")+" |
            "+result.getInt("tutorial_count"));
         }
      } catch (Exception e) {
         e.printStackTrace(System.out);
      }
   }
}

Aşağıdaki komutu kullanarak yukarıdaki programı derleyin ve çalıştırın.

\>javac NullValues.java
\>Java NullValues

Yukarıdaki komutu uyguladıktan sonra aşağıdaki çıktıyı alacaksınız.

Records where the tutorial_count is NULL
Jen         | 0
mahran      | 0

Records where the tutorial_count is NOT NULL
Abdul S        | 20
Ajith kumar    | 5
Bavya kanna    | 8
John Poul      | 10
Sathya Murthi  | 6