Yan Shiba と PHP を学ぶ - 26 日目 - 奇妙な NULL
/**
芝ヤン福祉 PHP トレーニング
クラスアドレス: YY チャンネル 88354001
学習コミュニティ: www.zixue.it
**/
mysql> #テーブルを作成するとき、列が null でない場合、デフォルト ''、デフォルト 0 になるとはどういう意味ですか?
mysql> #Answer: この列の値を NULL にしないだけです。列に値が入力されていない場合は、デフォルト値も存在し、NULL にはなりません。
mysql> # 列の値を null にしないのはなぜですか?
mysql> テーブル作成 test9 (
-> sname varchar(20)
-> )エンジン myisam 文字セット utf8;
クエリは OK、影響を受ける行は 0 (0.20 秒)
mysql> test9
に挿入
-> 値
-> ('リシ','ワンウー','null');
エラー 1136 (21S01): 列数が行 1 の値数と一致しません
mysql> test9
に挿入
-> 値
-> ('リシ'),('ワンウー',('null');
エラー 1064 (42000): SQL 構文にエラーがあります。
に対応するマニュアルを確認してください。
MySQL サーバーのバージョンに合わせて、3 行目の '' 付近で使用する正しい構文を確認してください
mysql> test9
に挿入
-> 値
-> ('リシ'),('ワンウー'),('null');
クエリは OK、3 行が影響を受けました (0.00 秒)
記録: 3 重複: 0 警告: 0
mysql> select * from test9;
+--------+
| 名前 |
+--------+
| リシ |
| 王武 |
| null |
+--------+
3 行セット (0.00 秒)
mysql> test9 値に挿入 (NULL);
クエリは OK、1 行が影響を受けました (0.02 秒)
mysql> select * from test9;
+--------+
| 名前 |
+--------+
| リシ |
| 王武 |
| null |
| NULL |
+--------+
4 行セット (0.00 秒)
mysql> test9 where sname='null';
から削除します
クエリは OK、1 行が影響を受けました (0.03 秒)
mysql> select * from test9;
+--------+
| 名前 |
+--------+
| リシ |
| 王武 |
| NULL |
+--------+
3 行セット (0.00 秒)
mysql> #ユーザー名が null ではない行をクエリします
mysql> select * from test9 where sname!=null;
空のセット (0.00 秒)
mysql> #lisi wangwu が検出されなかったのはなぜですか?
mysql> #sname が null の行をチェックします
mysql> select * from test9 where sname=null;
空のセット (0.00 秒)
mysql> #また空になりました
mysql> 2>1;
+-----+
| 2>1 |
+-----+
| 1 |
+-----+
セット内の 1 行 (0.00 秒)
mysql> 選択 2
+-----+
| 2
+-----+
| 0 |
+-----+
セット内の 1 行 (0.00 秒)
mysql> 選択 39
+------+
| 39
+------+
| 1 |
+------+
セット内の 1 行 (0.00 秒)
mysql> 'lisi'=null;
を選択します。
+-------------+
| 'lisi'=null |
+-------------+
| NULL |
+-------------+
セット内の 1 行 (0.00 秒)
mysql> # null は false、lisi=null は false
mysql> null=null;
+----------+
| null=null |
+----------+
| NULL |
+----------+
セット内の 1 行 (0.00 秒)
mysql> # null=null、まだ null、まだ false
mysql> null!=null;
+----------------+
| null!=null |
+----------------+
| NULL |
+----------------+
セット内の 1 行 (0.00 秒)
mysql> # null は空であり、4 つの要素がすべて空である空のスペースです。
mysql> # Null 比較には特別な演算子が必要 is null 、is not null
mysql> select * from sname where sname is not null;
エラー 1146 (42S02): テーブル 'test.sname' が存在しません
mysql> select * from test9 where sname is not null;
+--------+
| 名前 |
+--------+
| リシ |
| 王武 |
+--------+
2 行セット (0.00 秒)
mysql> select * from test9 where sname is null;
+------+
| 名前 |
+------+
| NULL |
+------+
セット内の 1 行 (0.00 秒)
mysql> 終了
ヤン・シバ先生はとても面白いです、昨日のビデオは次のとおりです:
http://www.tudou.com/programs/view/-A_S1EMsNDs/