sql >> データベース >  >> RDS >> Database

SQL、空のセルの処理

    この方法でテーブルを作成する場合:

    CREATE TABLE people (
      age INT,
      name CHAR(20)
    );

    SQLは空の値をレコードとして自由に受け入れます:

    INSERT INTO people VALUES (null, null);

    null値の行があるため、これは問題になる可能性があります。

     age |  name  
    -----+--------
      37 | Flavio
       8 | Roger
         | 

    これを解決するために、テーブル行に制約を宣言できます。 NOT NULL null値を防ぎます:

    CREATE TABLE people (
      age INT NOT NULL,
      name CHAR(20) NOT NULL
    );

    このクエリを再度実行しようとすると:

    INSERT INTO people VALUES (null, null);

    次のようなエラーが発生します:

    ERROR:  null value in column "age" violates not-null constraint
    DETAIL:  Failing row contains (null, null).

    空の文字列は有効なnull以外の値であることに注意してください。


    1. rewriteBatchedStatements=trueを使用したMySQLおよびJDBC

    2. Charlotte SQL Serverユーザーグループ:遅いクエリを修正しました。速い。

    3. PostgreSQLクエリで変数を宣言する方法

    4. PostgreSQLとOracleGTTの一時テーブルの比較