Sql or and or: Combining the AND and OR Conditions

Содержание

Предикаты SQL AND и OR: примеры, синтаксис

Операторы SQL AND и SQL OR — предикаты языка SQL, служащие для создания логических выражений. В SQL предикатами называются операторы, возвращающие значения TRUE или FALSE. Предикат SQL AND — эквивалент логического умножения (конъюнкции), предикат SQL OR — эквивалент логического сложения (дизъюнкции).

Таблица истинности для предикатов следующая:

first_expressionlast_expressionANDOR
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
FALSETRUEFALSETRUE
FALSEFALSEFALSEFALSE

Это значит, что, для выполнения условия предиката SQL AND должны быть выполнены оба условия. Для выполнения предиката SQL OR должно быть выполнено хотя бы одно условие.

Предикат SQL AND имеет следующий синтаксис:

boolean_expression AND boolean_expression

Предикат SQL OR имеет следующий синтаксис:

boolean_expression OR boolean_expression

Примеры оператора SQL AND & ORИмеется следующая таблица Planets:

IDPlanetNameRadiusSunSeasonOpeningYearHavingRingsOpener
1Mars33966871659NoChristiaan Huygens
2Saturn6026810759.22Yes
3Neptune24764601901846YesJohn Couch Adams
4Mercury2439115.881631NoNicolaus Copernicus
5Venus60512431610NoGalileo Galilei

Пример 1. Используя операторы SQL AND и SQL OR вывести записи планет, у которых радиус планеты меньше 10000 и открытых (OpeningYear) после 1620:

SELECT *
FROM Planets
WHERE Radius < 10000 AND OpeningYear > 1620

Результат:

IDPlanetNameRadiusSunSeasonOpeningYearHavingRingsOpener
1Mars33966871659NoChristiaan Huygens
4Mercury2439115.881631NoNicolaus Copernicus

Пример 2. Используя операторы SQL AND и SQL OR вывести записи планет, названия которых начинаются с буквы «N» или заканчиваются на букву «s» и не имеющие колец:

SELECT *
FROM Planets
WHERE (PlanetName LIKE 'N%'
OR PlanetName LIKE '%s')
AND HavingRings = 'No'

Результат:

IDPlanetNameRadiusSunSeasonOpeningYearHavingRingsOpener
1Mars33966871659NoChristiaan Huygens
5Venus60512431610NoGalileo Galilei

В этом примере используются как предикат SQL AND так и SQL OR. Конечно же, в запросах  их можно использовать сколько угодно раз (так же как и скобки, которые их ограничивают), для задания более точного условия выборки.

SQL приоритет логических операторов: And и Or

Эквивалентны ли два приведенных ниже утверждения?

SELECT [...]
FROM [...]
WHERE some_col in (1,2,3,4,5) AND some_other_expr

и

SELECT [...]
FROM [...]
WHERE some_col in (1,2,3) or some_col in (4,5) AND some_other_expr

Есть ли какая-то таблица истинности, которую я мог бы использовать для проверки этого?

sql

logical-operators

operator-precedence

Поделиться

Источник


nc.    

06 августа 2009 в 20:15

