Идёт загрузка страницы...

htp://aptem.net.ru






На главную страничку учебника Visual Basic

SQL запросы

В этом разделе я бы хотел дать краткий справочник по операторам SQL, которые можно с успехом использовать в VB. Итак, начнём.

Все операции с данными в БД выполняются с помощью операторов SQL (SQL statement). Если работать через элемент Data, то для выполнения оператора SQL необходимо присвоить свойству RecordSource строку, содержащую запрос и затем обновить БД. Вы можете скачать пример (10Кб), в котором уже есть база дынных для примера (используется база данных Microsoft Access 2000). Информация отображается в компоненте DBGrid.

Вот список операторов SQL (не всех конечно, но самых необходимых):

===SELECT и FROM===

Оператор SELECT используется для извлечения информации из БД. Он состоит из директивы SELECT за которым через запятую перечисляются поля, из которых должна быть выведена информация. После них обязательно следует оператор FROM, который указывает на таблицу в БД. Например:

"SELECT Телефон,Фамилия,Код FROM Телефоны"

В этом примере на экран будут выведены 3 столбца в порядке, указанном в запросе. Здесь и далее можно употреблять вместо точных названий звёздочку. К примеру

"SELECT Телефон,Фамилия,Код FROM *"

==ORDER BY===

Для упорядочивания данных в столбце по возврастанию или убыванию используется опрератор ORDER BY. В следующем примере происходит сортировка по возрастанию в столбце Фамилия:

"SELECT * FROM Телефоны ORDER BY [Фамилия] ASC" _
'или вместо ASC поставить DESC (тогда по убыванию)

===DISTINCT===

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

"SELECT DISTINCT Фамилия FROM Телефоны"

===Булевские операторы===

В SQL допустимы стандартные булевские операторы, такие как =, >, <, <>, <=, >=. Также можно использовать комбинации этих операторов через AND, OR или XOR. Пример:

"SELECT * FROM Телефоны _
WHERE ([ID] < 3000) AND ([Фамилия] LIKE 'Вол*')"

===IN===

Этот оператор позволяет использовать множество в качестве условия отбора значений. Например, следующий запрос выведет абонентов, у которых номера телефонов 2-22-22 и 2-27-22.

"SELECT * FROM Телефоны WHERE [Телефон] IN ('2-22-22','2-27-22')"

===BETWEEN===

В отличие от предыдущего оператора, этот позволяет указать диапазон значений для выбора. В следующем примере будут выведены все записи, в которых поле ID больше 2000 но меньше 5000.

"SELECT * FROM Телефоны WHERE [ID] BETWEEN 2000 AND 5000"

===LIKE===

Этот оператор применяется исключительно к полям строкового типа. Он позволяет выбрать записи по указанной маске. Например:

"SELECT * FROM Телефоны WHERE [Телефон] LIKE '2-2*'"

===IS NULL===

С помощью этого оператора можно отобразить записи, которые содержат пустые поля. В следующем примере создаётся новая запись, в которой поле ID не задано и оператор SQL выведет на экран эту запись:

Data1.Recordset.AddNew
Data1.Recordset![Фамилия] = "Новый абонент"
Data1.Recordset![Телефон] = "2-15-65"
Data1.Recordset.Update
Data1.RecordSource = "SELECT * FROM Телефоны WHERE [ID] IS NULL"
Data1.Refresh

===Агрегатные функции===

Существуют несколько ф-ций для работы над группой выбранных полей:

COUNT - подсчёт строк, полученных в ходе запроса
SUM - сумма значений выбранного поля
AVG - среднее арифметическое поля
MAX - выводит наибольшее значение из поля
MIN - выводит наименьшее значение из поля

Пример:

"SELECT SUM(ID),MAX(ID),COUNT(Фамилия) FROM Телефоны"

===GROUP BY===

Этот оператор используется для группировки нескольких полей. Пример:

"SELECT Телефон,COUNT(ID) FROM Телефоны GROUP BY Телефон"

===AS===

Чтобы изменить имя поля используется оператор AS. В следующем примере изменяется имя поля ID на имя Идентификатор:

"SELECT Код,Фамилия,ID AS [Идентификатор],Телефон FROM Телефоны"

===Добавление выражений===

В результат запроса можно добавлять арифметические выражения. В них допустимо использование операций +, -, *, /. Например, для того чтобы вывести таблицу с удвоенным полем Id нужно:

"SELECT Код,Фамилия, Id*10, Телефон FROM Телефоны"

При выполнении этого запроса произойдёт смена имени поля Id на Expr1002. Для того, чтобы изменить имя можно использовать оператор AS:

"SELECT Код,Фамилия, Id*10 AS 'Id*10', Телефон FROM Телефоны"

На главную страничку учебника Visual Basic