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

初心者向けのSQL以下(=)演算子

    SQLでは、以下の演算子( <= )2つの式を比較し、 TRUEを返します 左のオペランドの値が右のオペランド以下の場合。それ以外の場合、結果は FALSEになります 。

    これを使用して、値が別の値以下であるかどうかを判断できます。

    実例を示します。

    SELECT * FROM city 
    WHERE Population <= 455;

    結果:

    +------+--------------------+---------------+-------------+--------------+
    | ID   | Name               | CountryCode   | District    | Population   |
    |------+--------------------+---------------+-------------+--------------|
    | 2317 | West Island        | CCK           | West Island | 167          |
    | 2912 | Adamstown          | PCN           | –           | 42           |
    | 3333 | Fakaofo            | TKL           | Fakaofo     | 300          |
    | 3538 | Città del Vaticano | VAT           | –           | 455          |
    +------+--------------------+---------------+-------------+--------------+

    このクエリは、人口が455人以下のすべての都市を返します。

    包括的

    以下の演算子は、指定された値を評価に含めます。これは、前の例で、人口455の都市が含まれているときに見られました。これは、指定した正確な値です。

    この都市を含めたくない場合は、値を下げる必要があります:

    SELECT * FROM city 
    WHERE Population <= 454;

    結果:

    +------+-------------+---------------+-------------+--------------+
    | ID   | Name        | CountryCode   | District    | Population   |
    |------+-------------+---------------+-------------+--------------|
    | 2317 | West Island | CCK           | West Island | 167          |
    | 2912 | Adamstown   | PCN           | –           | 42           |
    | 3333 | Fakaofo     | TKL           | Fakaofo     | 300          |
    +------+-------------+---------------+-------------+--------------+

    または、less than演算子( <)を使用することもできます。 )代わりに:

    SELECT * FROM city 
    WHERE Population < 455;

    結果:

    +------+-------------+---------------+-------------+--------------+
    | ID   | Name        | CountryCode   | District    | Population   |
    |------+-------------+---------------+-------------+--------------|
    | 2317 | West Island | CCK           | West Island | 167          |
    | 2912 | Adamstown   | PCN           | –           | 42           |
    | 3333 | Fakaofo     | TKL           | Fakaofo     | 300          |
    +------+-------------+---------------+-------------+--------------+

    より小さい演算子には、指定した値は含まれません。

    日付

    以下は、以下の演算子を使用して日付値を比較する方法を示す例です。

    SELECT PetName, DOB 
    FROM Pets
    WHERE DOB <= '2020-03-15';

    結果:

    +-----------+------------+
    | PetName   | DOB        |
    |-----------+------------|
    | Fetch     | 2019-08-16 |
    | Scratch   | 2018-10-01 |
    | Wag       | 2020-03-15 |
    +-----------+------------+

    文字列

    <=を使用することもできます 文字列値を比較する演算子。文字列値と比較するときは、文字列リテラルを引用符で囲みます。

    SELECT * FROM city 
    WHERE Name <= 'Ab';

    結果:

    +------+------------------------------+---------------+---------------------+--------------+
    | ID   | Name                         | CountryCode   | District            | Population   |
    |------+------------------------------+---------------+---------------------+--------------|
    | 20   | ´s-Hertogenbosch             | NLD           | Noord-Brabant       | 129170       |
    | 548  | Šumen                        | BGR           | Varna               | 94686        |
    | 670  | A Coruña (La Coruña)         | ESP           | Galicia             | 243402       |
    | 698  | [San Cristóbal de] la Laguna | ESP           | Canary Islands      | 127945       |
    | 2450 | Šiauliai                     | LTU           | Šiauliai            | 146563       |
    | 3097 | Aachen                       | DEU           | Nordrhein-Westfalen | 243825       |
    | 3318 | Aalborg                      | DNK           | Nordjylland         | 161161       |
    | 3479 | Šostka                       | UKR           | Sumy                | 90000        |
    | 3665 | Šahty                        | RUS           | Rostov-na-Donu      | 221800       |
    | 3736 | Štšolkovo                    | RUS           | Moskova             | 104900       |
    +------+------------------------------+---------------+---------------------+--------------+

    このクエリは、 Ab以下のすべての都市を返します 。基本的に、 Abより下の文字で始まるすべての都市を返します または正確にAb

    複数の条件

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

    このように:

    SELECT * FROM city 
    WHERE Name <= 'Ab' AND Population <= 100000;

    結果:

    +------+--------+---------------+------------+--------------+
    | ID   | Name   | CountryCode   | District   | Population   |
    |------+--------+---------------+------------+--------------|
    | 548  | Šumen  | BGR           | Varna      | 94686        |
    | 3479 | Šostka | UKR           | Sumy       | 90000        |
    +------+--------+---------------+------------+--------------+

    優先順位

    結果をフィルタリングするときに、演算子を組み合わせて使用​​することもできます。

    SQLには、さまざまな演算子タイプに割り当てる優先順位があることに注意してください。たとえば、 ANDなどの論理演算子の前に条件演算子を評価します。 およびOR 。さらに、 ANDを評価します ORの前の演算子 演算子。

    括弧はすべての演算子よりも優先順位が高いため、括弧を使用して、各条件を評価する順序を指定できます。

    次の例を考えてみましょう:

    SELECT * FROM city 
    WHERE Name <= 'Ab' 
        AND Population <= 100000
        OR District = 'Canary Islands';

    結果:

    +------+------------------------------+---------------+----------------+--------------+
    | ID   | Name                         | CountryCode   | District       | Population   |
    |------+------------------------------+---------------+----------------+--------------|
    | 548  | Šumen                        | BGR           | Varna          | 94686        |
    | 660  | Las Palmas de Gran Canaria   | ESP           | Canary Islands | 354757       |
    | 672  | Santa Cruz de Tenerife       | ESP           | Canary Islands | 213050       |
    | 698  | [San Cristóbal de] la Laguna | ESP           | Canary Islands | 127945       |
    | 3479 | Šostka                       | UKR           | Sumy           | 90000        |
    +------+------------------------------+---------------+----------------+--------------+

    このクエリでは、かっこを指定しなかったため、 AND 演算子はORの前に評価されました オペレーター。

    したがって、 Name <='Ab' AND Population <=100000のいずれかを満たす行が得られました。 またはDistrict='カナリア諸島' 。これを見るだけで、カナリア諸島のすべての都市に加えて、最初の基準を満たすすべての都市が返還されることがわかります。

    これは、次のようになります。

    SELECT * FROM city 
    WHERE (Name <= 'Ab' 
        AND Population <= 100000)
        OR District = 'Canary Islands';

    これにより、括弧なしの前のクエリと同じ結果が得られます。

    しかし、括弧を ORに移動するとどうなるか見てみましょう。 状態。

    SELECT * FROM city 
    WHERE Name <= 'Ab' 
        AND (Population <= 100000
        OR District = 'Canary Islands');

    結果:

    +------+------------------------------+---------------+----------------+--------------+
    | ID   | Name                         | CountryCode   | District       | Population   |
    |------+------------------------------+---------------+----------------+--------------|
    | 548  | Šumen                        | BGR           | Varna          | 94686        |
    | 698  | [San Cristóbal de] la Laguna | ESP           | Canary Islands | 127945       |
    | 3479 | Šostka                       | UKR           | Sumy           | 90000        |
    +------+------------------------------+---------------+----------------+--------------+

    今回は、 Population <=100000 OR District ='Canary Islands'の両方を満たす都市のみを取得しました。 および Name <='Ab'

    条件を否定する

    NOTを使用できます <=によって提供される条件を否定する演算子 オペレーター。次に例を示します。

    SELECT PetName, DOB 
    FROM Pets
    WHERE NOT DOB <= '2019-12-31';

    結果:

    +-----------+------------+
    | PetName   | DOB        |
    |-----------+------------|
    | Fluffy    | 2020-11-20 |
    | Wag       | 2020-03-15 |
    | Tweet     | 2020-11-28 |
    | Fluffy    | 2020-09-17 |
    +-----------+------------+

    1. MySQLで一括挿入を行う方法は?

    2. MySQLでテーブルを複製する方法

    3. SQLServer2017のセキュリティ機能

    4. ループなしのキーによる多次元配列の値の合計