4 ответа


  • SQL поиск с помощью логических операторов

    У меня есть веб-приложение asp.net, которому нужна страница поиска, которая ищет данные в определенной таблице (SQL). Сегодня у него есть только простой запрос LIKE, использующий параметризованный sql: SqlParameter[] param = new SqlParameter[1]; param[0] = new SqlParameter(@searchText,…

  • Приоритет логических операторов с NAND, NOR, XNOR

    Я искал в интернете, но не нашел решения этой проблемы. Каков логический приоритет для операторов NAND , NOR и XNOR ? Я имею в виду, рассматривая в качестве примера выражение A AND B NAND C какой оператор должен быть оценен в первую очередь? Очевидно, что NAND можно перевести как NOT-AND (так как…



315

And имеет приоритет над Or , поэтому, даже если a <=> a1 Or a2

Where a And b 

это не то же самое, что

Where a1 Or a2 And b,

потому что это будет выполнено как

Where a1 Or (a2 And b)

и то, что вы хотите, чтобы они были одинаковыми, заключается в следующем (использование скобок для переопределения правил приоритета):

 Where (a1 Or a2) And b

Вот пример для иллюстрации:

Declare @x tinyInt = 1
Declare @y tinyInt = 0
Declare @z tinyInt = 0

Select Case When @x=1 OR @y=1 And @z=1 Then 'T' Else 'F' End -- outputs T
Select Case When (@x=1 OR @y=1) And @z=1 Then 'T' Else 'F' End -- outputs F

Для тех, кто любит обращаться к справочникам (в алфавитном порядке):

Поделиться


Charles Bretana    

06 августа 2009 в 20:19



38

Я добавлю 2 балла:

  • «IN» фактически является последовательным ORs с круглыми скобками вокруг них
  • AND имеет приоритет над OR на всех языках, которые я знаю

Таким образом, 2 выражения просто не равны.

WHERE some_col in (1,2,3,4,5) AND some_other_expr
--to the optimiser is this
WHERE
     (
     some_col = 1 OR
     some_col = 2 OR 
     some_col = 3 OR 
     some_col = 4 OR 
     some_col = 5
     )
     AND
     some_other_expr

Итак, когда вы разбиваете предложение IN, вы разделяете последовательный ORs и меняете приоритет.

Поделиться


gbn    

07 августа 2009 в 05:20



23

  1. Арифметические операторы
  2. Оператор конкатенации
  3. Условия сравнения
  4. IS [NOT] NULL, LIKE, [NOT] IN
  5. [NOT] BETWEEN
  6. Не равны
  7. NOT логическое условие
  8. AND логическое условие
  9. OR логическое условие

Вы можете использовать круглые скобки для переопределения правил приоритета.

Поделиться


Yassine Abdul-Rahman    

27 марта 2014 в 22:49


  • Приоритет Логических Операторов

    Через таблицу приоритета операторов Java: Логический оператор ‘ / ‘OR имеет более высокий приоритет, чем логический оператор’ && ‘ AND. Я проверил вышеизложенный факт, используя следующий код int y = 5; int x = 2; if( x++ > 2 && ++y > 2 | true ) ; //do nothing…

  • Логический AND и логический OR приоритет операторов

    Логический AND && имеет более высокий приоритет, чем логический OR || . Это просто java код http://ideone.com/KWUOla import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { if( A() || B() && C()…



9

Запрос для отображения таблицы истинности логического выражения с 3 переменными :

;WITH cteData AS
(SELECT 0 AS A, 0 AS B, 0 AS C
UNION ALL SELECT 0,0,1
UNION ALL SELECT 0,1,0
UNION ALL SELECT 0,1,1
UNION ALL SELECT 1,0,0
UNION ALL SELECT 1,0,1
UNION ALL SELECT 1,1,0
UNION ALL SELECT 1,1,1
)
SELECT cteData.*,
    CASE WHEN

(A=1) OR (B=1) AND (C=1)

    THEN 'True' ELSE 'False' END AS Result
FROM cteData

Результаты за (A=1) OR (B=1) AND (C=1) :

A   B   C   Result
0   0   0   False
0   0   1   False
0   1   0   False
0   1   1   True
1   0   0   True
1   0   1   True
1   1   0   True
1   1   1   True

Результаты для (A=1) OR ( (B=1) AND (C=1) ) те же.

Результаты для ( (A=1) OR (B=1) ) AND (C=1) :

A   B   C   Result
0   0   0   False
0   0   1   False
0   1   0   False
0   1   1   True
1   0   0   False
1   0   1   True
1   1   0   False
1   1   1   True

Поделиться


AjV Jsy    

18 июня 2015 в 14:29


Похожие вопросы:

Приоритет булевых операторов

Я хотел бы знать, зависит ли приоритет операторов в языках программирования от реализации или существует фиксированное правило, которому следуют все языки. И если возможно, не могли бы вы сначала…

математический VS приоритет логических операторов

почему в большинстве языков программирования приоритет математических операторов отличается от приоритета логических операторов? значение: почему x / y * z вычисляется до ( x / y ) * z , так что /…

В чем разница между короткими ( & ,|) и длинными ( & & ,||) формами логических операторов AND, OR в R?

Возможный Дубликат : R: subset() логический оператор-и для условий цепочки должен быть &, а не && В чем разница между короткими ( & , | ) и длинными ( && , || ) формами…

SQL поиск с помощью логических операторов

У меня есть веб-приложение asp.net, которому нужна страница поиска, которая ищет данные в определенной таблице (SQL). Сегодня у него есть только простой запрос LIKE, использующий параметризованный…

Приоритет логических операторов с NAND, NOR, XNOR

Я искал в интернете, но не нашел решения этой проблемы. Каков логический приоритет для операторов NAND , NOR и XNOR ? Я имею в виду, рассматривая в качестве примера выражение A AND B NAND C какой…

Приоритет Логических Операторов

Через таблицу приоритета операторов Java: Логический оператор ‘ / ‘OR имеет более высокий приоритет, чем логический оператор’ && ‘ AND. Я проверил вышеизложенный факт, используя следующий…

Логический AND и логический OR приоритет операторов

Логический AND && имеет более высокий приоритет, чем логический OR || . Это просто java код http://ideone.com/KWUOla import java.util.*; import java.lang.*; import java.io.*; class Ideone {…

Приоритет операторов|, ~ и&?

Я запутался в этих логических операторах. может ли кто-нибудь объяснить приоритет и ассоциативные правила этих операторов? в битовых операциях a=011, b=010 и c=001 в d следует ли сначала отрицать a…

Привязка логических операторов AND и OR в Python

Вчера при построении условного оператора я столкнулся с тем, что мне кажется странным правилом приоритета. Заявление, которое у меня было, было if not condition_1 or not condition_2 and not…

x86 процессор assembly язык AND и OR приоритет операторов

В настоящее время я изучаю язык assembly, следуя книге Кипа Ирвина Assembly language for x86 processor. В книге автор утверждал, что оператор NOT имеет наивысший приоритет, за ним следуют AND и OR Я…

Руководство по SQL. Связывающие условные операторы AND/OR. – PROSELYTE

Мы используем условные операторы AND/OR для комбинирования нескольких условий с целью получения более конкретной выборки данных. Данные операторы также называют связывающими.


Оператор AND

Оператор AND позволяет нам использовать несколько условий при запросах с использованием WHERE. В результате мы получаем только те записи, которые соответствуют всем указанным условиям.

Общий вид такого запроса имеет следующий вид:


SELECT колонка1, колонка2, колонкаN 
FROM имя_таблицы
WHERE [условие1] AND [условие2]... AND [условиеN];

Пример:
Предположим, что у нас есть таблица developers, которая содержит следующие данные:


+----+-------------------+------------+------------+--------+
| ID | NAME              | SPECIALTY  | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
|  1 | Eugene Suleimanov | Java       |          2 |   2000 |
|  2 | Peter Romanenko   | Java       |          3 |   3500 |
|  3 | Andrei Komarov    | JavaScript |          2 |   2100 |
|  4 | Konstantin Geiko  | C#         |          2 |   2000 |
|  5 | Asya Suleimanova  | UI/UX      |          2 |   1800 |
+----+-------------------+------------+------------+--------+

Допустим, нам необходимо получить всех Java разработчиков с зарплатой более 3000.
Для этого мы должны составить следующий запрос:


mysql> SELECT * FROM developers WHERE SPECIALTY LIKE 'java' AND SALARY > 3000;

В результате мы получим следующее:


+----+-----------------+-----------+------------+--------+
| ID | NAME            | SPECIALTY | EXPERIENCE | SALARY |
+----+-----------------+-----------+------------+--------+
|  2 | Peter Romanenko | Java      |          3 |   3500 |
+----+-----------------+-----------+------------+--------+
1 row in set (0.01 sec)

Оператор OR

Мы используем оператор OR для комбинирования нескольких условий в запросах, которые используют WHERE. В результате выполнения такого запроса мы получаем результаты, которые соответствуют хотя бы одному из указанных условий.

Общий вид таких запросов выглядит следующим образом:


SELECT колонка1, колонка2, колонкаN 
FROM имя_таблицы
WHERE [условие1] OR [условие2]... OR [условиеN];

Пример:
Предположим, что у нас есть таблица developers, которая содержит следующие данные:


+----+-------------------+------------+------------+--------+
| ID | NAME              | SPECIALTY  | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
|  1 | Eugene Suleimanov | Java       |          2 |   2000 |
|  2 | Peter Romanenko   | Java       |          3 |   3500 |
|  3 | Andrei Komarov    | JavaScript |          2 |   2100 |
|  4 | Konstantin Geiko  | C#         |          2 |   2000 |
|  5 | Asya Suleimanova  | UI/UX      |          2 |   1800 |
+----+-------------------+------------+------------+--------+

Теперь предположим, что нам необходимо получить разработчиков, чей опыт более 2 лет или зарплата более 2000.
Для этого нам необходимо использовать следующую команду:


SELECT * 
FROM developers 
WHERE EXPERIENCE > 2 OR SALARY > 2000;

В результате мы получим следующие записи:


+----+-----------------+------------+------------+--------+
| ID | NAME            | SPECIALTY  | EXPERIENCE | SALARY |
+----+-----------------+------------+------------+--------+
|  2 | Peter Romanenko | Java       |          3 |   3500 |
|  3 | Andrei Komarov  | JavaScript |          2 |   2100 |
+----+-----------------+------------+------------+--------+

На этом мы заканчиваем изучение связывающих условных операторов AND/OR.
В следующей статье мы рассмотрим способ изменения уже существующих данных.

SQL запросы быстро. Часть 1 / Хабр

Введение

Язык SQL очень прочно влился в жизнь бизнес-аналитиков и требования к кандидатам благодаря простоте, удобству и распространенности. Из собственного опыта могу сказать, что наиболее часто SQL используется для формирования выгрузок, витрин (с последующим построением отчетов на основе этих витрин) и администрирования баз данных. И поскольку повседневная работа аналитика неизбежно связана с выгрузками данных и витринами, навык написания SQL запросов может стать фактором, из-за которого кандидат или получит преимущество, или будет отсеян. Печальная новость в том, что не каждый может рассчитывать получить его на студенческой скамье. Хорошая новость в том, что в изучении SQL нет ничего сложного, это быстро, а синтаксис запросов прост и понятен. Особенно это касается тех, кому уже доводилось сталкиваться с более сложными языками.

Обучение SQL запросам я разделил на три части. Эта часть посвящена базовому синтаксису, который используется в 80-90% случаев. Следующие две части будут посвящены подзапросам, Join’ам и специальным операторам. Цель гайдов: быстро и на практике отработать синтаксис SQL, чтобы добавить его к арсеналу навыков.

Практика

Введение в синтаксис будет рассмотрено на примере открытой базы данных, предназначенной специально для практики SQL. Чтобы твое обучение прошло максимально эффективно, открой ссылку ниже в новой вкладке и сразу запускай приведенные примеры, это позволит тебе лучше закрепить материал и самостоятельно поработать с синтаксисом.

Кликнуть здесь

После перехода по ссылке можно будет увидеть сам редактор запросов и вывод данных в центральной части экрана, список таблиц базы данных находится в правой части.

Структура sql-запросов

Общая структура запроса выглядит следующим образом:

SELECT ('столбцы или * для выбора всех столбцов; обязательно')
FROM ('таблица; обязательно')
WHERE ('условие/фильтрация, например, city = 'Moscow'; необязательно')
GROUP BY ('столбец, по которому хотим сгруппировать данные; необязательно')
HAVING ('условие/фильтрация на уровне сгруппированных данных; необязательно')
ORDER BY ('столбец, по которому хотим отсортировать вывод; необязательно')

Разберем структуру. Для удобства текущий изучаемый элемент в запроса выделяется CAPS’ом.

SELECT, FROM

SELECT, FROM — обязательные элементы запроса, которые определяют выбранные столбцы, их порядок и источник данных.

Выбрать все (обозначается как *) из таблицы Customers:

SELECT * FROM Customers

Выбрать столбцы CustomerID, CustomerName из таблицы Customers:

SELECT CustomerID, CustomerName FROM Customers
WHERE

WHERE — необязательный элемент запроса, который используется, когда нужно отфильтровать данные по нужному условию. Очень часто внутри элемента where используются IN / NOT IN для фильтрации столбца по нескольким значениям, AND / OR для фильтрации таблицы по нескольким столбцам.

Фильтрация по одному условию и одному значению:

select * from Customers
WHERE City = 'London'

Фильтрация по одному условию и нескольким значениям с применением IN (включение) или NOT IN (исключение):

select * from Customers
where City IN ('London', 'Berlin')
select * from Customers
where City NOT IN ('Madrid', 'Berlin','Bern')

Фильтрация по нескольким условиям с применением AND (выполняются все условия) или OR (выполняется хотя бы одно условие) и нескольким значениям:

select * from Customers
where Country = 'Germany' AND City not in ('Berlin', 'Aachen') AND CustomerID > 15
select * from Customers
where City in ('London', 'Berlin') OR CustomerID > 4

GROUP BY

GROUP BY — необязательный элемент запроса, с помощью которого можно задать агрегацию по нужному столбцу (например, если нужно узнать какое количество клиентов живет в каждом из городов).

При использовании GROUP BY обязательно:

  1. перечень столбцов, по которым делается разрез, был одинаковым внутри SELECT и внутри GROUP BY,
  2. агрегатные функции (SUM, AVG, COUNT, MAX, MIN) должны быть также указаны внутри SELECT с указанием столбца, к которому такая функция применяется.

Группировка количества клиентов по городу:

select City, count(CustomerID) from Customers
GROUP BY City

Группировка количества клиентов по стране и городу:

select Country, City, count(CustomerID) from Customers
GROUP BY Country, City

Группировка продаж по ID товара с разными агрегатными функциями: количество заказов с данным товаром и количество проданных штук товара:


select ProductID, COUNT(OrderID), SUM(Quantity) from OrderDetails
GROUP BY ProductID

Группировка продаж с фильтрацией исходной таблицы. В данном случае на выходе будет таблица с количеством клиентов по городам Германии:


select City, count(CustomerID) from Customers
WHERE Country = 'Germany'
GROUP BY City

Переименование столбца с агрегацией с помощью оператора AS. По умолчанию название столбца с агрегацией равно примененной агрегатной функции, что далее может быть не очень удобно для восприятия.

select City, count(CustomerID) AS Number_of_clients from Customers
group by City

HAVING

HAVING — необязательный элемент запроса, который отвечает за фильтрацию на уровне сгруппированных данных (по сути, WHERE, но только на уровень выше).

Фильтрация агрегированной таблицы с количеством клиентов по городам, в данном случае оставляем в выгрузке только те города, в которых не менее 5 клиентов:


select City, count(CustomerID) from Customers
group by City
HAVING count(CustomerID) >= 5 

В случае с переименованным столбцом внутри HAVING можно указать как и саму агрегирующую конструкцию count(CustomerID), так и новое название столбца number_of_clients:


select City, count(CustomerID) as number_of_clients from Customers
group by City
HAVING number_of_clients >= 5

Пример запроса, содержащего WHERE и HAVING. В данном запросе сначала фильтруется исходная таблица по пользователям, рассчитывается количество клиентов по городам и остаются только те города, где количество клиентов не менее 5:


select City, count(CustomerID) as number_of_clients from Customers
WHERE CustomerName not in ('Around the Horn','Drachenblut Delikatessend')
group by City
HAVING number_of_clients >= 5

ORDER BY

ORDER BY — необязательный элемент запроса, который отвечает за сортировку таблицы.

Простой пример сортировки по одному столбцу. В данном запросе осуществляется сортировка по городу, который указал клиент:


select * from Customers
ORDER BY City

Осуществлять сортировку можно и по нескольким столбцам, в этом случае сортировка происходит по порядку указанных столбцов:


select * from Customers
ORDER BY Country, City

По умолчанию сортировка происходит по возрастанию для чисел и в алфавитном порядке для текстовых значений. Если нужна обратная сортировка, то в конструкции ORDER BY после названия столбца надо добавить DESC:


select * from Customers
order by CustomerID DESC

Обратная сортировка по одному столбцу и сортировка по умолчанию по второму:

select * from Customers
order by Country DESC, City

JOIN

JOIN — необязательный элемент, используется для объединения таблиц по ключу, который присутствует в обеих таблицах. Перед ключом ставится оператор ON.

Запрос, в котором соединяем таблицы Order и Customer по ключу CustomerID, при этом перед названиям столбца ключа добавляется название таблицы через точку:

select * from Orders
JOIN Customers ON Orders.CustomerID = Customers.CustomerID

Нередко может возникать ситуация, когда надо промэппить одну таблицу значениями из другой. В зависимости от задачи, могут использоваться разные типы присоединений. INNER JOIN — пересечение, RIGHT/LEFT JOIN для мэппинга одной таблицы знаениями из другой,


select * from Orders
join Customers on Orders.CustomerID = Customers.CustomerID
where Customers.CustomerID >10

Внутри всего запроса JOIN встраивается после элемента from до элемента where, пример запроса:

Другие типы JOIN’ов можно увидеть на замечательной картинке ниже:


В следующей части подробнее поговорим о типах JOIN’ов и вложенных запросах.

При возникновении вопросов/пожеланий, всегда прошу обращаться!

SQL ГДЕ с И, ИЛИ, НЕ

И, ИЛИ, и НЕ объяснено

Условия WHERE можно комбинировать с AND, OR и NOT.

Эти логических условий всегда возвращают истину или ложь.

A WHERE с AND требует, чтобы выполнялись два условия.

Для WHERE с OR требуется, чтобы выполнялось одно из двух условий.

WHERE с NOT отменяет указанное условие.

Задача: Перечислить всех поставщиков в Париже, Франция.

скопировано в буфер обмена

 ВЫБРАТЬ *
  ОТ поставщика
 ГДЕ Страна = 'Франция' И Город = 'Париж'
 
  ВЫБРАТЬ *
  ОТ поставщика
 ГДЕ Страна = 'Франция' И Город = 'Париж'
  

Попробуйте вживую

Предложение WHERE с AND.

ВЫБЕРИТЕ имена столбцов
  ОТ имя-таблицы
 ГДЕ условие1 И условие2
 

Предложение WHERE с OR.

ОБНОВЛЕНИЕ имя-таблицы
   УСТАНОВИТЬ имя-столбца = значение
 ГДЕ условие1 ИЛИ условие2
 

Предложение WHERE с NOT.

УДАЛИТЬ имя-таблицы
 ГДЕ НЕ условие
 

SQL ГДЕ с И

КЛИЕНТ
Идентификатор
Имя
Фамилия
Город
Страна
Телефон

Задача: Найдите клиента по имени Томас Харди.

скопировано в буфер обмена

 ВЫБЕРИТЕ Id, FirstName, LastName, City, Country
  ОТ Заказчика
 ГДЕ FirstName = 'Thomas' И LastName = 'Hardy'
 
  ВЫБРАТЬ Id, FirstName, LastName, City, Country
  ОТ Заказчика
 ГДЕ FirstName = 'Thomas' И LastName = 'Hardy'
  

Попробуйте вживую

Результат: 1 запись.

Идентификатор Имя Фамилия Город Страна
4 Томас Харди Лондон Великобритания

SQL ГДЕ с OR

КЛИЕНТ
Идентификатор
Имя
Фамилия
Город
Страна
Телефон

Задача : Составьте список всех клиентов из Испании или Франции.

скопировано в буфер обмена

 ВЫБЕРИТЕ Id, FirstName, LastName, City, Country
  ОТ Заказчика
 ГДЕ Страна = "Испания" ИЛИ Страна = "Франция"
 
  ВЫБРАТЬ Id, FirstName, LastName, City, Country
  ОТ Заказчика
 ГДЕ Страна = "Испания" ИЛИ Страна = "Франция"
  

Попробуйте вживую

Результат: 16 записей.

Идентификатор Имя Фамилия Город Страна
7 Frédérique Citeaux Страсбург Франция
8 Мартин Sommer Мадрид Испания
9 Лоуренс Lebihan Марсель Франция
18 Жанин Лабрун Нант Франция
22 Диего Роэль Мадрид Испания
23 Мартина Рансе Лилль Франция

SQL ГДЕ с НЕ

КЛИЕНТ
Идентификатор
Имя
Фамилия
Город
Страна
Телефон

Проблема : Перечислите всех клиентов не из США.

скопировано в буфер обмена

 ВЫБЕРИТЕ Id, FirstName, LastName, City, Country
  ОТ Заказчика
 ГДЕ НЕ Страна = 'США'
 
  ВЫБРАТЬ Id, FirstName, LastName, City, Country
  ОТ Заказчика
 ГДЕ НЕ Страна = 'США'
  

Попробуйте вживую

Результат: 78 записей.

Идентификатор Имя Фамилия Город Страна
1 Мария Андерс Берлин Германия
2 Ана Трухильо Мексика Д.F. Мексика
3 Антонио Морено México D.F. Мексика
4 Томас Харди Лондон Великобритания
5 Кристина Berglund Лулео Швеция
6 Ханна Моос Мангейм Германия
7 Frédérique Citeaux Страсбург Франция

SQL ГДЕ с НЕ, И

ЗАКАЗ
Id
OrderDate
OrderNumber
CustomerId
TotalAmount

Задача : Перечислите все заказы, которые не находятся в диапазоне от 50 до 15000 долларов.

скопировано в буфер обмена

 ВЫБРАТЬ Id, OrderDate, CustomerId, TotalAmount
  ОТ [Заказ]
 ГДЕ НЕТ (TotalAmount> = 50 AND TotalAmount <= 15000)
 ЗАКАЗАТЬ ПО TotalAmount DESC
 
  ВЫБРАТЬ Id, OrderDate, CustomerId, TotalAmount
  ОТ [Заказ]
 ГДЕ НЕТ (TotalAmount> = 50 AND TotalAmount <= 15000)
 ЗАКАЗАТЬ ПО TotalAmount DESC
  

Попробуйте вживую

Результат: 16 записей.

Идентификатор Дата заказа CustomerId Всего
618 02.02.2014 00:00:00 63 17250,00
783 17.04.2014 00:00:00 71 16321,90
734 27.03.2014 00:00:00 34 15810.00
175 22.01.2013 00:00:00 27 49,80
24 01.08.2012 00:00:00 75 48,00

SQL Server Операторы И & ИЛИ

В этом учебном курсе по SQL основное внимание уделяется логическим операторам И & ИЛИ SQL Server , а также приведены объяснения, примеры и упражнения.Для упражнений этого урока используйте эту ссылку.

Это руководство является частью нескольких сообщений, в которых объясняется, как использовать предложение WHERE в SQL Server. Чтобы прочитать дополнительные сообщения по этой теме, воспользуйтесь следующими ссылками:


SQL Server Операторы AND & OR

Назначение этих операторов SQL Server - разрешить фильтрацию на основе нескольких условий. Используя эти операторы, вы можете объединить результат двух (или более) условий для получения на их основе одного результата, например:

Имя сотрудника Заработная плата ID отдела
Энн 10000 90
Давид 9000 80
Джон 8000 70
Джордж 7000 70
Роджер 5000 70
Шон 4000 40

SQL Server И оператор

И требует, чтобы выполнялись все условия.

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ зарплата> 6000
И
      Department_id = 70
 

И указывает на то, что должны быть выполнены все условия - сотрудники, чья зарплата выше 6000, а номер отдела - 70.

Сотрудникам, отвечающим обоим этим условиям, являются: Джон и Джордж (всего 2 сотрудника).

SQL Server OR Оператор

ИЛИ требует, чтобы выполнялось любое из условий.

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ зарплата> 6000
ИЛИ
      Department_id = 70
 

OR указывает, что должно быть выполнено хотя бы одно из условий - сотрудники, чья зарплата выше 6000 или чей номер отдела равен 70.

  • Для Шона - ни одно из этих условий не выполнено.
  • Для Роджера номер отдела 70 - выполняется одно условие.
  • Для Джона и Джорджа зарплата выше 6000 и номер отдела 70 - оба условия соблюдены.
  • Для Энн и Дэвида зарплата выше 6000 - выполняется одно условие.

5 сотрудников соответствуют хотя бы одному из этих условий.

Примечание:

Примечание: ключевое слово WHERE появляется только один раз.После оператора И или оператора ИЛИ укажите дополнительное условие без повторного указания ключевого слова WHERE.

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ зарплата> 6000
ИЛИ
ГДЕ Department_id = 70
-- (Ошибка)

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ зарплата> 6000
ИЛИ
      Department_id = 70
- Действительное заявление
 

Порядок старшинства

Оператор AND SQL Server имеет приоритет над оператором OR SQL Server (точно так же, как операция умножения имеет приоритет над операцией сложения).

Следующий оператор SQL Server SELECT используется для отображения сотрудников, которые:

(первое условие) иметь роль «DBA».

или:

(Второе условие) имеют роль «Менеджер» и , чья зарплата выше 8000.

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ Job_Title = 'DBA'
ИЛИ
         Job_Title = 'Менеджер' И зарплата> 8000
 

Изменение порядка приоритета

Для изменения порядка приоритетов операторов OR и AND в SQL Server требуются круглые скобки (точно так же, как круглые скобки изменяют порядок приоритетов между операциями математического сложения и умножения).

Следующий оператор SQL Server SELECT используется для отображения сотрудников, которые:

(первое условие) иметь роль «DBA» или , чья зарплата выше 8000.

и

(второе условие) иметь фамилию, содержащую букву «а».

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ (Job_Title = 'DBA' ИЛИ ​​Заработная плата> 8000)
И
       Фамилия НРАВИТСЯ "% a%"
 

SQL: необходимо использовать круглые скобки с условием И / ИЛИ с предложением where, чтобы получить ожидаемый результат

Обязательны ли скобки в SQL: В этой статье будет объяснена разница между простым запросом на выборку SQL с использованием скобок и без скобок, и вы заметите разные результаты каждого запроса.Однажды мой младший задал мне один вопрос, почему я использую круглые скобки в большинстве своих SQL-запросов и действительно ли необходимо использовать круглые скобки. Тогда я подумал, почему бы не написать об этом пост, чтобы он помог другим.

Мой ответ был ДА, я использую круглые скобки для привязки компонентов предложений where, т. Е. Если запрос имеет несколько условий and or, то необходимо использовать круглые скобки для обеспечения правильного порядка операций. Короче говоря, для сложных запросов необходимо использовать круглые скобки, а для простых запросов вы можете избежать круглых скобок.

Посмотрим на примере

Пример 1: Простой запрос SQL с круглыми скобками или без них

  • Простой запрос без скобок:
  ВЫБРАТЬ *
ОТ сотрудника
ГДЕ Department_id = 1  

Вот результат выполнения простого SQL-запроса:

  • Простой запрос со скобками: Теперь мы пишем тот же запрос со скобками.
  ВЫБРАТЬ *
ОТ сотрудника
ГДЕ (Department_id = 1)  

Вот результат вышеприведенного запроса:

Как вы увидите, оба дают одинаковый результат.Здесь, в примере 1, это не повлияет на результат, поскольку это простой запрос. Теперь перейдем к примеру 2.

Также читайте: 1 лучший сценарий SQL для резервного копирования всех баз данных.

Пример 2: Сложный SQL-запрос с круглыми скобками или без них (с использованием и / или условием)

  • Сложный SQL-запрос без скобок:
  ВЫБРАТЬ *
ОТ сотрудника
ГДЕ Department_id = 1 ИЛИ Department_id = 2
И зарплата <3000  

Вот результат:

SQL-запрос без скобок.

  • Сложный SQL-запрос без скобок:
    Теперь мы напишем тот же запрос со скобками, т.е. используя круглую скобку над условием и или.
  ВЫБРАТЬ *
ОТ сотрудника
ГДЕ (идентификатор_отдела = 1 ИЛИ ид_отдела = 2)
И (зарплата <3000)  

Вот результат вышеуказанного запроса:

Вы можете легко понять, что оба результата разные. Здесь, в примере 2, круглые скобки определяют порядок, в котором оцениваются условия И и ИЛИ, аналогично тому, что мы узнали в математическом порядке операций (BODMAS).

Круглые скобки указывают SQL Server игнорировать порядок оценки и сначала оценивать то, что указано в круглых скобках, а затем оценивать вторую часть предложения WHERE. Использование sql и / или запросов без круглых скобок дает неверную запись.

Также читайте: Как получить часть времени из Datetime на сервере MS SQL?

Другая справочная ссылка:

SQL условия И и ИЛИ | Решения для баз данных для Microsoft Access

SQL - несколько условий; с использованием условий И и ИЛИ:

В предыдущей статье, используя
Предложение WHERE с оператором SQL SELECT мы продемонстрировали, как
вы должны использовать предложение SQL WHERE для условного выбора данных из
таблица базы данных.Предложение WHERE может быть простым и использовать только
единичное условие (как в предыдущей статье),
или его можно использовать для включения нескольких условий поиска.

SQL позволяет нам комбинировать два или более простых условия с помощью
Операторы AND и OR или NOT. Любое количество простых условий может быть
присутствовать в одном операторе SQL, чтобы мы могли создавать сложные WHERE
предложения, которые позволяют нам контролировать, какие строки включаются в наш запрос
Результаты.

Мы будем использовать следующий синтаксис для выполнения запроса SQL SELECT с
несколько условий в предложении WHERE:

 ВЫБРАТЬ список_столбцов
FROM table_name
WHERE column_name condition {[AND | OR} column_name condition} 

Порядок приоритета логических операторов НЕ (наивысший),
за которым следует И, за которым следует ИЛИ. Порядок оценки при этом
уровень приоритета слева направо.Круглые скобки могут использоваться для
переопределить этот порядок в условии поиска.

Если мы включим в запрос несколько операторов, SQL Server оценит
их в следующем порядке:

  1. Круглые скобки - если вы группируете условные операторы SQL вместе
    в скобках, SQL Server сначала оценивает их содержимое.
  2. Арифметика - умножение (с использованием операторов *, / или%)
  3. Арифметика - сложение (с использованием операторов + или -)
  4. Другое - Конкатенатор строк (+)
  5. логический - НЕ
  6. логический - И
  7. логический - ИЛИ

Теперь давайте посмотрим несколько примеров использования нескольких условий для
предложение WHERE в операторе SQL SELECT.Мы будем использовать следующие
Таблица данных сотрудников:

)

)

)

