Урок 3. Порядок AND и OR
При использовании в SELECT-запросах операторов OR и AND можно легко ошибиться в составлении логического выражения. И проблема таких ошибок в том, что запрос выполняется как будто ошибки нет, но данные выводятся неверные.
Если у вас мало опыта в написании таких SQL-запросов, то можно легко не заметить проблему. Давайте разберем несколько популярных ошибок.
Работать будем с таблицей team, которая содержит список разработчиков:
id | first_name | last_name | language | level |
---|---|---|---|---|
1 | Дмитрий | Васильев | python | junior |
2 | Валерий | Юрьев | php | middle |
3 | Андрей | Ушаков | python | senior |
4 | Петр | Кузуб | javascript | junior |
5 | Наталья | Кузнецова | python | middle |
6 | Руслан | Исаков | php | senior |
7 | Сергей | Медведев | php | junior |
8 | Алексей | Борисов | python | middle |
9 | Валерия | Маркова | javascipt | senior |
Каждый разработчик оценивается project-менеджером по двум критериям, после чего он отбирает программиста на тот или иной проект. Основные критерии — это уровень владения технологией: junior, middle или senior, и базовый язык программирования, на котором пишет разработчик.
Нам как менеджерам поступает заявка на разработку проекта и на основании этой заявки мы должны подобрать необходимых разработчиков.
Представьте, что сейчас нас интересуют только мидллы и сеньоры. Напишем SQL-запрос:
SELECT * FROM team WHERE level = 'middle' AND level = 'senior'
После выполнения запроса мы увидим пустую таблицу.
id | first_name | last_name | language | level |
---|
И тут мы столкнулись с первой ошибкой. В нашем запросе база данных по очереди берет строку и проверяет находится ли в колонке level значение «middle» И значение «senior». Оператор AND — это условие одновременности. То есть исходя из нашего запроса в поле
Почему мы допустили такую ошибку? И дело в формулировках, когда я озвучивал задание, то сказал, что нас интересуют только мидлы И сеньоры. Это правильное выражение с точки зрения русского языка, но неверное с точки зрения логики. Чтобы получить верный результат надо чтобы поле level содержало ИЛИ «middle», ИЛИ «senior». Поэтому заменим AND на OR:
SELECT * FROM team WHERE level = 'middle' OR level = 'senior'
Теперь разработчики подобраны верно:
id | first_name | last_name | language | level |
---|---|---|---|---|
2 | Валерий | Юрьев | php | middle |
3 | Андрей | Ушаков | python | senior |
5 | Наталья | Кузнецова | python | middle |
6 | Руслан | Исаков | php | senior |
8 | Алексей | Борисов | python | middle |
9 | Валерия | Маркова | javascipt | senior |
Такую ошибку легко допустить, если в формулировке задачи стоит союз И. Но не стоит его напрямую переносить в SQL-запрос. Возможно здесь кроется ошибка, особенно если мы сравниваем с одним полем.
Давайте рассмотрим другой случай. На этот раз нам нужно разработать бэкенд для сайта. И для этого нам нужны все Python и PHP разработчики. Напишем:
SELECT * FROM team WHERE basic_language = 'Python' OR basic_language = "PHP"
Обратите внимание, что нужны нам все Python И PHP разработчики, но пишем мы OR. После выполнения запроса мы получим такую таблицу:
id | first_name | last_name | language | level |
---|---|---|---|---|
1 | Дмитрий | Васильев | python | junior |
2 | Валерий | Юрьев | php | middle |
3 | Андрей | Ушаков | python | senior |
5 | Наталья | Кузнецова | python | middle |
6 | Руслан | Исаков | php | senior |
7 | Сергей | Медведев | php | junior |
8 | Алексей | Борисов | python | middle |
В итоговую таблицу попали и те и другие программисты. Отлично. Но давайте расширим условие. Скажем, нам нужны только middle разработчики на этих языках. Добавим:
SELECT * FROM team WHERE basic_language = 'Python' OR basic_language = "PHP" AND level = "middle"
После выполнения мы получим такую таблицу:
id | first_name | last_name | language | level |
---|---|---|---|---|
1 | Дмитрий | Васильев | python | junior |
2 | Валерий | Юрьев | php | middle |
3 | Андрей | Ушаков | python | senior |
5 | Наталья | Кузнецова | python | middle |
8 | Алексей | Борисов | python | middle |
И результат довольно странный, в итоговой таблице присутствуют также джуниоры и сеньоры. И дело в том, что операторы OR и AND имеют приоритет выполнения и у AND он выше. Поэтому в первую очередь база данных находит всех мидлов, которые пишут на
То есть мы ищем ИЛИ мидлов на PHP, ИЛИ Python-разработчиков без указания их уровня владения языком. Поэтому в таблицу также попали джуниоры и сеньоры.
Чтобы решить поставленную задачу, нужно четко расставить приоритет с помощью скобок. Как в математике. Поместим скобки справа и слева от OR:
SELECT * FROM team WHERE (basic_language = 'Python' OR basic_language = "PHP") AND level = "middle"
Теперь в таблице остались только мидлы на Python и PHP:
id | first_name | last_name | language | level |
---|---|---|---|---|
2 | Валерий | Юрьев | php | middle |
5 | Наталья | Кузнецова | python | middle |
8 | Алексей | Борисов | python | middle |
Каждый раз когда в одном запросе встречаются OR и AND, обращайте внимание на порядок выполнения, иначе можно легко получить неверные данные.
Вообще, даже не так, каждый раз когда у вас есть в запросе есть OR и AND применяйте скобки для расстановки приоритетов, даже если уверены в своём коде.
Такая практика позволит избежать неприятных логических ошибок.
Следующий урок
Урок 4. Сортировка результатов
В этом уроке вы научитесь сортировать итоговые результаты в возрастающем и убывающем порядке с помощью ORDER BY.
Посмотреть
Без воды
Поддержка
Регистрация
Письмо со ссылкой для доступа отправлено.
Проверьте почту.
Письмо не пришло? Посмотрите в спаме.
Регистрируясь, вы соглашаетесь с условиями предоставления услуг (пользовательское соглашение).
Что такое MQL и SQL: какие бывают лиды
- Просто о сложном
21.06.2022, 11:37
Какая разница между MQL и SQL? В целом вы определяете, относится лид к MQL или к SQL на основе характеристик и поведения пользователя.
Лид — это любой человек или бизнес, который косвенно или прямо интересовался вашим продуктом или услугой. Лиды не одинаковые: два похожих пользователя необязательно окажутся на одной стадии принятия решения о покупке вашего продукта. Поэтому когда вы работаете со всеми однотипно, то можете подтолкнуть клиента к покупке слишком рано или слишком поздно. Возможно, человек ещё не готов, а вы предлагаете купить. Тогда вы тратите время и на корню рубите возможные отношения с перспективным клиентом. Если опоздаете с предложением, теряете потенциального покупателя, который был готов купить раньше, но уже ушёл к конкурентам.
Во многих компаниях работает механизм, при котором маркетинг передаёт лиды отделу продаж. Обычно это происходит, когда квалифицированный маркетинговый лид (Marketing qualified lead или MQL) становится квалифицированным лидом отдела продаж (Sales qualified lead или SQL).
Что такое квалифицированные маркетинговые лиды (MQL)
Квалифицированные маркетинговые лиды — пользователи, которые показывают, что готовы стать вашими клиентами: интересуются продуктом больше, чем другие лиды. Такой лид появляется в результате поисковой оптимизации, PPC кампаний в социальных сетях, контент-маркетинга, email-маркетинга и т. д. MQL также называют вовлечёнными лидами. Однако в момент, когда вы понимаете, что пользователь подходит под профиль вашей целевой аудитории (относите его к MQL), он ещё не готов к покупке.
Примеры MQL
Лид относится к MQL, если:
Кликнет на ссылку.
Посетил ваш сайт хотя бы раз.
Скачал рекламный материал, гайд или другой контент.
Просматривал товары на сайте хотя бы раз.
Понимает, как ваш продукт выполнит его задачу.
Узнаёт дополнительную информацию о продукте.
Подписался на email-рассылку.
Участвовал в вебинаре компании.
Подписался на блог.
Писал вам в соцсетях или в чате.
Что такое квалифицированные лиды отдела продаж (SQL)
Квалифицированный лид отдела продаж показывает высокую вероятность покупки, готов детально общаться с менеджерами по продажам и активно участвовать в маркетинговых активностях. SQL — изученный и проверенный отделом продаж пользователь, который сообщает своими действиями, что уже собирается купить. Таких людей ещё называют проверенными или перспективными лидами.
Примеры SQL
Пользователя относят к SQL, когда он:
Неоднократно посещал ваш сайт.
Получал рассылки и реагировал на кампании с ценностным предложением вашего продукта в социальных сетях.
Хорошо знает вашу компанию и глубоко понимает ваш продукт.
Запрашивает или использует пробную версию продукта.
Спрашивает про цену продукта.
Просит связаться с ним или встретиться с вашим торговым представителем.
Пришёл по рекомендации ваших клиентов.
Собирается купить срочно или знает дату покупки.
Разница MQL и SQL
Между MQL и SQL много отличий:
Воронка продаж. MQL появления в воронке продаж раньше, чем SQL.
Скорость процесса. Для превращения лида в MQL должно пройти время. Пока лид станет MQL пройдут недели и месяцы, а дальше нужно время для перехода в SQL.
Когда пользователь становится SQL, процесс ускоряется. Нужно действовать быстро, ведь квалифицированный лид отдела продаж может выбрать конкурента, если вы не поторопитесь закрыть сделку.
Объём лидов. В бизнесе всегда намного больше MQL, чем SQL. Хотя ваша цель — перевести каждый маркетинговый лид в «горячего» клиента, многие MQL никогда не станут SQL.
Вовлечение. SQL часто больше интересуются продуктом, сайтом и маркетингом компании.
Интерес к продукту. SQL стараются узнать про ваш продукт больше, чем MQL. Обычно это признак лояльности к бренду. Такие пользователи доверяют качеству вашего продукта и выбирают, какой именно они купят в запланированное время.
Почему MQL и SQL должны работать вместе
Понимать разницу MQL и SQL важно для бизнеса. Если не квалифицировать лиды, то скорее всего вы выделите слишком много или слишком мало времени, зря потратите ресурсы — не угадаете степень готовности пользователя к покупке. Также нельзя фокусироваться на противопоставлении MQL и SQL, рассматривайте оба типа. У маркетинга и продаж одинаковая роль в работе с клиентами, поэтому эффективно работать по конвертации лидов вместе. У стабильного бизнеса с мощными рекламными кампаниями должен быть большой и растущий запас MQL, которые превратятся в SQL и принесут доход компании.
Лучшее в блогах
Мы в соцсетях
Еженедельные рассылки ADPASS
Мы в соцсетях
Еженедельные рассылки ADPASS
Читайте также:
На встрече Экспертного клуба НРФ международная консалтинговая компания Brand Finance впервые представила результаты исследования Marketing Restrictions 2021. В этой статье мы расскажем о главных выводах, а также объясним, с какими последствиями чрезмерного регулирования маркетинга может столкнуться как простой потребитель, так и государство в целом.
Разница между языками SQL, R или Python: что выбрать дата-сайентисту
Сегодня каждая уважающая себя крупная компания собирает и хранит огромные массивы данных, надеясь извлечь из них коммерческую пользу. Эксперты, которые разбираются в этих массивах и способны показать эффективный результат, могут рассчитывать на быструю карьеру с впечатляющими окладами. Рассказываем, какие инструменты нужно выбрать, чтобы стать успешным аналитиком данных.
Единственная сложность для начинающих аналитиков данных заключается в том, что даже базовые позиции этой сферы предполагают уверенное владение компьютерными языками. Как правило, в объявлениях о вакансиях упоминаются SQL, R и Python. В чем их отличия?
Интересное исследование на эту тему в 2019 году провела специалистка по аналитике данных Женевьева Хейс (Genevieve Hayes). Она проанализировала 100 актуальных объявлений о работе в Data Science, подобрав компании самого разного размера с позициями самого разного уровня. Вакансии руководителей ее не интересовали, только те должности, где нужно работать «руками». В 15% случаев объявления адресовались начинающим специалистам, 44% пришлись на средние позиции, 41% — на старших экспертов.
Во всех трех категориях на первом месте по популярности оказался Python. SQL занял вторую строчку, R — третью. Главный тренд, который отметила Хейс, — это падение позиций SQL с повышением позиции сотрудника. Среди вакансий для начинающих сотрудников этот язык упоминался в 73% случаев, а в самой опытной категории цифра упала до 45%.
Популярность основных языков программирования на разных уровнях экспертизы (Genevieve Hayes, 2019)Эти результаты говорят о том, что начинающие специалисты должны знать, как сформулировать запрос базе и интерпретировать ответ, понимать принципы обмена данных между хранилищами и т.д. Очевидно, те компании, которые в исследовании Яндекса активно ищут младших экспертов по Data Science, во многом преследуют именно эти цели — наладить грамотную работу с базами, а дальше действовать по ситуации.
С другой стороны, R и Python позволяют работать с данными глубже, чем на уровне базовых запросов и операций. В серьезном статанализе и машинном обучении без этих языков делать нечего — поэтому с повышением должности эксперта от него ждут сильных навыков в этой области.
Тем, кто хочет стать веб-разработчиком с нуля, знание SQL дает отличное понимание работы с бэкендом. Python, в свою очередь, объединяет множество удобных инструментов веб-разработки, позволяющих быстро разворачивать функциональные сайты и мощные порталы. Наконец, R применяется для узких задач — у этого языка довольно специфичная природа, о которой мы расскажем подробнее ниже.
Итак, именно R и Python можно считать главными языками для эксперта по Data Science. Настоящий профессионал сможет работать и с тем, и с другим, но нужно ли новичку браться сразу за все? Исследование Хейс показало, что вне зависимости от уровня сотрудника, главное требование — это знание Python. Это и неудивительно, ведь этот язык достаточно доступен для понимания новичков и невероятно функционален для применения в самых сложных рабочих задачах. Именно поэтому начинающим специалистам стоит начать именно с него, тем более что Python из года в год получает звание лучшего языка для первого знакомства с программированием.
Когда молодой аналитик овладеет базовым набором операций и поймет общую логику работы с данными, ему будет проще перенести ее на другой инструментарий. Так постепенно можно расширять свои компетенции, причем каждый новый язык будет даваться все легче.
Профессия
Аналитик данных
Освойте 100% инструментов, необходимых junior-аналитику: от Google-таблиц до Python и Power BI.
Смотреть программу
Чтобы разобраться со многими вопросами выбора, стоит получше разобраться, что из себя представляют главные рабочие лошадки аналитика. У R и Python много общего, а различия в деталях и определяют специфику каждого языка.
Появление Python и R разделяет два года — первый увидел свет в 1991 году, второй в 1993-м. Оба языка создавались с таким расчетом, чтобы будущие разработчики могли расширять набор их функций с помощью подключаемых библиотек. С этим связано и использование открытого кода — ничто не мешает энтузиастам развивать, дополнять, достраивать и перестраивать.
Главная аудитория Python — это разработчики ПО и веб-разработчики. Именно для этих экспертов создается большинство функциональных модулей, позволяющих загружать данные, проводить с ними сложные операции, моделировать и анализировать. Чтобы стать хорошим веб-разработчиком достаточно собрать набор из десятка библиотек, с помощью которых можно закрыть основной круг базовых задач при сайтостроительстве.
С другой стороны, R вырос из языка S, с которым активно работают специалисты по статистике. Таким образом, его главная сила в сложных статистических функциях, которые используются в академических и высокопрофессиональных задачах.
С точки зрения аналитиков данных и экспертов по Data Science R и Python обладают схожими возможностями. Первый язык чаще выбирают специалисты, которым нужно работать с огромными массивами информации, на втором останавливаются создатели нейросетей и экспериментаторы в области машинного обучения. Следовательно, если вы уже знаете, какая область вам более интересна, вы можете планировать свое профессиональное образование.
Текст: Дмитрий Помогаев
Оператор SQL Server OR на практических примерах
Резюме : в этом руководстве вы узнаете, как использовать оператор SQL Server ИЛИ
для объединения двух логических выражений.
Введение в SQL Server
Оператор OR
SQL Server OR
— это логический оператор, который позволяет комбинировать два логических выражения. Он возвращает TRUE
, когда любое из условий оценивается как TRUE
.
Ниже показан синтаксис ИЛИ
оператор:
Язык кода: SQL (язык структурированных запросов) (sql)
логическое_выражение ИЛИ логическое_выражение
В этом синтаксисе boolean_expression
— это любое допустимое логическое выражение, которое оценивается как истинное, ложное и неизвестное.
В следующей таблице показан результат оператора ИЛИ
при объединении ИСТИНА
, ЛОЖЬ
и НЕИЗВЕСТНО
:
TRUE | FALSE | UNKNOWN | |
---|---|---|---|
TRUE | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE | UNKNOWN |
НЕИЗВЕСТНО | ИСТИНА | НЕИЗВЕСТНО | НЕИЗВЕСТНО |
При использовании более одного логического оператора в операторе SQL Server оценивает 9Операторы 0005 OR после оператора AND
. Однако вы можете использовать круглые скобки, чтобы изменить порядок оценки.
Примеры операторов SQL Server
OR
См. следующую таблицу production.roducts
из примера базы данных.
A) Пример использования оператора
ИЛИ
В следующем примере выполняется поиск продуктов, цена которых меньше 200 или больше 6000:
Язык кода: SQL (язык структурированных запросов) (sql)
ВЫБЕРИТЕ наименование товара, список цен ИЗ производство.продукция КУДА list_price < 200 ИЛИ list_price > 6000 СОРТИРОВАТЬ ПО список цен;
B) Пример использования нескольких операторов
ИЛИ
ВЫБРАТЬ
наименование товара,
brand_id
ИЗ
производство.продукция
КУДА
идентификатор_бренда = 1
ИЛИ бренд_id = 2
ИЛИ бренд_id = 4
СОРТИРОВАТЬ ПО
brand_id DESC; Язык кода: SQL (язык структурированных запросов) (sql) Можно заменить несколько 9Операторы 0005 OR оператором IN
, как показано в следующем запросе:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT наименование товара, brand_id ИЗ производство. продукция КУДА brand_id IN (1, 2, 3) СОРТИРОВАТЬ ПО brand_id DESC;
C) Использование оператора
OR
с оператором AND
примерРассмотрим следующий пример:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT наименование товара, идентификатор_бренда, список цен ИЗ производство.продукция КУДА идентификатор_бренда = 1 ИЛИ бренд_id = 2 И list_price > 500 СОРТИРОВАТЬ ПО brand_id DESC, список цен;
В этом примере мы использовали операторы ИЛИ
и И
. Как всегда, SQL Server сначала оценивал оператор AND
. Таким образом, запрос возвратил продукты с идентификатором бренда 2 и прейскурантной ценой выше 500 или товары с идентификатором бренда 1.
Чтобы найти продукты с идентификатором бренда 1 или 2 и прейскурантной ценой выше 500, используйте круглые скобки, как показано в следующем запросе:
Язык кода: SQL (язык структурированных запросов) (sql)
ВЫБЕРИТЕ наименование товара, идентификатор_бренда, список цен ИЗ производство.продукция КУДА (brand_id = 1 ИЛИ brand_id = 2) И list_price > 500 СОРТИРОВАТЬ ПО идентификатор_бренда;
В этом руководстве вы узнали, как использовать оператор SQL Server OR
для формирования условия путем объединения двух логических выражений.
Логические операторы SQL в предложении where с синтаксисом и оператором
И | && | И Оператор |
ИЛИ | || | ИЛИ Оператор |
НЕ | ! | Инвертирует значение |
XOR | Оператор XOR |
Это наша таблица (показаны 10 записей),
id | name | class | mark | sex | |
---|---|---|---|---|---|
1 | John Deo | Four | 78 | male | |
2 | Max Ruin | Three | 85 | male | |
3 | Arnold | Three | 55 | male | |
4 | Krish Star | Four | 60 | male | |
5 | John Mike | Four | 60 | male | |
6 | Alex John | Four | 55 | male | |
7 | My John Rob | Fifth | 78 | male | |
8 | Asruid | Five | 85 | male | |
9 | Tes Qry | Six | 78 | male | |
10 | Big John | Four | 55 | male |
Мы применим команду AND для отображения записей четвертого класса с более чем 70 марок.
SELECT * FROM student WHERE AND mark >70
id | имя | класс | марка | пол | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | John Deo | Four | 78 | male | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | Tade Row | Four | 88 | male | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | Gimmy | Four | 88 | мужской | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31 | Марри Тои | Четыре | 88 | 3 МЫ видим, что возвращенная запись имеет класс = четыре, а оценка больше 70. |
id | name | class | mark | sex | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
8 | Asruid | Five | 85 | male | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | Recky | Six | 94 | мужской | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18 | Хонни | Пять | 75 | мужской | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
33 | Кенн Рейн | Шесть | 96 | мужской | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id | name | class | mark | sex | |
---|---|---|---|---|---|
8 | Asruid | Five | 85 | male | |
11 | Ronald | Six | 89 | male | |
12 | Recky | Six | 94 | male | |
18 | Honny | Five | 75 | male | |
33 | Kenn Rein | Six | 96 | male | |
35 | Rows Noump | Six | 88 | female |
SELECT * FROM student WHERE (class='Five' OR) и отметьте >80
id | имя | класс | марка | пол | |
---|---|---|---|---|---|
8 | Asruid | Five | 85 | male | |
11 | Ronald | Six | 89 | male | |
12 | Recky | Six | 94 | male | |
33 | Kenn Rein | Six | 96 | male | |
35 | Rows Noump | Шесть | 88 | женский |
SELECT * FROM student WHERE (class='Five' AND mark>75) ИЛИ (класс='Шесть' И отметка>80) ИЛИ (класс='Семь' И отметка>85)
id | имя | класс | марка | пол | |
---|---|---|---|---|---|
8 | Asruid | 3 | 85 | male | |
11 | Ronald | Six | 89 | male | |
12 | Recky | Six | 94 | male | |
13 | Kty | Seven | 88 | male | |
14 | Bigy | Seven | 88 | male | |
25 | Giff Tow | Seven | 88 | male | |
28 | Rojj Base | Seven | 86 | male | |
32 | Binn Rott | Seven | 90 | male | |
33 | Kenn Rein | Six | 96 | male | |
35 | Rows Noump | Six | 88 | внутренняя |
Использование НЕ
Мы используем NOT для отрицания любого сравнения.SELECT * FROM student WHERE NOT class = 'Пять'Выходные данные будут включать все классы, кроме класса Five .
ВЫБЕРИТЕ * ОТ учащегося ГДЕ класс НЕ В («Пять», «Шесть», «Четыре», «Семь», «Три»)
id | имя | класс | марка | пол |
---|---|---|---|---|
19 | Tinny | Nine | 18 | male |
20 | Jackly | Nine | 65 | female |
23 | Herod | Eight | 79 | male |
SELECT * ОТ УЧЕНИКА, ГДЕ НЕ ОТМЕЧАТЬ ОТ 50 ДО 100Выход
id | имя | класс | марка | пол |
---|---|---|---|---|
19 | Оловянный | Девять | 18 | мужской |
XOR
Исключающее ИЛИ дает вывод как 1 ( True ), когда входные данные различаются.ВЫБРАТЬ 1 ИСКЛЮЧАЮЩЕЕ ИЛИ 0; № 1 ВЫБЕРИТЕ 0 ИСКЛЮЧАЮЩЕЕ ИЛИ 1; № 1 ВЫБЕРИТЕ 1 ИСКЛЮЧАЮЩЕЕ ИЛИ 1; # 0 ВЫБЕРИТЕ 0 ИСКЛЮЧАЮЩЕЕ ИЛИ 0; # 0
SELECT * FROM student WHERE XOR mark
id | имя | класс | марка | пол |
---|---|---|---|---|
7 | My John Rob | Five | 78 | male |
8 | Asruid | Five | 85 | male |
18 | Honny | Five | 75 | male |
19 | Оловянный | Девять | 18 | мужской |
УДАЛИТЬ Запрос с ИЛИ И
Удалить все записи третьего и четвертого классовУДАЛИТЬ ИЗ студента, где ИЛИУдалить все записи из шестого и четвертого классов, получившие менее 80 баллов.
УДАЛИТЬ ОТ студента, где (класс='Шесть' или) и отметить
ОБНОВЛЕНИЕ Запрос с ИЛИ И
Поставим дополнительные 5 баллов учащимся третьего и четвертого классов, набравшим более 80 баллов.UPDATE `студент` установить отметку=отметка + 5 ГДЕ (класс='Три' или) и отметьте >80←Операторы сравнения ←Выбор записей SQL ГДЕ →
Эта статья написана plus2net.com команда. https://www.plus2net.com
plus2net.com
▼ Подробнее о получении записей из таблицы с помощью различных комбинаций команд
Пишите сюда свои комментарии, предложения, ошибки, требования и т.д.
Деталь
Запросы ВСТАВЛЯТЬ ОБНОВИТЬ
Совокупные запросы СРЕДНИЙ (средний) СУММА МИН. МАКСИМУМ
Видеоуроки по SQL
©2000-2022 plus2net. com Все права защищены во всех странах мира Отказ от ответственности в отношении политики конфиденциальности
Оператор SQL OR и его практическое использование
Резюме : в этом руководстве вы узнаете, как использовать оператор SQL OR для объединения двух логических выражений.
Введение в оператор SQL OR
SQL OR — это логический оператор, который объединяет два логических выражения. Оператор SQL OR возвращает значение true или false в зависимости от результатов выражений.
Оператор ИЛИ обычно используется в предложении WHERE
оператора SELECT
, UPDATE
или DELETE
для формирования гибкого условия.
Ниже показан синтаксис оператора SQL OR:
SELECT столбец1, столбец2, ... ИЗ Таблица 1 КУДА выражение1 ИЛИ выражение2;
В следующей таблице показан результат оператора OR
при сравнении значений true, false и NULL.
TRUE | FALSE | NULL | |
TRUE | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE | NULL |
NULL | TRUE | NULL | NULL |
Обратите внимание, что любое выражение всегда возвращает значение true, если оператор ИЛИ всегда возвращает значение true.
Если система базы данных поддерживает функцию короткого замыкания, оператор OR
прекращает вычисление оставшихся частей условия, как только одно из выражений становится истинным.
Обратите внимание, что функция короткого замыкания помогает системе базы данных экономить ресурсы ЦП, прерывая обработку оставшейся части логического выражения, как только она может определить результат. Для получения дополнительной информации о функции короткого замыкания ознакомьтесь с руководством по оператору SQL AND.
При использовании оператора ИЛИ с оператором И система базы данных оценивает оператор ИЛИ после оператора И. Это известно как правило приоритета. Однако вы можете использовать круглые скобки, чтобы изменить порядок оценки.
Примеры оператора SQL ИЛИ
Мы будем использовать таблицу сотрудников
из примера базы данных для демонстрации оператора ИЛИ
.
Следующий оператор находит всех сотрудников, которые пришли в компанию в 1997 или 1998 году.
ВЫБЕРИТЕ Имя, фамилия, Дата приема на работу ИЗ сотрудники КУДА ГОД (дата_найма) = 1997 ИЛИ ГОД (дата_найма) = 1998 СОРТИРОВАТЬ ПО Имя, фамилия;
Попробуйте
Чтобы найти всех сотрудников, которые присоединились к компании в 1997 или 1997 и работал в отделе с идентификатором 3, вы используете операторы И
и ИЛИ
следующим образом:
SELECT Имя, фамилия, Дата приема на работу, id_отдела ИЗ сотрудники КУДА id_отдела = 3 А ТАКЖЕ ( ГОД (дата_найма) = 1997 ИЛИ ГОД (наем_дата) = 1998 ) СОРТИРОВАТЬ ПО Имя, фамилия;
Попробуйте
Если не использовать круглые скобки, запрос будет получать сотрудников, которые пришли в компанию в 1997 году и работали в отделе с идентификатором 3, или сотрудников, которые пришли в компанию в 1998 независимо от факультетов.
Это связано с тем, что система базы данных оценивает оператор OR
после оператора AND
.
Язык кода: SQL (язык структурированных запросов) (sql)
ВЫБЕРИТЕ Имя, фамилия, Дата приема на работу, id_отдела ИЗ сотрудники КУДА id_отдела = 3 И ГОД (наем_дата) = 1997 ИЛИ ГОД (наем_дата) = 1998 СОРТИРОВАТЬ ПО Имя, фамилия;
Попробуйте
Если запрос использует много ИЛИ
операторов, его будет трудно читать. Чтобы сделать запрос более читабельным, вместо него можно использовать оператор IN
.
Например, следующий запрос находит всех сотрудников, которые пришли в компанию в 1990, 1999 или 2000 году.
Язык кода: SQL (язык структурированных запросов) (sql)
ВЫБЕРИТЕ Имя, фамилия, Дата приема на работу ИЗ сотрудники КУДА ГОД (дата_найма) = 2000 ИЛИ ГОД (наем_дата) = 1999 ИЛИ ГОД (наем_дата) = 1990;
Попробуйте
Вы можете заменить операторы OR
оператором IN
следующим образом:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT Имя, фамилия, Дата приема на работу ИЗ сотрудники КУДА ГОД (дата найма) В (1990, 1999, 2000) СОРТИРОВАТЬ ПО Дата приема на работу;
Попробуйте
В этом руководстве вы узнали, как использовать оператор SQL OR
для объединения двух логических выражений для формирования гибкого условия.