Использование синтаксиса SELECT в ADO
Автор:Eve Cole
Время обновления:2009-05-30 19:54:37
ВЫБРАТЬ выражение
Далее давайте посмотрим на выражение SELECT. SELECT используется для поиска записей, соответствующих определенным условиям в таблице. Синтаксис следующий:
SELECT [ключевое слово] { * | имя таблицы.* | [имя таблицы.] имя поля 1 [псевдоним AS 1] [, [имя таблицы.] имя поля 2 [псевдоним AS 2] [, ...]]}
FROM табличное выражение [, ...] [ВО внешней таблице]
[ГДЕ... ]
[ГРУППИРОВАТЬ ПО... ]
[Имея...]
[ЗАКАЗАТЬ... ]
[С ОПЦИЕЙ ДОСТУПА ВЛАДЕЛЬЦА]
Ключевое слово: может использоваться для ограничения количества возвращаемых записей и может быть установлено в значения ALL, DISTINCT, DISTINCTROW или TOP. Если предикат не указан, значением по умолчанию является ВСЕ.
*: выберите все поля.
Псевдоним: замените исходное имя поля в таблице.
Табличное выражение: одно или несколько имен таблиц, разделенных запятыми.
Внешняя таблица: если таблица не существует в текущей таблице, необходимо установить имя таблицы, содержащей таблицу в табличной операции.
Выполнение выражения SELECT не изменит существующие данные в таблице.
Самый простой синтаксис выражения SELECT:
SELECT * FROM табличное выражение
Вы можете использовать звездочку (*), чтобы выбрать все поля таблицы. Например, в следующем примере выбираются все поля в таблице [Продукт]:
ВЫБРАТЬ * ИЗ продуктов
Если имя поля содержит пробелы или знаки препинания, его необходимо заключить в квадратные скобки [ ]. Например:
ВЫБЕРИТЕ [Компьютерная продукция]
Если имя поля в предложении FROM содержит несколько таблиц, необходимо добавить имя таблицы и оператор точку (.) перед именем поля, то есть имя таблицы.имя поля. Например, в следующем примере выбирается поле [Цена] таблицы [Продукт] и поле [Количество] таблицы [Заказ]:
ВЫБЕРИТЕ товар.цена, заказ.количество
ИЗ продукции, заказов
ГДЕ товар.код = код заказа
При использовании объекта Recordset Recordset не распознает формат rs (имя таблицы. имя поля), то есть rs («продукт. цена») вызовет ошибку, и необходимо использовать AS для установки псевдонима поля. имя. например:
ВЫБЕРИТЕ товар.ценаКАК цена, заказ.количествоКАК
ИЗ продукции, заказов
ГДЕ товар.код = код заказа
Таким образом, вы можете использовать rs («цена») и rs («количество») для чтения данных его полей.
Синтаксис, связанный с выражениями SELECT:
Ключевые слова: ВСЕ/ ОТЛИЧНЫЕ/ ОТЛИЧНЫЕ/ ТОП.
ГДЕ: Найдите в таблице FROM записи данных, соответствующие определенным условиям. WHERE можно использовать следующие операторы BETWEEN, LIKE и IN:
Между...И: определяет, попадает ли значение выражения в указанный диапазон.
Нравится: Найдите совпадающие ключевые слова.
Выражение IN: ограниченный диапазон.
Выражение NOT IN: указывает, что оно не принадлежит указанному диапазону.
Предложение ORDER BY: вы можете установить поля сортировки.
Предложение GROUP BY: сбор статистики по результатам запроса.
Предложение HAVING: используется в выражении SELECT для фильтрации записей, которые имеют статистику GROUP BY.
Объединение: результаты нескольких наборов запросов могут быть объединены.
СОЕДИНЕНИЕ: объединяет записи полей в двух таблицах.
Подзапрос: выражение может включать выражение SELECT.
Select...Into: создание сгенерированной таблицы на основе результатов запроса.
Подробности следующие:
ВСЕ/DISTINCT/DISTINCTROW/ТОП ключевые слова
При использовании запроса SELECT вы можете добавлять ключевые слова для выбора запрашиваемых записей. следующее:
ВСЕ: вернуть все записи.
DISTINCT: если в указанном поле есть повторяющиеся записи, будет возвращена только одна запись, и записи не будут дублироваться.
DISTINCTROW: ни одна из записей в указанном поле не будет возвращена, если есть дубликаты.
TOP: возвращает предыдущие записи или проценты записей.
Синтаксис следующий:
ВЫБРАТЬ [ВСЕ | РАЗНЫЕ | ОТЛИЧНЫЕ | [ВЕРХНИЙ ПРОЦЕНТ]]]
ИЗ таблицы
ALL возвращает все записи. Если ключевое слово не добавлено, это имеет то же значение, что и добавление ВСЕХ, и будут возвращены все записи. Например, следующие два примера имеют одинаковые результаты выполнения, оба возвращают все записи из таблицы продуктов:
ВЫБРАТЬ ВСЕ * ИЗ товаров
Результат выполнения такой же, как:
ВЫБРАТЬ * ИЗ товаров
DISTINCT не выбирает повторяющиеся данные в указанном поле. После использования DISTINCT в результатах запроса будут перечислены значения данных каждого поля после SELECT DISTINCT. Если они одинаковы, будет взята только одна запись. Другими словами, в указанном поле не будет дублирования. Например, в таблице продуктов есть несколько продуктов с одинаковым названием продукта, и выражение SQL DISTINCT вернет только одну запись, поле которой содержит одинаковые данные о названии продукта:
ВЫБЕРИТЕ ОТЛИЧНОЕ название продукта ОТ продукта
Если вы не укажете DISTINCT, приведенный выше пример запроса вернет несколько записей, содержащих одно и то же название продукта.
Если после предложения SELECT DISTINCT указано несколько полей, объединенные значения всех полей в результатах запроса не будут повторяться.
DISTINCTROW не возвращает все повторяющиеся записи указанного поля.
TOP n [PERCENT] возвращает предыдущие записи или процент записей. Порядок сортировки можно указать с помощью предложения ORDER BY. Например, найдите имена 10 лучших студентов:
ВЫБЕРИТЕ ТОП-10 Имя
ОТ студентов
СОРТИРОВАТЬ ПО баллам
Если вы не включите предложение ORDER BY, запрос вернет произвольные 10 записей из таблицы Student.
TOP не выбирает между одинаковыми значениями. Если 10-й и 11-й результаты совпадают, запрос вернет 11 записей.
Вы можете использовать ПРОЦЕНТ, чтобы установить записи первых нескольких процентов, например, чтобы найти имена 10% лучших учеников:
ВЫБЕРИТЕ ТОП-10 ПРОЦЕНТОВ Имя
ОТ студентов
СОРТИРОВАТЬ ПО баллам
Давайте рассмотрим пример использования этой команды SQL в программе ASP.
Вы можете использовать Distinct для поиска уникальных записей. Например, программа ASP rs7.asp выглядит следующим образом: [Вставить в продукт (кодовое имя, имя) Выберите уникальное кодовое имя, имя Из продукта, где кодовое имя = 'C2000'] Использование Distinct. и «Вставить в», новое кодовое имя — записи C2000:
<%
'Отдельный код, имя определяет только код, совпадают ли имена, добавляется только одна запись, если они одинаковы
sql = "Вставить в продукт (кодовое имя, имя). Выбрать отдельное кодовое имя, имя Из продукта, где код = 'C2000'"
Установите a = conn1.Execute(sql)
Установите rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Выберите * из продукта, где code='C2000'"
rs3.Открыть sql,conn1,1,1,1
%>
<ТАБЛИЦА COLSPAN=8 CELLPADDING=5 BORDER=0>
<ТР>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Код</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Имя</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Цена</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Количество</FONT></TD>
</TR>
<% Делать, пока нет rs3.EOF %>
<ТР>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("codename")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("name")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("price")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("количество")%></TD>
</TR>
<%
rs3.MoveNext
Петля
rs3.Закрыть
%>
</ТАБЛИЦА>
ГДЕ
WHERE ищет записи данных, соответствующие определенным условиям в таблице FROM. WHERE используется в выражениях SELECT, UPDATE или DELETE.
Если предложение WHERE не указано в запросе SELECT, будут возвращены все данные в таблице. Если вы запрашиваете несколько таблиц в SELECT без использования предложения WHERE или предложения JOIN, результатом запроса будет произведение данных в нескольких таблицах.
WHERE устанавливает определенные условия, такие как:
FROM продукта WHERE Категория = «Компьютер»: указывает на выбор [Продукта], для которого [Категория] — [Компьютер].
ГДЕ Цена между 1000 и 5000: указывает, что цена находится в диапазоне от 1000 до 5000.
Предложение WHERE может содержать до 40 операционных выражений, которые связаны логическими операторами, такими как AND или OR.
При настройке особых условий добавляйте разные символы до и после в зависимости от типа поля, например:
Текст: добавьте одинарные кавычки до и после, например, WHERE Category = «Компьютер».
Цифры: никаких знаков до и после, например, ГДЕ количество > 100.
Дата: добавьте знаки # до и после, например, WHERE date = #5/15/99#.
WHERE можно использовать следующие операторы BETWEEN, LIKE и IN.