EmpName EmpAddress EmpTown Emp Почтовый индекс EmpAge
Элейн Джонс 1 Старая дорога Манчестер М27 1СН 28
Дэвид Томас Конец переулка, 245 Линкольн LN34 2-й 41
Саймон Ли Ластовый переулок, 9 ( Уиган WN3 0NR 58
Лесли Уорд 3 North End Road Ноттингем NG8 2LJ 30
Гарри Уэбб 1002 Trinity Road Sth Суиндон SN2 1JH 22
Ронни Скотт 1-й переулок (индекс Ноттингем NG25 9LK 55
Джанет Фуллер 14 Гаррет Хилл Лондон SW1 40
Салли Тиммингс Пустота Эджхема Лондон WE3 24
Саймон Ли Ластовый переулок, 9 ( Уиган WN3 0NR 19

Использование условия SQL AND:

Используя оператор AND, запрос отобразит строку, если ALL
перечисленные условия верны.Если мы хотим найти сотрудников, которые
проживают в Лондоне И старше 30 лет, мы бы
используйте следующий оператор SQL:

 ВЫБРАТЬ *
ОТ tblEmployee
ГДЕ EmpTown = 'London' И EmpAge> 30 

Этот оператор вернет только один результат из нашей таблицы, который соответствует
оба из указанных условий:

EmpName EmpAddress EmpTown Emp Почтовый индекс EmpAge
Джанет Фуллер 14 Гаррет Хилл Лондон SW1 40

Использование условия SQL OR:

Используя оператор OR, запрос отобразит строку, если ANY
перечисленных условий верны.Если мы хотим искать сотрудников
проживающие в Лондоне ИЛИ Сотрудники, проживающие в Суиндоне,
мы бы использовали следующий оператор SQL:

 ВЫБРАТЬ *
ОТ tblEmployee
ГДЕ EmpTown = 'London' ИЛИ ​​EmpTown = 'Swindon' 

Этот оператор вернет три результата из нашей таблицы. Так и будет
вернуть тех Сотрудников, которые проживают в Лондоне ИЛИ живые
в Суиндоне:

EmpName EmpAddress EmpTown Emp Почтовый индекс EmpAge
Гарри Уэбб 1002 Trinity Road Sth Суиндон SN2 1JH 22
Джанет Фуллер 14 Гаррет Хилл Лондон SW1 40
Салли Тиммингс Пустота Эджхема Лондон WE3 24

Объединение SQL-условия AND и OR:

Мы также можем комбинировать условия И и ИЛИ, чтобы создать еще больше
сложные операторы SQL (вам может потребоваться использовать круглые скобки для формирования сложных
выражения).Считайте, что мы хотим найти всех сотрудников, которые живут
в Лондоне И старше 30 лет ИЛИ
Сотрудники, проживающие в Суиндоне, независимо от их возраста. Синтаксис
для этого оператора SQL с несколькими условиями хотел бы следующее:

 ВЫБРАТЬ *
ОТ tblEmployee
ГДЕ (EmpTown = 'London' AND EmpAge> 30) OR EmpTown = 'Swindon' 

На этот раз мы видим, что оператор вернет две записи; в
рекорд для Джанет Фуллер (которая живет в Лондоне И
чей возраст больше 30), а также рекорд для Гарри Веба, который
живет в Суиндоне.

EmpName EmpAddress EmpTown Emp Почтовый индекс EmpAge
Гарри Уэбб 1002 Trinity Road Sth Суиндон SN2 1JH 22
Джанет Фуллер 14 Гаррет Хилл Лондон SW1 40

SQL-сервер оценивает условия, перед которыми используется логическое И.
оценивает те, которые используют логическое ИЛИ.Если вы хотите быть уверенным в
как SQL Server будет обрабатывать запросы к базе данных, содержащие несколько
операторы, вы всегда должны использовать круглые скобки.

SQL-оператор OR и его практическое использование

Резюме : в этом руководстве вы узнаете, как использовать SQL-оператор OR для объединения двух логических выражений.

Введение в SQL-оператор OR

SQL-оператор OR - это логический оператор, объединяющий два логических выражения.Оператор SQL OR возвращает истину или ложь в зависимости от результатов выражений.

Оператор OR обычно используется в предложении WHERE операторов SELECT , UPDATE или DELETE для формирования гибкого условия.

Ниже показан синтаксис оператора SQL OR:

 

SELECT column1, столбец2, ... ИЗ Таблица 1 КУДА выражение1 ИЛИ выражение2;

В следующей таблице показан результат оператора OR при сравнении значений true, false и NULL.

ИСТИННОЕ

ИСТИННОЕ

ИСТИННО ЛОЖНО НУЛЬ
ИСТИННО ИСТИННО ИСТИННО ИСТИННО

7 ИСТИННО

ИСТИННО

ИСТИННО ИСТИННОЕ ИСТИННОЕ ИСТИННОЕ NULL
NULL TRUE NULL NULL

Обратите внимание, что оператор OR всегда возвращает истину, если любое из выражений истинно.

Если система базы данных поддерживает функцию короткого замыкания, оператор OR прекращает оценку оставшихся частей условия, как только одно выражение становится истинным.

Обратите внимание, что функция короткого замыкания помогает системе базы данных экономить вычисления ЦП, прерывая обработку оставшейся части логического выражения, как только она может определить результат. Дополнительные сведения о функции короткого замыкания см. В руководстве по оператору SQL AND.

Когда вы используете оператор OR с оператором AND, система базы данных оценивает оператор OR после оператора AND.Это известно как правило приоритета. Однако вы можете использовать круглые скобки, чтобы изменить порядок оценки.

Примеры оператора ИЛИ SQL

Мы будем использовать таблицу сотрудников из образца базы данных для демонстрации оператора OR .

Следующее утверждение находит всех сотрудников, которые присоединились к компании в 1997 или 1998 году.

 

SELECT имя, фамилия, Дата приема на работу ИЗ сотрудники КУДА ГОД (дата найма) = 1997 ИЛИ ГОД (дата найма) = 1998 год СОРТИРОВАТЬ ПО имя, фамилия;

Посмотреть в действии

Чтобы найти всех сотрудников, которые присоединились к компании в 1997 или 1997 годах и работали в отделе с идентификатором 3, вы используете операторов И и OR следующим образом:

 

SELECT имя, фамилия, Дата приема на работу, Department_id ИЗ сотрудники КУДА Department_id = 3 И ( ГОД (аренда_дата) = 1997 ИЛИ ГОД (аренда_дата) = 1998 ) СОРТИРОВАТЬ ПО имя, фамилия;

Посмотреть в действии

Если вы не используете круглые скобки, запрос будет извлекать сотрудников, которые присоединились к компании в 1997 году и работали в отделе с идентификатором 3, или сотрудников, которые присоединились к компании в 1998 году, независимо от отделов.

Это связано с тем, что система базы данных оценивает оператор OR после оператора AND .

 

ВЫБРАТЬ имя, фамилия, Дата приема на работу, Department_id ИЗ сотрудники КУДА Department_id = 3 И ГОД (аренда_дата) = 1997 ИЛИ ГОД (аренда_дата) = 1998 СОРТИРОВАТЬ ПО имя, фамилия;

Язык кода: SQL (язык структурированных запросов) (sql)

Посмотреть в действии

Если в запросе используется много операторов OR , его будет трудно читать.Чтобы запрос был более читабельным, вместо него можно использовать оператор IN .

Например, следующий запрос находит всех сотрудников, которые присоединились к компании в 1990, 1999 или 2000 годах.

 

SELECT имя, фамилия, Дата приема на работу ИЗ сотрудники КУДА ГОД (Дата найма) = 2000 ИЛИ ГОД (аренда_дата) = 1999 ИЛИ ГОД (Дата найма) = 1990;

Язык кода: SQL (язык структурированных запросов) (sql)

Посмотреть в действии

Операторы OR можно заменить оператором IN следующим образом:

 

SELECT имя, фамилия, Дата приема на работу ИЗ сотрудники КУДА ГОД (аренда_дата) IN (1990, 1999, 2000) СОРТИРОВАТЬ ПО Дата приема на работу;

Язык кода: SQL (язык структурированных запросов) (sql)

Посмотреть в действии

В этом руководстве вы узнали, как использовать оператор SQL OR для объединения двух логических выражений для формирования гибкого условия .

Было ли это руководство полезным?

Оператор ИЛИ SQL Server на практических примерах

Резюме : в этом руководстве вы узнаете, как использовать оператор SQL Server OR для объединения двух логических выражений.

Введение в SQL Server

Оператор OR

SQL Server OR - это логический оператор, который позволяет комбинировать два логических выражения. Он возвращает ИСТИНА , когда любое из условий оценивается как ИСТИНА .

Ниже показан синтаксис оператора OR :

 

логическое_выражение ИЛИ логическое_выражение

Язык кода: SQL (язык структурированных запросов) (sql)

В этом синтаксисе логическое_выражение - это любое допустимое логическое выражение, которое принимает значения «истина», «ложь» или «неизвестно».

В следующей таблице показан результат оператора OR при объединении TRUE , FALSE и UNKNOWN :

НЕИЗВЕСТНО если в операторе используется более одного логического оператора, SQL Server оценивает операторы OR после оператора AND .Однако вы можете использовать круглые скобки, чтобы изменить порядок оценки.

SQL Server

OR , примеры операторов

См. Следующую таблицу production.roducts из образца базы данных.

A) Использование оператора

OR , пример

Следующий пример находит продукты, прейскурантная цена которых меньше 200 или больше 6000:

 

SELECT наименование товара, список цен ИЗ production.products КУДА list_price <200 ИЛИ list_price> 6000 СОРТИРОВАТЬ ПО список цен;

Язык кода: SQL (язык структурированных запросов) (sql)

B) Использование нескольких операторов

OR , пример

Следующий оператор находит продукты с идентификатором бренда 1, 2 или 4:

 

ВЫБРАТЬ наименование товара, brand_id ИЗ производство.товары КУДА brand_id = 1 ИЛИ brand_id = 2 ИЛИ brand_id = 4 СОРТИРОВАТЬ ПО brand_id DESC;

Язык кода: SQL (язык структурированных запросов) (sql)

Вы можете заменить несколько операторов OR оператором IN , как показано в следующем запросе:

 

SELECT наименование товара, brand_id ИЗ production.products КУДА brand_id IN (1, 2, 3) СОРТИРОВАТЬ ПО brand_id DESC;

Язык кода: SQL (язык структурированных запросов) (sql)

C) Использование оператора

