Синтаксис SQL
Резюме : в этом руководстве мы познакомим вас с синтаксисом SQL, который поможет вам понять детали операторов SQL.
SQL является декларативным языком, поэтому его синтаксис читается как естественный язык. Оператор SQL начинается с глагола, описывающего действие, например, SELECT, INSERT, UPDATE или DELETE. После глагола идут подлежащее и сказуемое.
Предикат определяет условия, которые могут оцениваться как истинные, ложные или неизвестные.
См. следующую инструкцию SQL:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT имя ОТ сотрудники ГДЕ ГОД(дата_найма) = 2000;
Как видите, это читается как обычное предложение.
Получите имена сотрудников, нанятых в 2000 году.
SELECT first_name
, FROM employee
и WHERE являются предложениями в операторе SQL. Некоторые пункты являются обязательными, например, SELECT
и FROM
, тогда как другие, например, WHERE
, являются необязательными.
Поскольку SQL был разработан специально для людей, не обладающих техническими знаниями, он очень прост и понятен. Чтобы написать оператор SQL, вам просто нужно сказать, что вы хотите, а не как вы хотите, как в других императивных языках, таких как PHP, Java и C++.
SQL является удобным для пользователя языком, поскольку он в основном предназначен для пользователей, которые выполняют специальные запросы и создают отчеты.
В настоящее время SQL используется высокотехнологичными людьми, такими как аналитики данных, специалисты по данным, разработчики и администраторы баз данных.
Команды SQL
SQL состоит из множества команд. Каждая команда SQL обычно заканчивается точкой с запятой (;). Например, ниже приведены две разные команды SQL, разделенные точкой с запятой (;).
ВЫБЕРИТЕ имя Фамилия ОТ сотрудники; УДАЛИТЬ ОТ сотрудников ГДЕ наем_дата < '1990-01-01';
Язык кода: SQL (язык структурированных запросов) (sql)
SQL использует точку с запятой (;) для обозначения конца команды.
Каждая команда состоит из токенов, которые могут быть литералами, ключевыми словами, идентификаторами или выражениями. Токены разделяются пробелом, табуляцией или новой строкой.
Литералы
Литералы — это явные значения, которые также известны как константы. SQL предоставляет три типа литералов: строковые, числовые и двоичные.
Строковый литерал состоит из одного или нескольких буквенно-цифровых символов, заключенных в одинарные кавычки, например:
Язык кода: SQL (язык структурированных запросов) (sql)
«Джон» '1990-01-01' '50'
50 — число. Однако, если вы заключите его в одинарные кавычки, например, '50'
, SQL будет рассматривать его как строковый литерал.
Как правило, SQL чувствителен к регистру по отношению к строковым литералам, поэтому значение
не совпадает с 'JOHN'
.
Числовые литералы представляют собой целое, десятичное или экспоненциальное представление, например:
Язык кода: SQL (язык структурированных запросов) (sql)
200 -5 6.0221415E23
SQL представляет двоичное значение с использованием нотации x'0000'
, где каждая цифра является шестнадцатеричным значением, например:
Ключевые слова
В SQL есть много ключевых слов, которые имеют специальные значения, такие как SELECT, INSERT, UPDATE, DELETE и DROP. Эти ключевые слова являются зарезервированными словами, поэтому их нельзя использовать в качестве имен таблиц, столбцов, индексов, представлений, хранимых процедур, триггеров или других объектов базы данных.
Идентификаторы
Идентификаторы относятся к определенным объектам в базе данных, таким как таблицы, столбцы, индексы и т. д. SQL нечувствителен к регистру ключевых слов и идентификаторов.
Следующие операторы эквивалентны.
Язык кода: SQL (язык структурированных запросов) (sql)
Выберите * От сотрудников; ВЫБЕРИТЕ * ИЗ СОТРУДНИКОВ; выбрать * из сотрудников; ВЫБЕРИТЕ * ОТ сотрудников;
Чтобы сделать команды SQL более читабельными и понятными, мы будем использовать ключевые слова SQL в верхнем регистре, а идентификаторы — в нижнем регистре во всех руководствах.
Комментарии
Для документирования операторов SQL используются комментарии SQL. При анализе операторов SQL с комментариями ядро базы данных игнорирует символы в комментариях.
Комментарий обозначается двумя последовательными дефисами ( --
), которые позволяют прокомментировать оставшуюся строку. См. следующий пример.
ВЫБЕРИТЕ идентификатор_сотрудника, зарплата ОТ сотрудники ГДЕ зарплата < 3000; -- сотрудники с низкой зарплатой
Язык кода: SQL (язык структурированных запросов) (sql)
Это комментарий SQL.
Язык кода: SQL (язык структурированных запросов) (sql)
-- сотрудники с низкой зарплатой
Для документирования кода, который может занимать несколько строк, используется многострочная нотация в стиле C ( /* */
), как показано в следующем заявлении:
Язык кода: SQL (язык структурированных запросов) (sql)
/* увеличение на 5% для сотрудников, чья зарплата меньше 3000 */ ОБНОВИТЬ сотрудников НАБОР оклад = оклад * 1,05 ГДЕ зарплата < 3000;
В этом руководстве мы познакомили вас с синтаксисом SQL, который поможет вам понять каждый компонент оператора SQL.
Чтобы более эффективно изучать язык SQL, вам понадобится хороший образец базы данных, с которым можно попрактиковаться. В следующем уроке мы познакомим вас с простой базой данных SQL.
Было ли это руководство полезным?
Access SQL: основные понятия, словарный запас и синтаксис
Если вы хотите получить данные из базы данных, вы запрашиваете данные с помощью языка структурированных запросов или SQL. SQL — это компьютерный язык, очень похожий на английский, но понятный программам баз данных. Каждый выполняемый вами запрос использует SQL за кулисами.
Понимание того, как работает SQL, может помочь вам создавать более качественные запросы и упростить понимание того, как исправить запрос, который не возвращает нужных вам результатов.
Это одна из статей о Access SQL. В этой статье описывается основное использование SQL для выбора данных и используются примеры для иллюстрации синтаксиса SQL.
В этой статье
Что такое SQL?
Основные предложения SQL: SELECT, FROM и WHERE.
Сортировка результатов: ORDER BY
Работа с суммированными данными: GROUP BY и HAVING
Объединение результатов запроса: UNION
Что такое SQL?
SQL — это компьютерный язык для работы с наборами фактов и отношениями между ними. Программы реляционных баз данных, такие как Microsoft Office Access, используют SQL для работы с данными. В отличие от многих компьютерных языков, SQL несложно читать и понимать даже новичку. Как и многие компьютерные языки, SQL является международным стандартом, признанным такими органами стандартизации, как ISO и ANSI.
Вы используете SQL для описания наборов данных, которые могут помочь вам ответить на вопросы.
Например, простой оператор SQL, который извлекает список фамилий для контактов, чье имя — Мария, может выглядеть следующим образом:
ВЫБЕРИТЕ Фамилию
ИЗ Контактов
ГДЕ Имя = 'Мэри';
Примечание. SQL используется не только для управления данными, но также для создания и изменения структуры объектов базы данных, таких как таблицы. Часть SQL, используемая для создания и изменения объектов базы данных, называется языком определения данных (DDL). В этом разделе не рассматривается DDL. Дополнительные сведения см. в статье Создание или изменение таблиц или индексов с помощью запроса определения данных.
Операторы SELECT
Чтобы описать набор данных с помощью SQL, вы пишете оператор SELECT. Оператор SELECT содержит полное описание набора данных, которые вы хотите получить из базы данных. В том числе:
Какие таблицы содержат данные.
Как связаны данные из разных источников.
Какие поля или вычисления будут создавать данные.
Критерии, которым должны соответствовать данные для включения.
Нужно ли и как сортировать результаты.
Разделы SQL
Как и предложение, оператор SQL имеет разделы. Каждое предложение выполняет функцию оператора SQL. Некоторые предложения необходимы в операторе SELECT. В следующей таблице перечислены наиболее распространенные предложения SQL.
Пункт SQL | Что он делает | Обязательно |
ВЫБЕРИТЕ | Список полей, содержащих интересующие данные. | Да |
ИЗ | Список таблиц, содержащих поля, перечисленные в предложении SELECT. | Да |
ГДЕ | Указывает критерии поля, которым должна соответствовать каждая запись, чтобы быть включенной в результаты. | № |
ЗАКАЗАТЬ | Указывает, как сортировать результаты. | № |
СГРУППИРОВАТЬ ПО | В операторе SQL, содержащем агрегатные функции, перечислены поля, которые не суммируются в предложении SELECT. | Только при наличии таких полей |
ИМЕЮЩИЙ | В операторе SQL, содержащем агрегатные функции, задает условия, которые применяются к полям, суммируемым в операторе SELECT. | № |
Термины SQL
Каждое предложение SQL состоит из терминов — сравнимых с частями речи. В следующей таблице перечислены типы терминов SQL.
Термин SQL | Сопоставимая часть речи | Определение | Пример |
идентификатор | существительное | Имя, которое вы используете для идентификации объекта базы данных, например имя поля. | Клиенты. [Номер телефона] |
оператор | глагол или наречие | Ключевое слово, которое представляет действие или изменяет действие. | КАК |
константа | существительное | Неизменяемое значение, например число или NULL. | 42 |
выражение | прилагательное | Комбинация идентификаторов, операторов, констант и функций, результатом которой является одно значение. | >= Товары.[Цена за единицу] |
Верх страницы
Основные предложения SQL: SELECT, FROM и WHERE
Оператор SQL имеет общий вид:
ВЫБЕРИТЕ поле_1
ИЗ таблицы_1
ГДЕ критерий_1
;
Примечания:
Access игнорирует разрывы строк в операторе SQL. Однако рассмотрите возможность использования строки для каждого предложения, чтобы улучшить читаемость ваших операторов SQL для себя и других.
Каждый оператор SELECT заканчивается точкой с запятой (;). Точка с запятой может стоять в конце последнего предложения или в отдельной строке в конце оператора SQL.
Пример в Access
Ниже показано, как может выглядеть оператор SQL для простого запроса на выборку в Access:
1. Предложение SELECT
2. ИЗ статьи
3. ГДЕ пункт
В этом примере инструкция SQL гласит: «Выберите данные, хранящиеся в полях с именами «Адрес электронной почты» и «Компания», из таблицы «Контакты», в частности те записи, в которых значением поля «Город» является Сиэтл».
Давайте рассмотрим пример, по одному предложению за раз, чтобы увидеть, как работает синтаксис SQL.
Предложение SELECT
ВЫБЕРИТЕ [Адрес электронной почты], Компания
Это предложение SELECT. Он состоит из оператора (SELECT), за которым следуют два идентификатора ([Адрес электронной почты] и Компания).
Если идентификатор содержит пробелы или специальные символы (например, «Адрес электронной почты»), он должен быть заключен в квадратные скобки.
Предложение SELECT не должно указывать, какие таблицы содержат поля, и не может указывать какие-либо условия, которым должны соответствовать данные, которые должны быть включены.
Предложение SELECT всегда появляется перед предложением FROM в операторе SELECT.
Пункт FROM
ОТ Контакты
Это предложение FROM. Он состоит из оператора (FROM), за которым следует идентификатор (Contacts).
В предложении FROM не указаны поля для выбора.
Пункт WHERE
ГДЕ Город="Сиэтл"
Это предложение WHERE. Он состоит из оператора (WHERE), за которым следует выражение (City="Seattle").
Примечание. В отличие от предложений SELECT и FROM, предложение WHERE не является обязательным элементом инструкции SELECT.
Многие действия, которые позволяет выполнять SQL, можно выполнять с помощью предложений SELECT, FROM и WHERE. Дополнительные сведения о том, как вы используете эти пункты, представлены в следующих дополнительных статьях:
.Доступ к SQL: предложение SELECT
Доступ к SQL: предложение FROM
org/ListItem">
Доступ к SQL: предложение WHERE
Верх страницы
Сортировка результатов: ПОРЯДОК ПО
Как и Microsoft Excel, Access позволяет сортировать результаты запроса в таблице. Вы также можете указать в запросе, как вы хотите сортировать результаты при выполнении запроса, используя предложение ORDER BY. Если вы используете предложение ORDER BY, это последнее предложение в операторе SQL.
Предложение ORDER BY содержит список полей, которые вы хотите использовать для сортировки, в том же порядке, в котором вы хотите применять операции сортировки.
Например, предположим, что вы хотите, чтобы ваши результаты сначала отсортировались по значению поля "Компания" в порядке убывания, а — если есть записи с таким же значением для компании — затем отсортированы по значениям в поле "Адрес электронной почты" в порядке возрастания. заказ. Ваше предложение ORDER BY будет выглядеть следующим образом:
ЗАКАЗАТЬ Компания DESC, [Адрес электронной почты]
Примечание. По умолчанию Access сортирует значения в порядке возрастания (от A до Z, от меньшего к большему). Вместо этого используйте ключевое слово DESC для сортировки значений в порядке убывания.
Дополнительные сведения о предложении ORDER BY см. в разделе Предложение ORDER BY.
Верх страницы
Работа со сводными данными: GROUP BY и HAVING
Иногда вам нужно работать со сводными данными, такими как общий объем продаж за месяц или самые дорогие товары в инвентаре. Для этого вы применяете агрегатную функцию к полю в предложении SELECT. Например, если вы хотите, чтобы ваш запрос отображал количество адресов электронной почты, перечисленных для каждой компании, ваше предложение SELECT может выглядеть следующим образом:
ВЫБЕРИТЕ COUNT([Адрес электронной почты]), Компания
Доступные для использования агрегатные функции зависят от типа данных в поле или выражении, которые вы хотите использовать. Дополнительные сведения о доступных агрегатных функциях см. в статье Агрегатные функции SQL.
Указание полей, которые не используются в агрегатной функции: предложение GROUP BY
При использовании агрегатных функций обычно необходимо также создать предложение GROUP BY. В предложении GROUP BY перечислены все поля, к которым не применяется агрегатная функция. Если вы применяете агрегатные функции ко всем полям запроса, вам не нужно создавать предложение GROUP BY.
Предложение GROUP BY следует непосредственно за предложением WHERE или предложением FROM, если предложение WHERE отсутствует. Предложение GROUP BY перечисляет поля в том виде, в каком они появляются в предложении SELECT.
Например, продолжая предыдущий пример, если ваше предложение SELECT применяет агрегатную функцию к [Адрес электронной почты], но не к компании, ваше предложение GROUP BY будет выглядеть следующим образом:
ГРУППА КОМПАНИЙ
Дополнительные сведения о предложении GROUP BY см. в разделе Предложение GROUP BY.
Ограничение агрегированных значений с помощью групповых критериев: предложение HAVING
Если вы хотите использовать критерии для ограничения результатов, но поле, к которому вы хотите применить критерии, используется в агрегатной функции, вы не можете использовать предложение WHERE. Вместо этого вы используете предложение HAVING. Предложение HAVING работает так же, как предложение WHERE, но используется для агрегированных данных.
Например, предположим, что вы используете функцию AVG (которая вычисляет среднее значение) с первым полем в предложении SELECT:
ВЫБЕРИТЕ COUNT([Адрес электронной почты]), Компания
Если вы хотите, чтобы запрос ограничивал результаты на основе значения этой функции COUNT, вы не можете использовать критерий для этого поля в предложении WHERE. Вместо этого вы помещаете критерии в предложение HAVING. Например, если вы хотите, чтобы запрос возвращал строки только в том случае, если с компанией связано несколько адресов электронной почты, предложение HAVING может выглядеть следующим образом:
.HAVING COUNT([Адрес электронной почты])>1
Примечание. Запрос может содержать предложение WHERE и предложение HAVING — критерии для полей, которые не используются в агрегатной функции, указываются в предложении WHERE, а критерии для полей, которые используются с агрегатными функциями, — в предложении HAVING.
Дополнительные сведения о предложении HAVING см. в разделе Предложение HAVING.
Верх страницы
Объединение результатов запроса: UNION
Если вы хотите просмотреть все данные, которые возвращаются несколькими похожими запросами на выборку вместе, как объединенный набор, вы используете оператор UNION.
Оператор UNION позволяет объединить два оператора SELECT в один. Объединяемые операторы SELECT должны иметь одинаковое количество выходных полей, в том же порядке и с одинаковыми или совместимыми типами данных. Когда вы запускаете запрос, данные из каждого набора соответствующих полей объединяются в одно выходное поле, так что выходные данные запроса имеют то же количество полей, что и каждый из операторов select.
Примечание. Для целей запроса на объединение типы данных Number и Text совместимы.
При использовании оператора UNION можно также указать, должны ли результаты запроса включать повторяющиеся строки, если они существуют, с помощью ключевого слова ALL.
Базовый синтаксис SQL для запроса на объединение, который объединяет две инструкции SELECT, выглядит следующим образом:
ВЫБЕРИТЕ поле_1
ИЗ таблицы_1
UNION [ALL]
SELECT field_a
FROM table_a
;
Например, предположим, что у вас есть таблица с именем «Продукты» и другая таблица с именем «Службы».