sql >> Database >  >> RDS >> Database

SQL is gelijk aan (=) Operator voor beginners

De operator is gelijk aan (= ) is waarschijnlijk de meest gebruikte operator in SQL. Het vergelijkt de gelijkheid van twee uitdrukkingen. Zelfs als u nog maar net aan uw SQL-reis bent begonnen, kent u deze operator waarschijnlijk wel.

Brontabel

Stel je voor dat onze database de volgende tabel bevat. Dit is de tabel die we zullen gebruiken voor de voorbeelden op deze pagina.

SELECT * FROM Pets;

Resultaat:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 1       | 2           | 3         | Fluffy    | 2020-11-20 |
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 3       | 2           | 2         | Scratch   | 2018-10-01 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
| 5       | 1           | 1         | Tweet     | 2020-11-28 |
| 6       | 3           | 4         | Fluffy    | 2020-09-17 |
| 7       | 3           | 2         | Bark      | NULL       |
| 8       | 2           | 4         | Meow      | NULL       |
+---------+-------------+-----------+-----------+------------+
(8 rows affected)

Voorbeeld

Als we alle huisdieren bij een bepaald baasje wilden krijgen, dan zouden we dit kunnen doen:

SELECT *
FROM Pets
WHERE OwnerId = 3;

Resultaat:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 1       | 2           | 3         | Fluffy    | 2020-11-20 |
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
+---------+-------------+-----------+-----------+------------+

Onze query gebruikt de operator is gelijk aan (= ) om de gelijkheid van de waarde van de OwnerId . te vergelijken kolom en 3 .

In dit geval heeft eigenaar nummer 3 3 huisdieren.

Snaren

Gebruik aanhalingstekens rond de tekenreeks wanneer u deze vergelijkt met een tekenreekswaarde. Als we bijvoorbeeld informatie willen krijgen over alle huisdieren met de naam Fluffy, kunnen we het volgende doen:

SELECT *
FROM Pets
WHERE PetName = 'Fluffy';

Resultaat:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 1       | 2           | 3         | Fluffy    | 2020-11-20 |
| 6       | 3           | 4         | Fluffy    | 2020-09-17 |
+---------+-------------+-----------+-----------+------------+

Onze query gebruikt de operator is gelijk aan (= ) om de gelijkheid van de waarde van de PetName . te vergelijken kolom en de tekenreeks Fluffy .

In ons geval kunnen we zien dat het dierenhotel momenteel twee huisdieren heeft, genaamd Fluffy.

Meerdere voorwaarden

Als je meerdere voorwaarden hebt, kun je meerdere is gelijk aan operators gebruiken.

Zoals dit:

SELECT * FROM Pets 
WHERE PetName = 'Fluffy' OR PetName = 'Tweet';

Resultaat:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 1       | 2           | 3         | Fluffy    | 2020-11-20 |
| 5       | 1           | 1         | Tweet     | 2020-11-28 |
| 6       | 3           | 4         | Fluffy    | 2020-09-17 |
+---------+-------------+-----------+-----------+------------+

We kunnen zien dat het de rijen retourneerde waar de PetName kolom was ofwel Fluffy of Tweet .

De voorwaarde negeren

U kunt de NOT . gebruiken operator om de voorwaarde van de is gelijk aan operator teniet te doen. Hier is een voorbeeld:

SELECT *
FROM Pets
WHERE NOT PetName = 'Fluffy';

Resultaat:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 3       | 2           | 2         | Scratch   | 2018-10-01 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
| 5       | 1           | 1         | Tweet     | 2020-11-28 |
| 7       | 3           | 2         | Bark      | NULL       |
| 8       | 2           | 4         | Meow      | NULL       |
+---------+-------------+-----------+-----------+------------+

Een alternatieve manier om dit te doen is om de operator niet gelijk aan te gebruiken, namelijk <> of != (of beide) afhankelijk van uw DBMS.

NULL-waarden

Het is je misschien opgevallen dat onze originele voorbeeldtabel een paar NULL . bevat waarden in de DOB-kolom.

Een kolom met NULL betekent dat het geen waarde heeft. Dit is anders dan 0 of false , of zelfs een lege string.

U kunt de operator is gelijk aan niet gebruiken om te vergelijken met NULL . Dit kan in feite afhangen van uw DBMS en de configuratie ervan. Maar laten we voor nu eens kijken wat er gebeurt als ik de DOB-kolom probeer te vergelijken met NULL .

SELECT * FROM Pets 
WHERE DOB = NULL;

Resultaat:

(0 rows affected)

De manier om te testen op NULL is om IS . te gebruiken .

Daarom zouden we de bovenstaande verklaring als volgt moeten herschrijven.

SELECT * FROM Pets 
WHERE DOB IS NULL;

Resultaat:

+---------+-------------+-----------+-----------+-------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB   |
|---------+-------------+-----------+-----------+-------|
| 7       | 3           | 2         | Bark      | NULL  |
| 8       | 2           | 4         | Meow      | NULL  |
+---------+-------------+-----------+-----------+-------+

NULL waarden kunnen voor beginners lastig zijn om hun hoofd rond te krijgen. Eigenlijk kunnen ze voor ervaren ontwikkelaars lastig zijn om hun hoofd erbij te houden! In SQL, NULL heeft een iets andere betekenis dan NULL in de meeste andere programmeertalen.

Maar het belangrijkste om te onthouden is dat, in SQL, NULL betekent het ontbreken van een waarde. Er is geen waarde. Daarom kunnen we niet zeggen dat het gelijk of niet gelijk is aan iets anders, omdat er om te beginnen geen waarde is.

Als je geïnteresseerd bent, bekijk dan SQL Server ANSI_NULLS Explained om te zien hoe je de manier kunt veranderen NULL waarden worden behandeld in SQL Server.


  1. Hoe kan ik invoegen in een BLOB-kolom vanuit een insert-instructie in sqldeveloper?

  2. Uw PostgreSQL-back-ups valideren op Docker

  3. Hoe gegevens ophalen uit een SQL Server-database in C#?

  4. Wat is een unieke beperking in SQL Server - SQL Server / TSQL-zelfstudie, deel 95