OR с примером оператора AND

Рассмотрим следующий пример:

 

SELECT наименование товара, brand_id, список цен ИЗ производство.товары КУДА brand_id = 1 ИЛИ brand_id = 2 И list_price> 500 СОРТИРОВАТЬ ПО brand_id DESC, список цен;

Язык кода: SQL (язык структурированных запросов) (sql)

В этом примере мы использовали операторы OR и AND . Как всегда, SQL Server сначала оценивает оператор И . Таким образом, запрос вернул продукты, идентификатор бренда которых равен 2, а прейскурантная цена превышает 500, или продукты, идентификатор бренда которых равен 1.

Чтобы найти продукты, идентификатор бренда которых равен 1 или 2, а прейскурантная цена превышает 500, используйте круглые скобки, как показано в следующем запросе:

 

SELECT наименование товара, brand_id, список цен ИЗ production.products КУДА (brand_id = 1 OR brand_id = 2) И list_price> 500 СОРТИРОВАТЬ ПО brand_id;

Язык кода: SQL (язык структурированных запросов) (sql)

В этом руководстве вы узнали, как использовать оператор SQL Server OR для формирования условия путем объединения двух логических выражений.

Sql И, Или, Не Оператор | Множественные условия Где

И SQL AND & OR являются логическими операторами сравнения .

