Поделиться через


Получение записей с помощью Access SQL

Наиболее базовой и часто используемой инструкцией SQL является инструкция SELECT . Инструкции SELECT являются рабочими лошадями всех инструкций SQL, и их обычно называют запросами select. Инструкция SELECT используется для получения данных из таблиц базы данных, и результаты обычно возвращаются в наборе записей (или строк), состоящих из любого количества полей (или столбцов). Чтобы указать, какую таблицу или таблицы выбрать, необходимо использовать предложение FROM . Базовая структура инструкции SELECT :

SELECT field list  
    FROM table list

Чтобы выделить все поля из таблицы, используйте звездочку (*). Например, следующая инструкция выбирает все поля и все записи из таблицы Customers.

SELECT * 
    FROM tblCustomers 

Чтобы ограничить поля, полученные запросом, просто используйте вместо него имена полей. Пример.

SELECT [Last Name], Phone 
    FROM tblCustomers 

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

SELECT CustomerID AS [Customer Number] 
    FROM tblCustomers 

Ограничение результирующих наборов

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

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 

Обратите внимание на CustomerID = 1 часть предложения WHERE . Предложение WHERE может содержать до 40 таких выражений, и их можно объединить с логическими операторами And или Or. Использование нескольких выражений позволяет дополнительно отфильтровать записи в результирующем наборе.

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 AND InvoiceDate > #01/01/98# 

Имейте в виду, что строка даты заключена в числовые знаки (#). Если в выражении используется обычная строка, ее необходимо заключить в одинарные кавычки ('). Пример.

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] = 'White' 

Если вы не знаете целое строковое значение, можно использовать подстановочные знаки с оператором Like .

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] LIKE 'W*' 

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

Подстановочный знак Description
* Ноль или более символов
? Любой знак
# Любая однозначная цифра (0–9)
[ charlist ] Любой знак в группе charlist
[! charlist ] Любой знак вне группы charlist

Сортировка результирующих наборов

Чтобы указать определенный порядок сортировки для одного или нескольких полей в результирующем наборе, используйте необязательное предложение ORDER BY . Записи можно сортировать по возрастанию (ASC) или по убыванию (DESC); по возрастанию используется значение по умолчанию.

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

SELECT * 
    FROM tblCustomers 
    ORDER BY [Last Name], [First Name] DESC 

Вы также можете использовать номера полей (или позиции) вместо имен полей в предложении ORDER BY .

SELECT * 
    FROM tblCustomers 
    ORDER BY 2, 3 DESC 

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.