
- •Лекция № 1. Информационные системы и базы данных.
- •1.5. Документация и методы ее формирования.
- •Лекция № 2. Информационные системы и базы данных. Субд. Определение базы данных.
- •Компоненты sql Server
- •Лекция № 3. Основы языка запросов sql.
- •3.1 Компоненты sql
- •Предложение Описание
- •Операции sql
- •3.2 Запрос на выборку
- •Лекция № 4. Основы языка запросов sql.
- •4.1. Удаление записей с помощью запроса
- •4.2 Добавление записей с помощью запроса
- •4.3 Запрос на обновление
- •4.4 Реализация операции соединения с помощью запроса
- •4.5. Реализация операции объединения с помощью запроса
- •Лекция № 5. Платформа .Net.
- •Лекция № 6. Знакомство с языком программирования с#.
- •Объектно-ориентированное программирование
- •Лек ция № 7. Создание клиентских приложений Windows.
- •Объекты ado.Net
- •Лек ция № 8. Создание клиентских приложений Windows. Подключение к бд
- •Команды для манипулирования данными
- •Параметры
- •Применение объекта DataReader
- •Модификация и обновление данных
- •Модификация данных
- •Связывание, просмотр и фильтрация данных
- •Литература
Предложение Описание
FROM Предназначено для указания имени таблицы, из которой должны быть выбраны записи.
WHERE Специфицирует условия, которым должны удовлетворять отбираемые записи.
GROUP BY Используется для распределения выбранных записей в определенные группы.
HAVING Объявляет условие, которому должна удовлетворять каждая группа записей.
ORDER BY Используется для специфицирования порядка сортировки выбранных записей.
CONSTRAINT С этого ключевого слова начинается определение индекса для существующей таблицы в инструкции CREATE TABLE.
Операции sql
В SQL имеется два вида операций (операторов): логические и операции сравнения.
Логические операции используются для соединения выражений обычно внутри предложения WHERE. Например;
SELECT * from таблица WHERE условие1 AND условие2
Здесь операция AND соединяет выражения условие1 и условие2, специфицируя, что для удовлетворения критериев выбора должны быть выполнены оба условия.
Логические операции включают:
AND; OR; NOT
Операции сравнения позволяют сравнить значения двух выражений. Например:
SELECT * from Издатели WHERE NоИздателя = 5
Здесь операция "=" определяет, что должны быть выбраны только те записи, поле NoИздaтеля которых имеет значение 5.
Операции сравнения перечислены в следующей таблице:
< (Меньше) <= (Меньше или равняется)
> (Больше) >= (Больше или равняется)
= (Равняется) <> (Не равняется)
Between...And Определяет принадлежность значения выражения указанному диапазону.
LIKE Используется для задания шаблона совпадения
IN Проверяет, совпадает ли значение выражения с одним из элементов указанного списка.
Агрегатные функции
Агрегатные (статистические) функции используются внутри предложения SELECT для групп записей, возвращая единственное значение, отражающее некоторую обобщающую характеристику группы записей. Например, агрегатная функция AVG может возвращать среднее из всех значений отдельного поля набора записей. Агрегатные функции приведены в таблице:
Агрегатная функция Описание
AVG Возвращает среднее значение отдельного поля
COUNT Возвращает количество записей в выделении.
SUM Возвращает сумму значений отдельного поля.
MAX Возвращает наибольшее значение в специфицированном поле.
MIN Возвращает наименьшее значение в специфицированном поле.
Инструкции подмножества SQL - языка манипулирования данными (DML) используют для отбора записей в таблицах, модификации, добавления или удаления записей. Для выполнения этих задач поддерживается ряд различных инструкций, однако большинство них представляет часть общей структуры запроса SELECT.
3.2 Запрос на выборку
Инструкция SELECT (запрос на выборку) предназначена для получения записей из базы данных в виде набора записей с сохранением его в новом объекте Recordset. В приложении можно затем манипулировать этим набором записей - выводить записи на экран в форме добавлять, изменять и/или удалять их, а также создавать отчеты, SELECT - чаще всего первое слово в инструкции SQL. Большинство инструкций SQL представляют собой запросы SELECT. Запросы SELECT не изменяют данные в базе данных - они только отбирают данные.
Общая форма запроса SELECT следующая:
SELECT список_полей
FROM таблицы IN база_данных
WHERE условия_отбора
GROUP BY список_полей
HAVING группа критерии
ORDER BY список_полей
WITH OWNERACCESS OPTION
Базовый запрос
Самый простой возможный запрос SELECT
SELECT * FROM таблица
Например, следующий запрос SELECT вернет все столбцы всех записей из таблицы Служащие:
SELECT * FROM Служащие
Звездочка указывает, что необходимо отобрать все столбцы указанных таблиц. Можно специфицировать только некоторые столбцы. В наборе записей данные каждого столбца располагаются в порядке, в котором они перечислены в запросе: таким образом, для удобочитаемости набора столбцы можно переупорядочивать:
SELECT [Имя служащего], [Фамилия служащего] FROM Служащие
Инструкция SELECT всегда содержит предложение FROM, указывающее таблицу или несколько таблиц, из которых отбираются записи.
Если в список отбираемых полей требуется включить поля, имеющиеся в более чем одной из таблиц предложения FROM, эти поля нужно квалифицировать именем таблицы с оператором . (точка). В следующем примере поле Отдел имеется и в таблице Служащие, и в таблице Начальники. Инструкция SQL выбирает Отдел из таблицы Служащие и поле "Начальник" из таблицы "Начальники":
SELECT Служащие.Отдел, Начальники.Начальник
FROM Служащие, Начальники
WHERE Служащие.Отдел = Начальники.Отдел;
Предложение WHERE определяет, какие записи из таблиц, перечисленных в предложении FROM, должны быть включены в результат инструкции SELECT.
Если предложение WHERE не специфицируется, запрос возвращает все строки из таблицы. Если в запросе специфицировано более одной таблицы, а предложение WHERE или предложение JOIN не включено, запрос генерирует декартово произведение таблиц - матрицу, содержащую все возможные упорядоченные комбинации строк всех таблиц.
Когда инструкцией SELECT создается объект Recordset, имена столбцов таблицы становятся именами объекта Field в Recordset. Предложением AS можно установить для столбцов альтернативные (возможно, более описательные или экономные имена).
Синтаксис такого запроса следующий:
SELECT имя_стол6ца AS новое_ имястолбца FROM таблица,
Использовать предложение AS нужно для запросов, которые возвращают неоднозначные или дублированные имена объектов Field; в таких случаях для объекта Field следует обеспечить альтернативное имя.
Предложение GROUP BY
GROUP BY - необязательное предложение, которое объединяет записи с идентичными значениями в специфицированном списке полей в единственную запись. Если в инструкцию SELECT включить агрегатную функцию SQL такую как Sum или Count, для каждой записи создается итоговое значение.
Предложение WHERE используется для исключения строк до группирования, а предложение HAVING - для фильтрования записей после того, как они были сгруппированы.
Если инструкция SELECT включает по крайней мере одну агрегатную функцию SQL, списке GROUP BY может быть включено любое поле таблиц, перечисленных в предложении FROM, даже если это поле не включено в инструкцию SELECT. Все поля в списке SELECT должны быть включены либо в предложении GROUP BY, либо как параметры агрегатной функции SQL.
В следующем примере определяется средняя цена всех продуктов каждого поставщика и список цен группируется по поставщикам:
SELECT КодПоставщика, Avg(Цена) AS СредняяЦена
FROM Товары
GROUP BY КодПоставщика;
Предложение ORDER BY
Сортирует записи, полученные в результате запроса, в порядке возрастания или убывания на основе значений указанного поля или полей.
По умолчанию используется порядок сортировки по возрастанию (от "A" до "Я" и от 0 до 9). Обе приведенные ниже инструкции SQL одинаково сортируют записи по фамилиям сотрудников:
SELECT Фамилия, Имя
FROM Сотрудники
ORDER BY Фамилия;
SELECT Фамилия, Имя
FROM Сотрудники
ORDER BY Фамилия ASC;
Для сортировки по убыванию (от "Я" до "A" и от 9 до 0), следует добавить зарезервированное слово Desc после имени каждого поля, которое нужно отсортировать в убывающем порядке. В приведенной ниже инструкции SQL отбор происходит на основе окладов, которые сортируются по убыванию:
SELECT Фамилия, Оклад
FROM Сотрудники
ORDER BY Оклад Desc, Фамилия;
Предложение ORDER BY может содержать несколько полей. Сначала записи сортируются по первому полю в списке ORDER BY, затем записи, имеющие совпадающие значения в первом поле, сортируются по второму полю и т.п.