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

)初心者のためのオペレーター

    SQLでは、大なり演算子(> )2つの式を比較し、TRUEを返します 左のオペランドの値が右のオペランドよりも大きい場合。それ以外の場合は、FALSEを返します 。

    実例を示します。

    SELECT * FROM city
    WHERE Population > 9000000;

    結果:

    +------+-----------------+---------------+--------------+--------------+
    | ID   | Name            | CountryCode   | District     | Population   |
    |------+-----------------+---------------+--------------+--------------|
    | 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
    | 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
    | 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
    | 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
    | 2331 | Seoul           | KOR           | Seoul        | 9981619      |
    | 2822 | Karachi         | PAK           | Sindh        | 9269265      |
    +------+-----------------+---------------+--------------+--------------+

    このクエリは、人口が900万人を超えるすべての都市を返します。

    独占

    大なり演算子は、指定された値を評価に含めません。

    たとえば、次の例では、このデータベースによると、正確に9269265の人口を持つカラチは返されません。

    SELECT * FROM city 
    WHERE Population > 9269265;

    結果:

    +------+-----------------+---------------+--------------+--------------+
    | ID   | Name            | CountryCode   | District     | Population   |
    |------+-----------------+---------------+--------------+--------------|
    | 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
    | 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
    | 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
    | 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
    | 2331 | Seoul           | KOR           | Seoul        | 9981619      |
    +------+-----------------+---------------+--------------+--------------+

    人口9269265の都市を含めるには、指定した値を減らす必要があります。

    SELECT * FROM city 
    WHERE Population > 9269264;

    結果:

    +------+-----------------+---------------+--------------+--------------+
    | ID   | Name            | CountryCode   | District     | Population   |
    |------+-----------------+---------------+--------------+--------------|
    | 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
    | 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
    | 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
    | 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
    | 2331 | Seoul           | KOR           | Seoul        | 9981619      |
    | 2822 | Karachi         | PAK           | Sindh        | 9269265      |
    +------+-----------------+---------------+--------------+--------------+

    それか、(>=以上を使用できます )演算子。

    SELECT * FROM city 
    WHERE Population >= 9269265;

    結果:

    +------+-----------------+---------------+--------------+--------------+
    | ID   | Name            | CountryCode   | District     | Population   |
    |------+-----------------+---------------+--------------+--------------|
    | 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
    | 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
    | 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
    | 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
    | 2331 | Seoul           | KOR           | Seoul        | 9981619      |
    | 2822 | Karachi         | PAK           | Sindh        | 9269265      |
    +------+-----------------+---------------+--------------+--------------+

    日付

    これは、より大きい演算子を使用して日付値を比較する方法を示す例です。

    SELECT PetName, DOB 
    FROM Pets
    WHERE DOB > '2020-01-01';

    結果:

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

    文字列

    大なり演算子を使用して、文字列値を比較することもできます。文字列値と比較するときは、文字列を引用符で囲みます。

    SELECT * FROM city 
    WHERE Name > 'Zukovski'
    ORDER BY Name;

    結果:

    +------+----------+---------------+------------+--------------+
    | ID   | Name     | CountryCode   | District   | Population   |
    |------+----------+---------------+------------+--------------|
    | 2669 | Zumpango | MEX           | México     | 99781        |
    | 2025 | Zunyi    | CHN           | Guizhou    | 261862       |
    | 3245 | Zürich   | CHE           | Zürich     | 336800       |
    | 3145 | Zwickau  | DEU           | Saksi      | 104146       |
    | 28   | Zwolle   | NLD           | Overijssel | 105819       |
    | 3446 | Zytomyr  | UKR           | Zytomyr    | 297000       |
    +------+----------+---------------+------------+--------------+

    複数の条件

    複数の条件がある場合は、複数のより大きい演算子を使用できます。

    このように:

    SELECT * FROM city 
    WHERE Name > 'Zukovski' AND Population > 200000;

    結果:

    +------+---------+---------------+------------+--------------+
    | ID   | Name    | CountryCode   | District   | Population   |
    |------+---------+---------------+------------+--------------|
    | 2025 | Zunyi   | CHN           | Guizhou    | 261862       |
    | 3245 | Zürich  | CHE           | Zürich     | 336800       |
    | 3446 | Zytomyr | UKR           | Zytomyr    | 297000       |
    +------+---------+---------------+------------+--------------+

    優先順位

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

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

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

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

    SELECT * FROM city 
    WHERE Name > 'Zukovski' 
        AND Population > 100000
        OR District = 'Overijssel';

    結果:

    +------+----------+---------------+------------+--------------+
    | ID   | Name     | CountryCode   | District   | Population   |
    |------+----------+---------------+------------+--------------|
    | 15   | Enschede | NLD           | Overijssel | 149544       |
    | 28   | Zwolle   | NLD           | Overijssel | 105819       |
    | 2025 | Zunyi    | CHN           | Guizhou    | 261862       |
    | 3145 | Zwickau  | DEU           | Saksi      | 104146       |
    | 3245 | Zürich   | CHE           | Zürich     | 336800       |
    | 3446 | Zytomyr  | UKR           | Zytomyr    | 297000       |
    +------+----------+---------------+------------+--------------+

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

    したがって、Name > 'Zukovski' AND Population > 100000のいずれかを満たす行が得られました。 またはDistrict = 'Overijssel' 。これを見るだけで、オーファーアイセル地区のすべての都市に加えて、最初の基準を満たすすべての都市が返還されることがわかります。

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

    SELECT * FROM city 
    WHERE (Name > 'Zukovski' 
        AND Population > 100000)
        OR District = 'Overijssel';

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

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

    SELECT * FROM city 
    WHERE Name > 'Zukovski' 
        AND (Population > 100000
        OR District = 'Overijssel');

    結果:

    +------+---------+---------------+------------+--------------+
    | ID   | Name    | CountryCode   | District   | Population   |
    |------+---------+---------------+------------+--------------|
    | 28   | Zwolle  | NLD           | Overijssel | 105819       |
    | 2025 | Zunyi   | CHN           | Guizhou    | 261862       |
    | 3145 | Zwickau | DEU           | Saksi      | 104146       |
    | 3245 | Zürich  | CHE           | Zürich     | 336800       |
    | 3446 | Zytomyr | UKR           | Zytomyr    | 297000       |
    +------+---------+---------------+------------+--------------+

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

    これにより、前のクエリの2つではなく、Overijsselから1つの都市のみが返されました。

    条件を否定する

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

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

    結果:

    +-----------+------------+
    | PetName   | DOB        |
    |-----------+------------|
    | Fetch     | 2019-08-16 |
    | Scratch   | 2018-10-01 |
    +-----------+------------+

    1. MySQLクライアントアプリケーションの使用

    2. データベースフォルダにコピーせずに、Androidのres /assetフォルダから読み取り専用データベースを開くことはできますか?

    3. SQL Server、名前付きインスタンスをデフォルトインスタンスに変換しますか?

    4. MySQLで日時値に時間を追加する方法