sql >> Database >  >> RDS >> Database

SQL Kleiner dan of gelijk aan (=) Operator voor beginners

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

U kunt het gebruiken om te bepalen of een waarde kleiner is dan of gelijk is aan een andere waarde.

Voorbeeld

Hier is een voorbeeld om te demonstreren.

SELECT * FROM city 
WHERE Population <= 455;

Resultaat:

+------+--------------------+---------------+-------------+--------------+
| ID   | Name               | CountryCode   | District    | Population   |
|------+--------------------+---------------+-------------+--------------|
| 2317 | West Island        | CCK           | West Island | 167          |
| 2912 | Adamstown          | PCN           | –           | 42           |
| 3333 | Fakaofo            | TKL           | Fakaofo     | 300          |
| 3538 | Città del Vaticano | VAT           | –           | 455          |
+------+--------------------+---------------+-------------+--------------+

Deze zoekopdracht retourneert alle steden met een bevolking van 455 of minder.

Inclusief

De operator kleiner dan of gelijk aan omvat de opgegeven waarde in zijn evaluatie. We zagen dit in het vorige voorbeeld toen het de stad met een bevolking van 455 omvatte, wat de exacte waarde was die we hadden opgegeven.

Als we niet willen dat deze stad wordt opgenomen, moeten we ofwel de waarde verlagen:

SELECT * FROM city 
WHERE Population <= 454;

Resultaat:

+------+-------------+---------------+-------------+--------------+
| ID   | Name        | CountryCode   | District    | Population   |
|------+-------------+---------------+-------------+--------------|
| 2317 | West Island | CCK           | West Island | 167          |
| 2912 | Adamstown   | PCN           | –           | 42           |
| 3333 | Fakaofo     | TKL           | Fakaofo     | 300          |
+------+-------------+---------------+-------------+--------------+

Of we kunnen gewoon de operator kleiner dan gebruiken (< ) in plaats daarvan:

SELECT * FROM city 
WHERE Population < 455;

Resultaat:

+------+-------------+---------------+-------------+--------------+
| ID   | Name        | CountryCode   | District    | Population   |
|------+-------------+---------------+-------------+--------------|
| 2317 | West Island | CCK           | West Island | 167          |
| 2912 | Adamstown   | PCN           | –           | 42           |
| 3333 | Fakaofo     | TKL           | Fakaofo     | 300          |
+------+-------------+---------------+-------------+--------------+

De operator kleiner dan omvat niet de waarde die u opgeeft.

Datums

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

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

Resultaat:

+-----------+------------+
| PetName   | DOB        |
|-----------+------------|
| Fetch     | 2019-08-16 |
| Scratch   | 2018-10-01 |
| Wag       | 2020-03-15 |
+-----------+------------+

Snaren

U kunt ook de <= . gebruiken operator om tekenreekswaarden te vergelijken. Gebruik bij het vergelijken met een tekenreekswaarde aanhalingstekens rond de letterlijke tekenreeks.

SELECT * FROM city 
WHERE Name <= 'Ab';

Resultaat:

+------+------------------------------+---------------+---------------------+--------------+
| ID   | Name                         | CountryCode   | District            | Population   |
|------+------------------------------+---------------+---------------------+--------------|
| 20   | ´s-Hertogenbosch             | NLD           | Noord-Brabant       | 129170       |
| 548  | Šumen                        | BGR           | Varna               | 94686        |
| 670  | A Coruña (La Coruña)         | ESP           | Galicia             | 243402       |
| 698  | [San Cristóbal de] la Laguna | ESP           | Canary Islands      | 127945       |
| 2450 | Šiauliai                     | LTU           | Šiauliai            | 146563       |
| 3097 | Aachen                       | DEU           | Nordrhein-Westfalen | 243825       |
| 3318 | Aalborg                      | DNK           | Nordjylland         | 161161       |
| 3479 | Šostka                       | UKR           | Sumy                | 90000        |
| 3665 | Šahty                        | RUS           | Rostov-na-Donu      | 221800       |
| 3736 | Štšolkovo                    | RUS           | Moskova             | 104900       |
+------+------------------------------+---------------+---------------------+--------------+

Deze zoekopdracht retourneert alle steden die kleiner zijn dan of gelijk zijn aan Ab . In principe geeft het alle steden terug die beginnen met letters lager dan Ab of precies Ab .

Meerdere voorwaarden

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

Zoals dit:

SELECT * FROM city 
WHERE Name <= 'Ab' AND Population <= 100000;

Resultaat:

+------+--------+---------------+------------+--------------+
| ID   | Name   | CountryCode   | District   | Population   |
|------+--------+---------------+------------+--------------|
| 548  | Šumen  | BGR           | Varna      | 94686        |
| 3479 | Šostka | UKR           | Sumy       | 90000        |
+------+--------+---------------+------------+--------------+

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 . Verder evalueert het 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 <= 'Ab' 
    AND Population <= 100000
    OR District = 'Canary Islands';

Resultaat:

+------+------------------------------+---------------+----------------+--------------+
| ID   | Name                         | CountryCode   | District       | Population   |
|------+------------------------------+---------------+----------------+--------------|
| 548  | Šumen                        | BGR           | Varna          | 94686        |
| 660  | Las Palmas de Gran Canaria   | ESP           | Canary Islands | 354757       |
| 672  | Santa Cruz de Tenerife       | ESP           | Canary Islands | 213050       |
| 698  | [San Cristóbal de] la Laguna | ESP           | Canary Islands | 127945       |
| 3479 | Šostka                       | UKR           | Sumy           | 90000        |
+------+------------------------------+---------------+----------------+--------------+

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 voldoen aan ofwel Name <= 'Ab' AND Population <= 100000 of District = 'Canary Islands' . Alleen al door hiernaar te kijken, kunnen we zien dat alle steden van de Canarische Eilanden worden geretourneerd, plus alle steden die aan de eerste criteria voldoen.

Dit is zoiets als het volgende doen:

SELECT * FROM city 
WHERE (Name <= 'Ab' 
    AND Population <= 100000)
    OR District = 'Canary Islands';

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 <= 'Ab' 
    AND (Population <= 100000
    OR District = 'Canary Islands');

Resultaat:

+------+------------------------------+---------------+----------------+--------------+
| ID   | Name                         | CountryCode   | District       | Population   |
|------+------------------------------+---------------+----------------+--------------|
| 548  | Šumen                        | BGR           | Varna          | 94686        |
| 698  | [San Cristóbal de] la Laguna | ESP           | Canary Islands | 127945       |
| 3479 | Šostka                       | UKR           | Sumy           | 90000        |
+------+------------------------------+---------------+----------------+--------------+

Deze keer hebben we alleen die steden die voldoen aan beide Population <= 100000 OR District = 'Canary Islands' en Name <= 'Ab' .

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        |
|-----------+------------|
| Fluffy    | 2020-11-20 |
| Wag       | 2020-03-15 |
| Tweet     | 2020-11-28 |
| Fluffy    | 2020-09-17 |
+-----------+------------+

  1. ORA-12557 TNS:protocoladapter niet laadbaar

  2. Kan een externe sleutel NULL en/of duplicaat zijn?

  3. Hoe het aantal rijen in sqlite te krijgen met Android?

  4. SCD-type 1