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

) Operatør for begyndere

I SQL er større end-operatoren (> ) sammenligner to udtryk og returnerer TRUE hvis venstre operand har en højere værdi end højre operand; ellers returnerer den FALSK .

Eksempel

Her er et eksempel til at demonstrere.

SELECT * FROM city
WHERE Population > 9000000;

Resultat:

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

Denne forespørgsel returnerer alle byer, der har en befolkning på mere end 9 millioner.

Eksklusiv

Større end-operatoren inkluderer ikke den angivne værdi i sin evaluering.

For eksempel returnerer følgende eksempel ikke Karachi, som ifølge denne database har en befolkning på nøjagtigt 9269265:

SELECT * FROM city 
WHERE Population > 9269265;

Resultat:

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

For at inkludere byer med en befolkning på 9269265 skal vi reducere vores angivne værdi:

SELECT * FROM city 
WHERE Population > 9269264;

Resultat:

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

Enten det, eller også kunne vi bruge større end eller lig med (>= ) operatør.

SELECT * FROM city 
WHERE Population >= 9269265;

Resultat:

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

Datoer

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

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

Resultat:

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

Strenge

Du kan også bruge større end-operatoren 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   |
|------+----------+---------------+------------+--------------|
| 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 større end-operatorer.

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 ELLER . Den evaluerer også enhver AND operatorer før enhver ELLER 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 ELLER operatør.

Derfor fik vi rækker, der opfyldte enten Name> 'Zukovski' OG 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 ELLER 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 Befolkning> 100000 ELLER Distrikt ='Overijssel' og Navn> '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 den betingelse, der er stillet til rådighed af den større end operatøren. 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. Lagring af json, jsonb, hstore, xml, enum, ipaddr osv. mislykkes med kolonne x er af typen json, men udtryk er af typen, der varierer

  2. Hvordan kan jeg undertrykke kolonneoverskriftsoutput for en enkelt SQL-sætning?

  3. Sådan viser du samlingen af ​​en database i SQL Server (T-SQL)

  4. Sådan duplikerer du en database ved hjælp af phpMyAdmin