Скачать 255.5 Kb.
|
Access SQL. Основные понятия, лексика и синтаксис Для извлечения данных из базы данных используется язык SQL (Structured Query Language — язык структурированных запросов). SQL — это язык программирования, который очень напоминает английский, но предназначен для программ управления базами данных. Каждый выполняемый запрос на самом деле основан на языке SQL. Понимание принципов работы SQL помогает создавать улучшенные запросы и упрощает исправление запросов, которые возвращают неправильные результаты. Это статья из цикла статей о языке Access SQL. В ней описаны основы использования SQL для выборки данных и приведены примеры синтаксиса SQL. SQL — это язык программирования, предназначенный для работы с наборами фактов и отношениями между ними. В программах управления реляционными базами данных, таких как Microsoft Office Access, язык SQL используется для работы с данными. В отличие от многих языков программирования SQL удобочитаем и понятен даже новичкам. Как и многие языки программирования, SQL является международным стандартом, признанным такими комитетами по стандартизации, как ISO и ANSI.
На языке SQL описываются наборы данных, помогающие получить ответы на вопросы. При использовании SQL необходимо применять правильный синтаксис. Синтаксис — это набор правил, позволяющих правильно сочетать элементы языка. Синтаксис SQL основан на синтаксисе английского языка и имеет много общих элементов с синтаксисом языка Visual Basic для приложений (VBA). Например, простая инструкция SQL, извлекающая список фамилий контактов с именем Mary, может выглядеть следующим образом: SELECT Last_Name FROM Contacts WHERE First_Name = 'Mary'; ПРИМЕЧАНИЕ Язык SQL используется не только для выполнения операций над данными, но еще и для создания и изменения структуры объектов базы данных, например таблиц. Та часть SQL, которая используется для создания и изменения объектов базы данных, называется языком описания данных DDL. Язык DDL не рассматривается в этом разделе. Дополнительные сведения см. в статье Инструкции SELECT Инструкция SELECT служит для описания набора данных на языке SQL. Она содержит полное описание набора данных, которые необходимо получить из базы данных, включая следующее:
Предложения SQL Инструкция SQL состоит из нескольких частей, называемых предложениями. Каждое предложение в инструкции SQL имеет свое назначение. Некоторые предложения являются обязательными. В приведенной ниже таблице указаны предложения SQL, используемые чаще всего.
Термины SQL Каждое предложение SQL состоит из терминов, которые можно сравнить с частями речи. В приведенной ниже таблице указаны типы терминов SQL.
Основные предложения SQL: SELECT, FROM и WHERE Общий формат инструкции SQL: SELECT field_1 FROM table_1 WHERE criterion_1 ; ПРИМЕЧАНИЯ
Пример в Access В приведенном ниже примере показано, как в Access может выглядеть инструкция SQL для простого запроса на выборку. 1. Предложение SELECT 2. Предложение FROM 3. Предложение WHERE Эту инструкцию SQL следует читать так: «Выбрать данные из полей "Адрес электронной почты“ и "Компания“ таблицы "Контакты“, а именно — те записи, в которых поле "Город“ имеет значение "Сиэтл“». Разберем пример по предложениям, чтобы понять, как работает синтаксис SQL. Предложение SELECT SELECT [E-mail Address], Company Это предложение SELECT. Оно содержит оператор (SELECT), за которым следуют два идентификатора ([Адрес электронной почты] и Организация). Если идентификатор содержит пробелы или специальные знаки (например, Адрес электронной почты), он должен быть заключен в прямоугольные скобки. В предложении SELECT не нужно указывать таблицы, в которых содержатся поля, и нельзя задать условия отбора, которым должны соответствовать данные, включаемые в результаты. В инструкции SELECT предложение SELECT всегда стоит перед предложением FROM. Предложение FROM FROM Contacts Это предложение FROM. Оно содержит оператор (FROM), за которым следует идентификатор (Контакты). В предложении FROM не указываются поля для выборки. Предложение WHERE WHERE City="Seattle" Это предложение WHERE. Оно содержит оператор (WHERE), за которым следует выражение (Город="Ростов"). ПРИМЕЧАНИЕ В отличие от предложений SELECT и FROM предложение WHERE является необязательным элементом инструкции SELECT. С помощью предложений SELECT, FROM и WHERE можно выполнять множество действий. Дополнительные сведения об использовании этих предложений см. в статьях, указанных ниже. Сортировка результатов: предложение ORDER BY Как и в Microsoft Office Excel, в Access можно сортировать результаты запроса в таблице. Используя предложение ORDER BY, в запросе также можно указать способ сортировки результатов при выполнении запроса. Если используется предложение ORDER BY, оно должно находиться в конце инструкции SQL. Предложение ORDER BY содержит список полей, для которых нужно выполнить сортировку, в том же порядке, в котором будут применена сортировка. Предположим, например, что результаты сначала нужно отсортировать по убыванию значения поля «Организация», а затем, если присутствуют записи с одинаковым значением поля «Организация», отсортировать их по возрастанию значения поля «Адрес электронной почты». Предложение ORDER BY будет выглядеть следующим образом: ORDER BY Company DESC, [E-mail Address] ПРИМЕЧАНИЕ По умолчанию в Access выполняется сортировка по возрастанию (от А до Я, от наименьшего к наибольшему). Чтобы вместо этого выполнить сортировку значений по убыванию, необходимо указать ключевое слово DESC. Дополнительные сведения о предложении ORDER BY см. в статье Работа со сводными данными: предложения GROUP BY и HAVING Иногда возникает необходимость работы со сводными данными, такими как итоговые продажи за месяц или самые дорогие товары на складе. Для этого в предложении SELECT к полю следует применить агрегатная функция. Например, если в результате выполнения запроса нужно получить количество адресов электронной почты каждой компании, предложение SELECT может выглядеть следующим образом: SELECT COUNT([E-mail Address]), Company Задание полей, которые не используются в статистической функции: предложение GROUP BY При использовании статистических функций обычно необходимо создать предложение GROUP BY. В предложении GROUP BY указываются все поля, к которым не применяется статистическая функция. Если статистические функции применяются ко всем полям в запросе, предложение GROUP BY создавать не нужно. Предложение GROUP BY должно следовать сразу же за предложением WHERE или FROM, если предложение WHERE отсутствует. В предложении GROUP BY поля указываются в том же порядке, что и в предложении SELECT. Продолжим предыдущий пример. Пусть в предложении SELECT статистическая функция применяется только к полю [Адрес электронной почты], тогда предложение GROUP BY будет выглядеть следующим образом: GROUP BY Company Дополнительные сведения о предложении GROUP BY см. в статье Ограничение статистических значений с помощью условий группировки: предложение HAVING Если необходимо указать условия для ограничения результатов, но поле, к которому их требуется применить, используется в статистической функции, предложение WHERE использовать нельзя. Вместо него следует использовать предложение HAVING. Предложение HAVING работает так же, как и WHERE, но используется для статистических данных. Предположим, например, что к первому полю в предложении SELECT применяется функция AVG (которая вычисляет среднее значение): SELECT COUNT([E-mail Address]), Company Чтобы ограничить результаты запроса на основе значения функции COUNT, к этому полю нельзя применить условие отбора в предложении WHERE. Вместо него условие следует поместить в предложение HAVING. Например, если нужно, чтобы запрос возвращал строки только в том случае, если у компании имеется несколько адресов электронной почты, можно использовать следующее предложение HAVING: HAVING COUNT([E-mail Address])>1 ПРИМЕЧАНИЕ Запрос может включать и предложение WHERE, и предложение HAVING, при этом условия отбора для полей, которые не используются в статистических функциях, указываются в предложении WHERE, а условия для полей, которые используются в статистических функциях, — в предложении HAVING. Объединение результатов запроса: оператор UNION Оператор UNION используется для одновременного просмотра всех данных, возвращаемых несколькими сходными запросами на выборку, в виде объединенного набора. Оператор UNION позволяет объединить две инструкции SELECT в одну. Объединяемые инструкции SELECT должны иметь одинаковое число и порядок выходных полей с такими же или совместимыми типами данных. При выполнении запроса данные из каждого набора соответствующих полей объединяются в одно выходное поле, поэтому выходные данные запроса имеют столько же полей, сколько и каждая инструкция SELECT по отдельности. ПРИМЕЧАНИЕ В запросах на объединение числовой и текстовый типы данных являются совместимыми. Используя оператор UNION, можно указать, должны ли в результаты запроса включаться повторяющиеся строки, если таковые имеются. Для этого следует использовать ключевое слово ALL. Запрос на объединение двух инструкций SELECT имеет следующий базовый синтаксис: SELECT field_1 FROM table_1 UNION [ALL] SELECT field_a FROM table_a ; Предположим, например, что имеется две таблицы, которые называются «Товары» и «Услуги». Обе таблицы содержат поля с названием товара или услуги, ценой и сведениями о гарантии, а также поле, в котором указывается эксклюзивность предлагаемого товара или услуги. Несмотря на то, что в таблицах «Продукты» и «Услуги» предусмотрены разные типы гарантий, основная информация одна и та же (предоставляется ли на отдельные продукты или услуги гарантия качества). Для объединения четырех полей из двух таблиц можно использовать следующий запрос на объединение: SELECT name, price, warranty_available, exclusive_offer FROM Products UNION ALL SELECT name, price, guarantee_available, exclusive_offer FROM Services ; Запрос SQL. Примеры в MS Access. SELECT: 1-10 Примеры запросов SQL могут использованы для изучения и практикума написания запросов SQL в MS Access. В запросе SQL оператор SELECT используется для осуществления выборки из таблиц базы данных. Запрос SQL Q001. Пример запроса SQL для получения только нужных полей в нужной последовательности: SELECT dt, product_id, amount FROM m_income; Запрос SQL Q002. В этом примере запроса SQL символ звездочки (*) использован для вывода всех столбцов таблицы m_product, иначе говоря, для получения всех полей отношения m_product: SELECT * FROM m_product; Запрос SQL Q003. Инструкция DISTINCT используется для исключения повторяющихся записей и получения множества уникальных записей: SELECT DISTINCT product_id FROM m_income; Запрос SQL Q004. Инструкция ORDER BY используется для сортировки (упорядочивания) записей по значениям определенного поля. Имя поля указывается за инструкцией ORDER BY: SELECT * FROM m_income ORDER BY price; Запрос SQL Q005. Инструкция ASC используется как дополнение к инструкции ORDER BY и служит для определения сортировки по возрастанию. Инструкция DESC используется как дополнение к инструкции ORDER BY и служит для определения сортировки по убыванию. В случае, когда ни ASC, ни DESC не указаны, подразумевается наличие ASC (default): SELECT * FROM m_income ORDER BY dt DESC , price; Запрос SQL Q006. Для отбора необходимых записей из таблицы пользуются различными логическими выражениями, которые выражают условие отбора. Логическое выражение приводится после инструкции WHERE. Пример получения из таблицы m_income всех записей, для которых значение amount больше 200: SELECT * FROM m_income WHERE amount>200; Запрос SQL Q007. Для выражения сложных условий пользуются логическими операциями AND (конъюнкция), OR (дизъюнкция) и NOT (логическое отрицание). Пример получения из таблицы m_outcome всех записей, для которых значение amount равно 20 и значение price больше или равно 10: SELECT dt, product_id, amount, price FROM m_outcome WHERE amount=20 AND price>=10; Запрос SQL Q008. Для объединения данных двух или более таблиц пользуются инструкциями INNER JOIN, LEFT JOIN, RIGHT JOIN. В следующем примере извлекаются поля dt, product_id, amount, price из таблицы m_income и поле title из таблицы m_product. Запись таблицы m_income соединяется с записью таблицы m_product при равенстве значения m_income.product_id значению m_product.id: SELECT dt, product_id, title, amount, price FROM m_income INNER JOIN m_product ON m_income.product_id=m_product.id; Запрос SQL Q009. В этом запросе SQL нужно обратить внимание на две вещи: 1) искомый текст заключен в одинарные кавычки ( ' ); 2) дата приведена в формате #Месяц/День/Год#, что верно для MS Access. В других системах формат написания даты может быть другим. Пример вывода информации о поступлении молока 12-го июня 2011 года. Обратите внимание на формат даты #6/12/2011#: SELECT dt, product_id, title, amount, price FROM m_income INNER JOIN m_product ON m_income.product_id=m_product.id WHERE title='Молоко' And dt=#6/12/2011#; Запрос SQL Q010. Инструкция BETWEEN используется для проверки принадлежности некоторому диапазону значений. Пример запроса SQL, выводящий информацию о товарах, поступивших между 1-м и 30-м июнем 2011 года: SELECT * FROM m_income INNER JOIN m_product ON m_income.product_id=m_product.id WHERE dt BETWEEN #6/1/2011# And #6/30/2011#; |
Староста группы назначается из числа наиболее способных к организационной деятельности студентов группы соответствующим распоряжением... | Оптимальный состав экспертной группы устанавливается исходя из необходимости соблюдения следующего требования (состав группы – 7... | ||
Наименование группы (этап спортивной подготовки, номер группы соответствует году обучения) | Общие сведения о компании-Проектоустроителе (В случае, если Проектоустроитель является участником Группы компаний, информация приводится... | ||
В пункте Группы форм принадлежность к группам. Для добавление группы форм нажать создать далее выбрать группы и нажать ок. Создать... | Наименование группы (этап спортивной подготовки, номер группы соответствует году обучения) | ||
Справка по проверке журнала группы кратковременного пребывания (группы дошкольной подготовки) | Руководителя Рабочей группы по совершенствованию таможенного законодательства, руководитель экспертной группы по подготовке проекта... | ||
Полное название организации (с указанием организационно-правовой формы, если организация зарегистрирована) или инициативной группы... | Группы работают в соответствии с утвержденным планом деятельности и режимом работы группы в соответствии с возрастными и психологическими... |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |