Database
 sql >> Datenbank >  >> RDS >> Database

) Betreiber für Anfänger

In SQL ist der Größer-als-Operator (> ) vergleicht zwei Ausdrücke und gibt TRUE zurück wenn der linke Operand einen höheren Wert hat als der rechte Operand; andernfalls wird FALSE zurückgegeben .

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

SELECT * FROM city
WHERE Population > 9000000;

Ergebnis:

+------+-----------------+---------------+--------------+--------------+
| 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      |
+------+-----------------+---------------+--------------+--------------+

Diese Abfrage gibt alle Städte mit mehr als 9 Millionen Einwohnern zurück.

Exklusiv

Der Größer-als-Operator schließt den angegebenen Wert nicht in seine Auswertung ein.

Das folgende Beispiel gibt beispielsweise Karachi nicht zurück, das laut dieser Datenbank genau 9269265 Einwohner hat:

SELECT * FROM city 
WHERE Population > 9269265;

Ergebnis:

+------+-----------------+---------------+--------------+--------------+
| 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      |
+------+-----------------+---------------+--------------+--------------+

Um Städte mit 9269265 Einwohnern einzubeziehen, müssten wir unseren angegebenen Wert verringern:

SELECT * FROM city 
WHERE Population > 9269264;

Ergebnis:

+------+-----------------+---------------+--------------+--------------+
| 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      |
+------+-----------------+---------------+--------------+--------------+

Entweder das, oder wir könnten größer oder gleich (>= verwenden )-Operator.

SELECT * FROM city 
WHERE Population >= 9269265;

Ergebnis:

+------+-----------------+---------------+--------------+--------------+
| 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      |
+------+-----------------+---------------+--------------+--------------+

Termine

Hier ist ein Beispiel zur Veranschaulichung der Verwendung des Größer-als-Operators zum Vergleichen von Datumswerten.

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

Ergebnis:

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

Strings

Sie können auch den Größer-als-Operator verwenden, um Zeichenfolgenwerte zu vergleichen. Verwenden Sie beim Vergleichen mit einem Zeichenfolgenwert Anführungszeichen um die Zeichenfolge.

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

Ergebnis:

+------+----------+---------------+------------+--------------+
| 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       |
+------+----------+---------------+------------+--------------+

Mehrere Bedingungen

Wenn Sie mehrere Bedingungen haben, können Sie mehrere Größer-als-Operatoren verwenden.

So:

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

Ergebnis:

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

Vorrang

Sie können beim Filtern der Ergebnisse auch eine Kombination von Operatoren verwenden.

Beachten Sie, dass SQL eine Rangfolge hat, die es verschiedenen Operatortypen zuweist. Beispielsweise werden alle bedingten Operatoren vor allen logischen Operatoren wie AND ausgewertet und OR . Es wertet auch jedes AND aus Operatoren vor jedem OR Betreiber.

Klammern haben eine höhere Priorität als alle Operatoren, daher können Sie Klammern verwenden, um die Reihenfolge anzugeben, in der jede Bedingung ausgewertet werden soll.

Betrachten Sie das folgende Beispiel:

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

Ergebnis:

+------+----------+---------------+------------+--------------+
| 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       |
+------+----------+---------------+------------+--------------+

In dieser Abfrage habe ich keine Klammern angegeben, also das AND Operator wurde vor dem OR ausgewertet Betreiber.

Daher haben wir Zeilen, die entweder Name > 'Zukovski' AND Population > 100000 erfüllten oder District = 'Overijssel' . Wir sehen schon, dass alle Städte aus dem Bezirk Overijssel zurückgegeben werden, plus alle Städte, die das erste Kriterium erfüllen.

Das ist wie das Folgende:

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

Das würde uns das gleiche Ergebnis wie die vorherige Abfrage ohne Klammern liefern.

Aber schauen Sie, was passiert, wenn wir die Klammern zum OR verschieben Zustand.

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

Ergebnis:

+------+---------+---------------+------------+--------------+
| 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       |
+------+---------+---------------+------------+--------------+

Dieses Mal haben wir nur die Städte, die sowohl Population > 100000 OR District = 'Overijssel' erfüllen und Name > 'Overijssel' .

Dies führte dazu, dass nur eine Stadt aus Overijssel zurückgegeben wurde, im Gegensatz zu zwei in der vorherigen Abfrage.

Verneinung der Bedingung

Sie können den NOT verwenden -Operator, um die vom Größer-als-Operator bereitgestellte Bedingung zu negieren. Hier ist ein Beispiel:

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

Ergebnis:

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