Операторы SQL AND & OR используются для фильтрации строк или записей из результата запроса на основе одного или нескольких условий .

Оператор SQL AND отображает запись , если оба или все условия верны .

Оператор SQL OR отображает запись , если выполняются все или хотя бы одно условие .

Эти операторы используются для одновременного создания нескольких сравнений с разными операторами .


Синтаксис оператора И & ИЛИ SQL

Только для И условие:

  
ВЫБЕРИТЕ имя_столбца1, имя_столбца2 ИЗ имя_таблицы
ГДЕ [условие1] И [условие2];

   

Для OR только условие:

  
ВЫБЕРИТЕ имя_столбца1, имя_столбца2 ИЗ имя_таблицы
ГДЕ [условие1] ИЛИ [условие2];

   

Для AND & OR оба условия:

  
ВЫБЕРИТЕ имя_столбца1, имя_столбца2 ИЗ имя_таблицы
ГДЕ ([условие1] И [условие2]) ИЛИ [условие3];

   

или

  
ВЫБЕРИТЕ имя_столбца1, имя_столбца2 ИЗ имя_таблицы
ГДЕ ([условие1] ИЛИ [условие2]) И [условие3];

   

Примечание. Вы можете комбинировать несколько условий, используя оба оператора.При объединении этих условий в инструкции sql,
очень важно использовать круглые скобки или круглые скобки , чтобы механизм базы данных знал, в каком порядке выполнять каждое условие.


