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

初心者向けのSQLEquals(=)演算子

    等号演算子(= )は、おそらくSQLで最も一般的に使用される演算子です。 2つの式の同等性を比較します。 SQLの旅を始めたばかりの場合でも、おそらくこの演算子を知っているでしょう。

    ソーステーブル

    データベースに次のテーブルが含まれていると想像してください。これは、このページの例で使用する表です。

    SELECT * FROM Pets;

    結果:

    +---------+-------------+-----------+-----------+------------+
    | PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
    |---------+-------------+-----------+-----------+------------|
    | 1       | 2           | 3         | Fluffy    | 2020-11-20 |
    | 2       | 3           | 3         | Fetch     | 2019-08-16 |
    | 3       | 2           | 2         | Scratch   | 2018-10-01 |
    | 4       | 3           | 3         | Wag       | 2020-03-15 |
    | 5       | 1           | 1         | Tweet     | 2020-11-28 |
    | 6       | 3           | 4         | Fluffy    | 2020-09-17 |
    | 7       | 3           | 2         | Bark      | NULL       |
    | 8       | 2           | 4         | Meow      | NULL       |
    +---------+-------------+-----------+-----------+------------+
    (8 rows affected)

    特定の飼い主と一緒にすべてのペットを飼いたい場合は、次のようにすることができます。

    SELECT *
    FROM Pets
    WHERE OwnerId = 3;

    結果:

    +---------+-------------+-----------+-----------+------------+
    | PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
    |---------+-------------+-----------+-----------+------------|
    | 1       | 2           | 3         | Fluffy    | 2020-11-20 |
    | 2       | 3           | 3         | Fetch     | 2019-08-16 |
    | 4       | 3           | 3         | Wag       | 2020-03-15 |
    +---------+-------------+-----------+-----------+------------+

    このクエリでは、equals演算子(=)を使用しています )OwnerIdの値が等しいかどうかを比較します 列と3

    この場合、所有者番号3には3匹のペットがいます。

    文字列

    文字列値と比較するときは、文字列を引用符で囲みます。たとえば、Fluffyという名前のすべてのペットに関する情報を取得したい場合は、次のようにすることができます。

    SELECT *
    FROM Pets
    WHERE PetName = 'Fluffy';

    結果:

    +---------+-------------+-----------+-----------+------------+
    | PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
    |---------+-------------+-----------+-----------+------------|
    | 1       | 2           | 3         | Fluffy    | 2020-11-20 |
    | 6       | 3           | 4         | Fluffy    | 2020-09-17 |
    +---------+-------------+-----------+-----------+------------+

    このクエリでは、equals演算子(=)を使用しています )PetNameの値が等しいかどうかを比較します 列と文字列Fluffy

    私たちの場合、ペットホテルには現在Fluffyという2匹のペットがいます。

    複数の条件

    複数の条件がある場合は、複数の等号演算子を使用できます。

    このように:

    SELECT * FROM Pets 
    WHERE PetName = 'Fluffy' OR PetName = 'Tweet';

    結果:

    +---------+-------------+-----------+-----------+------------+
    | PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
    |---------+-------------+-----------+-----------+------------|
    | 1       | 2           | 3         | Fluffy    | 2020-11-20 |
    | 5       | 1           | 1         | Tweet     | 2020-11-28 |
    | 6       | 3           | 4         | Fluffy    | 2020-09-17 |
    +---------+-------------+-----------+-----------+------------+

    PetNameが含まれる行を返したことがわかります。 列はFluffyのいずれかでした またはTweet

    条件を否定する

    NOTを使用できます equals演算子によって提供される条件を否定する演算子。次に例を示します。

    SELECT *
    FROM Pets
    WHERE NOT PetName = 'Fluffy';

    結果:

    +---------+-------------+-----------+-----------+------------+
    | PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
    |---------+-------------+-----------+-----------+------------|
    | 2       | 3           | 3         | Fetch     | 2019-08-16 |
    | 3       | 2           | 2         | Scratch   | 2018-10-01 |
    | 4       | 3           | 3         | Wag       | 2020-03-15 |
    | 5       | 1           | 1         | Tweet     | 2020-11-28 |
    | 7       | 3           | 2         | Bark      | NULL       |
    | 8       | 2           | 4         | Meow      | NULL       |
    +---------+-------------+-----------+-----------+------------+

    これを行う別の方法は、<>のいずれかであるnotequal演算子を使用することです。 または!= (または両方)DBMSによって異なります。

    NULL値

    元のサンプルテーブルにいくつかのNULLが含まれていることに気付いたかもしれません。 DOB列の値。

    NULLを含む列 価値がないことを意味します。これは0とは異なります またはfalse 、または空の文字列ですら。

    equals演算子を使用してNULLと比較することはできません 。実際、これはDBMSとその構成によって異なる場合があります。ただし、ここでは、DOB列をNULLと比較しようとするとどうなるかを見てみましょう。 。

    SELECT * FROM Pets 
    WHERE DOB = NULL;

    結果:

    (0 rows affected)

    NULLをテストする方法 ISを使用することです 。

    したがって、上記のステートメントを次のように書き直す必要があります。

    SELECT * FROM Pets 
    WHERE DOB IS NULL;

    結果:

    +---------+-------------+-----------+-----------+-------+
    | PetId   | PetTypeId   | OwnerId   | PetName   | DOB   |
    |---------+-------------+-----------+-----------+-------|
    | 7       | 3           | 2         | Bark      | NULL  |
    | 8       | 2           | 4         | Meow      | NULL  |
    +---------+-------------+-----------+-----------+-------+

    NULL 値は、初心者が頭を動かすのが難しい場合があります。実際、経験豊富な開発者が頭を悩ませるのは難しいことです。 SQLでは、NULL NULLとは少し異なる意味を持ちます 他のほとんどのプログラミング言語で。

    ただし、覚えておくべき重要なことは、SQLではNULL 価値の欠如を意味します。価値はありません。したがって、最初から価値がないため、他の何かと等しいか等しくないとは言えません。

    興味がある場合は、SQL Server ANSI_NULLS Explainedを参照してください。 NULLの方法を変更する方法を確認する 値はSQLServerで処理されます。


    1. ASPクラシックSQLクエリのエラーメッセージ、正しい構文を使用してください

    2. すべてのポイントを見つけるためのST_HexagonGridgeomベクトル

    3. データプロファイリング:データ詳細の検出

    4. 既存のOracleシーケンスを使用してHibernateでIDを生成するにはどうすればよいですか?