トップ «前の日記(2015-06-27(Sat)) 最新 次の日記(2015-06-29(Mon))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2015-06-28(Sun) くもりらしい

NULL

WHERE $COLUMNS = NULL では空集合が返される。

mysql> SELECT * FROM nulltest;
+--------+------+------+
| number | n1   | n2   |
+--------+------+------+
|      1 | foo  | NULL |
|      2 | NULL | bar  |
|      3 | fizz | fizz |
|      4 | NULL | NULL |
+--------+------+------+
4 rows in set (0.00 sec)
mysql> SELECT * FROM nulltest WHERE n1 = NULL;
Empty set (0.00 sec)

この場合は IS を使う。

mysql> SELECT * FROM nulltest WHERE n1 IS NULL;
+--------+------+------+
| number | n1   | n2   |
+--------+------+------+
|      2 | NULL | bar  |
|      4 | NULL | NULL |
+--------+------+------+
2 rows in set (0.01 sec)

それから、NULL値同士の比較も無意味。

mysql> SELECT * FROM nulltest
    -> WHERE n1 = n2;
+--------+------+------+
| number | n1   | n2   |
+--------+------+------+
|      3 | fizz | fizz |
+--------+------+------+
1 row in set (0.00 sec)

「つい」Postgresqlも

突っ込んでしまった。
さしあたり、

$ sudo -u postgres psql

で行くことにする。

とりあえずは、helpと睨めっこ、では埒があかない。
適当に検索して、

postgres=# \l
                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権       
-----------+----------+------------------+-------------+-------------------+-----------------------
 mydb      | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
postgres=# \dt
            リレーションの一覧
 スキーマ |  名前   |    型    |  所有者  
----------+---------+----------+----------
 public   | cities  | テーブル | postgres
 public   | weather | テーブル | postgres
(2 行)
postgres=# \d cities
         テーブル "public.cities"
    列    |          型           | 修飾語 
----------+-----------------------+--------
 name     | character varying(80) | 
 location | point                 | 
postgres=# \c mydb
データベース "mydb" にユーザ"postgres"として接続しました。

いつまでもスーパーユーザで遊ぶわけにはゆくまい。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。