Ключи поиска

  • sql и оператор
  • sql и или
  • sql где и где
  • в sql, а не в sql
  • sql и заявление
  • sql больше и меньше
  • sql, а не
  • sql и команда
  • sql сервер и оператор
  • pl sql и оператор
  • sql и запрос
  • sql и состояние
  • с использованием или в sql
  • sql, где
  • sql несколько условий
  • sql, где условия
  • sql, где 2 условия
  • sql команда и

Пример таблицы базы данных - книги

TRUE FALSE UNKNOWN
ИСТИНА ИСТИНА ИСТИНА ИСТИНА
ЛОЖЬ ИСТИНА ЛОЖЬ НЕИЗВЕСТНО
НЕИЗВЕСТНО 9KB ИСТИНА
BookId Имя книги ЗаказатьЦена RelYear Имя домена Имя автора
1 Программирование с MySQL 180 2011 База данных Деви Май
2 Microsoft SQL Server 2012 130 2006 Безопасность Ханумантан
3 Просто SQL 100 2014 Оптимизация Дхаран
4 Перейти к началу страницы MySQL 105 2014 Администрация Азагу Варшит
5 Параллелизм MySql 168.27 2012 Безопасность Деви Май
6 Программирование SQL и проектирование баз данных 99,99 2007 База данных Хариш Картик
7 Искусство SQL 165 2009 Производительность Деви Май
8 Профессиональный Oracle 178.69 2015 Безопасность Падмавати
9 Изучение Oracle SQL и Pl / sql 155 2009 База данных Винот Кумар
10 Краткое руководство по SQL Visual 84,22 2014 Программирование Шива Кумар
11 Новые возможности Oracle Database 11G 190 2010 Программирование Хари Кришнан
12 Программирование с Oracle 195 2010 Программирование Азагу Варшит

