Database
 sql >> база данни >  >> RDS >> Database

SQL Equals (=) Оператор за начинаещи

Операторът за равенство (= ) е може би най-често използваният оператор в SQL. Той сравнява равенството на два израза. Дори ако току-що сте започнали своето SQL пътуване, вероятно ще познавате този оператор.

Изходна таблица

Представете си, че нашата база данни съдържа следната таблица. Това е таблицата, която ще използваме за примерите на тази страница.

SELECT * FROM Pets;

Резултат:

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

Пример

Ако искаме да вземем всички домашни любимци с определен собственик, бихме могли да направим това:

SELECT *
FROM Pets
WHERE OwnerId = 3;

Резултат:

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

Нашата заявка използва оператора за равенство (= ), за да сравните равенството на стойността на OwnerId колона и 3 .

В този случай собственик номер 3 има 3 домашни любимци.

Стрингове

Когато сравнявате със стойност на низ, използвайте кавички около низа. Например, ако искаме да получим информация за всички домашни любимци на име Fluffy, можем да направим следното:

SELECT *
FROM Pets
WHERE PetName = 'Fluffy';

Резултат:

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

Нашата заявка използва оператора за равенство (= ), за да сравните равенството на стойността на PetName колона и низ Fluffy .

В нашия случай можем да видим, че хотелът за домашни любимци в момента има два домашни любимци, наречени Fluffy.

Множество условия

Ако имате няколко условия, можете да използвате множество оператори за равенство.

Като това:

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

Резултат:

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

Можем да видим, че върна редовете, където PetName колоната беше или Fluffy или Tweet .

Отрицание на условието

Можете да използвате NOT оператор за отричане на условието, предоставено от оператора за равенство. Ето един пример:

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

Резултат:

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

Алтернативен начин да направите това е да използвате оператора not equal to, който е или <> или != (или и двете) в зависимост от вашата СУБД.

NULL стойности

Може да сте забелязали, че нашата оригинална примерна таблица съдържа няколко NULL стойности в колоната DOB.

Колона, съдържаща NULL означава, че няма стойност. Това е различно от 0 или false или дори празен низ.

Не можете да използвате оператора equals за сравнение с NULL . Всъщност това може да зависи от вашата СУБД и нейната конфигурация. Но засега нека да разгледаме какво се случва, ако се опитам да сравня колоната DOB с NULL .

SELECT * FROM Pets 
WHERE DOB = NULL;

Резултат:

(0 rows affected)

Начинът за тестване за NULL е да използвате IS .

Следователно ще трябва да пренапишем горното изявление, както следва.

SELECT * FROM Pets 
WHERE DOB IS NULL;

Резултат:

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

NULL ценностите могат да бъдат трудно нещо за начинаещите да си проучат главата. Всъщност те могат да бъдат трудно нещо за опитни разработчици, за да се ориентират! В SQL, NULL има малко по-различно значение от NULL в повечето други езици за програмиране.

Но важното, което трябва да запомните е, че в SQL NULL означава липса на стойност. Няма стойност. Следователно не можем да кажем, че е равно или не е равно на нещо друго, защото няма стойност, с която да започнем.

Ако се интересувате, вижте SQL Server ANSI_NULLS Explained за да видите как можете да промените начина NULL стойностите се третират в 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. Как да инсталирате Libreoffice на Ubuntu 16.04

  2. Apache Spark ODBC драйвер

  3. Разбийте големите операции за изтриване на парчета

  4. Измерване на „режим на наблюдателя“ на SQL Trace спрямо разширени събития

  5. Лоши навици :Фокусиране само върху дисковото пространство при избора на ключове