sql >> Database >  >> RDS >> Database

=) Operator voor beginners

In SQL is de operator groter dan of gelijk aan (>= ) vergelijkt twee uitdrukkingen en retourneert TRUE als de linker operand een waarde heeft die groter is dan of gelijk is aan de rechter operand; anders retourneert het FALSE .

Voorbeeld

Hier is een voorbeeld om te demonstreren.

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

Resultaat:

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

Deze zoekopdracht retourneert alle steden met een populatie groter dan of gelijk aan 9269265.

Inclusief

De operator groter dan of gelijk aan omvat de gespecificeerde waarde in zijn evaluatie.

De vorige zoekopdracht omvatte bijvoorbeeld Karachi, dat volgens deze database een populatie heeft van precies 9269265.

Als we steden met die populatie willen uitsluiten, moeten we ofwel de opgegeven waarde verhogen:

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

Resultaat:

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

Of we kunnen gewoon de groter dan gebruiken (> ) operator in plaats daarvan:

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

Resultaat:

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

Datums

Hier is een voorbeeld om aan te tonen dat u de operator groter dan of gelijk aan gebruikt om datumwaarden te vergelijken.

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

Resultaat:

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

Snaren

U kunt ook de operator groter dan of gelijk aan gebruiken om tekenreekswaarden te vergelijken. Gebruik aanhalingstekens rond de tekenreeks wanneer u deze vergelijkt met een tekenreekswaarde.

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

Resultaat:

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

Meerdere voorwaarden

Als u meerdere voorwaarden heeft, kunt u meerdere >= . gebruiken operators.

Zoals dit:

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

Resultaat:

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

Voorrang

U kunt ook een combinatie van operators gebruiken bij het filteren van de resultaten.

Merk op dat SQL een prioriteitsvolgorde heeft die wordt toegewezen aan verschillende typen operatoren. Het evalueert bijvoorbeeld voorwaardelijke operators vóór logische operators, zoals AND en OR . Het evalueert ook elke AND operatoren voor een OR operators.

Haakjes hebben een hogere prioriteit dan alle operators, en daarom kunt u haakjes gebruiken om de volgorde aan te geven waarin elke voorwaarde moet worden geëvalueerd.

Beschouw het volgende voorbeeld:

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

Resultaat:

+------+----------+---------------+------------+--------------+
| 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 deze zoekopdracht heb ik geen haakjes opgegeven, dus de AND operator werd geëvalueerd vóór de OR telefoniste.

Daarom hebben we rijen die voldeden aan ofwel Name >= 'Zukovski' AND Population >= 100000 of District = 'Overijssel' . Alleen al door hiernaar te kijken kunnen we zien dat alle steden uit de wijk Overijssel worden teruggegeven, plus eventuele steden die aan de eerste criteria voldoen.

Dit is zoiets als het volgende doen:

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

Dat zou ons hetzelfde resultaat geven als de vorige zoekopdracht zonder haakjes.

Maar kijk wat er gebeurt als we de haakjes verplaatsen naar de OR staat.

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

Resultaat:

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

Deze keer kregen we alleen die steden die voldoen aan zowel Population >= 100000 OR District = 'Overijssel' en Name >= 'Overijssel' .

Dit resulteerde in slechts één stad uit Overijssel die werd geretourneerd, in tegenstelling tot twee in de vorige zoekopdracht.

De voorwaarde negeren

U kunt de NOT . gebruiken operator om de voorwaarde van de >= . te negeren exploitant. Hier is een voorbeeld:

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

Resultaat:

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

  1. Een opgeslagen procedure uitvoeren in een andere opgeslagen procedure in SQL-server

  2. Hoe belangrijk is de volgorde van kolommen in indexen?

  3. Hoe te controleren of een gebruiker op [Annuleren] heeft geklikt op een InputBox in VBA

  4. Hoe kan ik verbinding maken met een externe database vanuit een SQL-instructie of een opgeslagen procedure?