sql >> Databasteknik >  >> RDS >> Database

) Operatör för nybörjare

I SQL, operatorn större än (> ) jämför två uttryck och returnerar TRUE om den vänstra operanden har ett värde högre än den högra operanden; annars returnerar den FALSE .

Exempel

Här är ett exempel att visa.

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

Den här frågan returnerar alla städer som har en befolkning på mer än 9 miljoner.

Exklusivt

Operatören större än inkluderar inte det angivna värdet i sin utvärdering.

Till exempel returnerar följande exempel inte Karachi, som enligt denna databas har en befolkning på exakt 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      |
+------+-----------------+---------------+--------------+--------------+

För att inkludera städer med en befolkning på 9269265 skulle vi behöva minska vårt angivna värde:

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

Antingen det, eller så kan vi använda större än eller lika 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      |
+------+-----------------+---------------+--------------+--------------+

Datum

Här är ett exempel som visar att du använder operatorn större än för att jämföra datumvärden.

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

Strängar

Du kan också använda operatorn större än för att jämföra strängvärden. När du jämför med ett strängvärde, använd citattecken runt strängen.

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

Flera villkor

Om du har flera villkor kan du använda flera större än-operatorer.

Så här:

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

Tillrang

Du kan också använda en kombination av operatorer när du filtrerar resultaten.

Observera att SQL har en prioritetsordning som den tilldelar olika operatörstyper. Till exempel utvärderar den eventuella villkorliga operatorer före logiska operatorer, såsom AND och ELLER . Den utvärderar också alla OCH operatorer före någon ELLER operatörer.

Parenteser har högre prioritet än alla operatorer, så du kan använda parenteser för att ange i vilken ordning varje villkor ska utvärderas.

Tänk på följande exempel:

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 den här frågan angav jag inga parenteser, och därför AND operatorn utvärderades före ELLER operatör.

Därför fick vi rader som uppfyllde antingen Name> 'Zukovski' OCH Population> 100000 eller District ='Overijssel' . Vi kan se bara genom att titta på detta att alla städer från Overijssel-distriktet kommer att återlämnas, plus alla städer som uppfyller de första kriterierna.

Det är som att göra följande:

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

Det skulle ge oss samma resultat som den föregående frågan utan parentes.

Men se vad som händer när vi flyttar parenteserna till ELLER skick.

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

Den här gången fick vi bara de städer som tillfredsställde både Befolkning> 100 000 ELLER District ='Overijssel' och Namn> 'Overijssel' .

Detta resulterade i att endast en stad från Overijssel returnerades, till skillnad från två i den föregående frågan.

Negerar villkoret

Du kan använda NOT operatör för att upphäva villkoret som tillhandahålls av den som är större än operatören. Här är ett exempel:

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

Resultat:

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

  1. Prestandagränser för logiska replikeringslösningar

  2. Ansluter till MySQL med Python

  3. Använda IN-satsen med en kommaavgränsad sträng från utdata från en replace() funktion i Oracle SQL

  4. SQL SERVER – Ett knep för att hantera dynamisk SQL för att undvika SQL Injection Attack?