Пример оператора SQL AND

Следующий оператор SQL SELECT выбирает все книги из доменного имени «База данных» И с ценой более 100 в таблице «Книги»:

  
ВЫБРАТЬ * ИЗ книг
КУДА
DomainName = «База данных» И BookPrice> 100;

   

Результат вышеуказанного запроса:

BookId Имя книги ЗаказатьЦена RelYear Имя домена Имя автора
1 Программирование с MySQL 180 2011 База данных Деви Май
9 Изучение Oracle SQL и Pl / sql 155 2009 База данных Винот Кумар

Пример оператора ИЛИ SQL

Следующий оператор SQL SELECT выбирает все книги с именем автора «Азагу Варшит» ИЛИ «Падмавати» в таблице «Книги»:

  
ВЫБРАТЬ * ИЗ книг
КУДА
AuthorName = 'Азагу Варшит' ИЛИ ​​AuthorName = 'Падмавати';

   

Результат вышеуказанного запроса:

BookId Имя книги ЗаказатьЦена RelYear Имя домена Имя автора
4 Перейти к началу страницы MySQL 105 2014 Администрация Азагу Варшит
8 Профессиональный Oracle 178.69 2015 Безопасность Падмавати
12 Программирование с Oracle 195 2010 Программирование Азагу Варшит

