Database
 sql >> Baza danych >  >> RDS >> Database

SQL Equals (=) Operator dla początkujących

Operator równości (= ) jest prawdopodobnie najczęściej używanym operatorem w SQL. Porównuje równość dwóch wyrażeń. Nawet jeśli dopiero zaczynasz swoją przygodę z SQL, prawdopodobnie znasz ten operator.

Tabela źródłowa

Wyobraź sobie, że nasza baza danych zawiera poniższą tabelę. To jest tabela, której użyjemy dla przykładów na tej stronie.

SELECT * FROM Pets;

Wynik:

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

Przykład

Gdybyśmy chcieli zdobyć wszystkie zwierzaki z określonym właścicielem, moglibyśmy to zrobić:

SELECT *
FROM Pets
WHERE OwnerId = 3;

Wynik:

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

Nasze zapytanie używa operatora równości (= ), aby porównać równość wartości OwnerId kolumna i 3 .

W tym przypadku właściciel numer 3 ma 3 zwierzęta.

Struny

Porównując z wartością ciągu, użyj cudzysłowów wokół ciągu. Na przykład, jeśli chcielibyśmy uzyskać informacje o wszystkich zwierzakach o imieniu Fluffy, moglibyśmy wykonać następujące czynności:

SELECT *
FROM Pets
WHERE PetName = 'Fluffy';

Wynik:

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

Nasze zapytanie używa operatora równości (= ), aby porównać równość wartości PetName kolumna i ciąg Fluffy .

W naszym przypadku widzimy, że hotel dla zwierząt ma obecnie dwa zwierzęta o nazwie Fluffy.

Wiele warunków

Jeśli masz wiele warunków, możesz użyć wielu operatorów równości.

Tak:

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

Wynik:

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

Widzimy, że zwrócił wiersze, w których PetName kolumna była albo Fluffy lub Tweet .

Negowanie warunku

Możesz użyć NOT operator, aby zanegować warunek dostarczony przez operator równości. Oto przykład:

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

Wynik:

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

Alternatywnym sposobem na zrobienie tego jest użycie operatora nierównego, którym jest albo <> lub != (lub oba) w zależności od systemu DBMS.

Wartości NULL

Być może zauważyłeś, że nasza oryginalna przykładowa tabela zawiera kilka NULL wartości w kolumnie DOB.

Kolumna zawierająca NULL oznacza, że ​​nie ma wartości. Różni się to od 0 lub false lub nawet pusty ciąg.

Nie możesz użyć operatora równości do porównania z NULL . W rzeczywistości może to zależeć od twojego DBMS i jego konfiguracji. Ale na razie spójrzmy, co się stanie, jeśli spróbuję porównać kolumnę DOB z NULL .

SELECT * FROM Pets 
WHERE DOB = NULL;

Wynik:

(0 rows affected)

Sposób na testowanie pod kątem NULL jest użycie IS .

Dlatego musielibyśmy przepisać powyższe stwierdzenie w następujący sposób.

SELECT * FROM Pets 
WHERE DOB IS NULL;

Wynik:

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

NULL wartości mogą być trudne dla początkujących. W rzeczywistości mogą być trudne dla doświadczonych programistów! W SQL NULL ma nieco inne znaczenie niż NULL w większości innych języków programowania.

Ale ważną rzeczą do zapamiętania jest to, że w SQL NULL oznacza brak wartości. Nie ma wartości. Dlatego nie możemy powiedzieć, że jest równy lub nie równy czemuś innemu, ponieważ nie ma wartości, od której można by zacząć.

Jeśli jesteś zainteresowany, zobacz SQL Server ANSI_NULLS Explained aby zobaczyć, jak możesz zmienić sposób, w jaki NULL wartości są traktowane w SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podłączanie PowerShell do Salesforce.com

  2. AKTUALIZACJE statystyk

  3. Dodawanie bardziej zaawansowanych funkcji, takich jak zarządzanie kategoriami i głosowanie w wątkach i postach

  4. Instrukcja SQL INSERT INTO

  5. Samouczek SQL JOIN z przykładami