sql >> Database teknologi >  >> RDS >> Database

=) Operatør for begyndere

I SQL er den større end eller lig med operatoren (>= ) sammenligner to udtryk og returnerer TRUE hvis venstre operand har en værdi større end eller lig med højre operand; ellers returnerer den FALSE .

Eksempel

Her er et eksempel til at demonstrere.

SELECT * FROM city
WHERE Population >= 9269265
ORDER BY Population ASC;

Resultat:

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

Denne forespørgsel returnerer alle byer, der har en befolkning på mere end eller lig med 9269265.

Inklusiv

Operatoren større end eller lig med inkluderer den angivne værdi i sin evaluering.

For eksempel omfattede den tidligere forespørgsel Karachi, som ifølge denne database har en befolkning på præcis 9269265.

Hvis vi ville udelukke byer med denne befolkning, ville vi enten være nødt til at øge den angivne værdi:

SELECT * FROM city
WHERE Population >= 9269266
ORDER BY Population ASC;

Resultat:

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

Eller vi kunne simpelthen bruge større end (> ) operatør i stedet:

SELECT * FROM city
WHERE Population > 9269265
ORDER BY Population ASC;

Resultat:

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

Datoer

Her er et eksempel til at demonstrere brugen af ​​større end eller lig med operatoren til at sammenligne datoværdier.

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

Resultat:

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

Strenge

Du kan også bruge operatoren større end eller lig med til at sammenligne strengværdier. Når du sammenligner med en strengværdi, skal du bruge anførselstegn omkring strengen.

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

Resultat:

+------+----------+---------------+------------+--------------+
| ID   | Name     | CountryCode   | District   | Population   |
|------+----------+---------------+------------+--------------|
| 3756 | Zukovski | RUS           | Moskova    | 96500        |
| 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       |
+------+----------+---------------+------------+--------------+

Flere betingelser

Hvis du har flere betingelser, kan du bruge flere >= operatører.

Sådan:

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

Resultat:

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

Forrang

Du kan også bruge en kombination af operatorer, når du filtrerer resultaterne.

Bemærk, at SQL har en rækkefølge, som den tildeler til forskellige operatortyper. For eksempel evaluerer den eventuelle betingede operatorer før logiske operatorer, såsom AND og OR . Den evaluerer også enhver AND operatorer før enhver OR operatører.

Parenteser har en højere prioritet end alle operatorer, og du kan derfor bruge parenteser til at angive den rækkefølge, som hver betingelse skal evalueres i.

Overvej følgende eksempel:

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

Resultat:

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

I denne forespørgsel angav jeg ingen parenteser, og derfor AND operatoren blev evalueret før OR operatør.

Derfor fik vi rækker, der opfyldte enten Name >= 'Zukovski' AND Population >= 100000 eller District = 'Overijssel' . Bare ved at se på dette kan vi se, at alle byer fra Overijssel-distriktet vil blive returneret, plus alle byer, der opfylder de første kriterier.

Det er ligesom at gøre følgende:

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

Det ville give os det samme resultat som den forrige forespørgsel uden parentes.

Men se, hvad der sker, når vi flytter parenteserne til OR tilstand.

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

Resultat:

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

Denne gang fik vi kun de byer, der tilfredsstillede både Population >= 100000 OR District = 'Overijssel' og Name >= 'Overijssel' .

Dette resulterede i, at kun én by fra Overijssel blev returneret, i modsætning til to i den forrige forespørgsel.

Nægter betingelsen

Du kan bruge NOT operatør for at ophæve betingelsen fra >= operatør. Her er et eksempel:

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

Resultat:

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

  1. Hvad er det dobbelte bord i Oracle?

  2. Sådan kommer du i gang med Amazon ECS og Amazon Fargate

  3. Hvordan STRCMP() virker i MariaDB

  4. Er indlejrede transaktioner tilladt i MySQL?