Пример объединения оператора И и ИЛИ SQL

Вы также можете комбинировать операторы И и ИЛИ, используя круглые скобки или круглые скобки, чтобы формировать сложные выражения.

Следующий оператор SQL выбирает все книги из года выпуска менее "170" И имя домена должно
быть равно "Программирование" ИЛИ "Безопасность" в таблице "Книги":

  
ВЫБРАТЬ * ИЗ книг
КУДА
ЗабронироватьЦена   

Результат вышеуказанного запроса:

BookId Имя книги ЗаказатьЦена RelYear Имя домена Имя автора
2 Microsoft SQL Server 2012 130 2006 Безопасность Ханумантан
5 Параллелизм MySql 168.27 2012 Безопасность Деви Май
10 Краткое руководство по SQL Visual 84,22 2014 Программирование Шива Кумар

Примечание: Не забудьте предоставить круглые скобки в зависимости от ваших требований.

Очень важно использовать круглые скобки или круглые скобки, чтобы ядро ​​базы данных знало, в каком порядке выполнять каждое условие.

Если мы не предоставили круглые скобки, это изменит порядок выполнения условия.

  
ВЫБРАТЬ * ИЗ книг
КУДА
ЗабронироватьЦена   

Результат вышеуказанного запроса:

BookId Имя книги ЗаказатьЦена RelYear Имя домена Имя автора
2 Microsoft SQL Server 2012 130 2006 Безопасность Ханумантан
5 Параллелизм MySql 168.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *