Оператор SELECT
Структура SQL-запроса
Команды языка SQL
Процесс обработки запроса
Язык запросов к базам данным SQL
Управление реляционными БД
Лекция
Программная реализация SQL - запроса
Query1.Close; //закрывает предыдущий запрос
Query1.SQL.Clear; //удаляет предыдущий запрос
Query1.SQL.Add(Edit1.Text);//считывает запрос из поля Edit1.Text
Query1.Open; //открывает файл запросов
Язык запросов к базам данным SQL
Использование реляционных БД возможно только при наличии эффективных средств управления данными.
В результате исследований был предложен ряд языков:
• SQL – структурированный язык запросов,
• QBE – Query By Example – запрос по образцу,
• QUEL - Query Language – язык запросов.
SQL включает все средства, распространен.
- язык структурированных запросов (Structured Query Language).
• Является стандартом обмена информацией между программным продуктом и БД (ISO/IEC 9075:1992).
• Однако ни одна СУБД полностью не поддерживает стандарт SQL-92.
• Имеются диалекты этого языка.
Можно выделит две части языка:
• язык определения данных DDL (Data Definition Language),
• язык манипулирования данными DML (Data Manipulation Language).
Язык SQLотличается от языка программирования:
• не имеет структур управления,
• оперирует только имеющимися данными.
SQL –запрос формируется и хранится в приложении, а выполняется непосредственно БД.
Передача SQL –запроса в БД и получение результат является функцией механизма доступа к БД.
В Delphi это протекает следующим способом:
Select – отбор данных,
Create Table – создание новой таблицы,
Drop Table – удаление существующей таблицы,
Alter Table – модификация таблицы,
Create Index – создание нового индекса,
Drop Index – удаление индекса,
Update – модификация записей по условию
Insert – вставка записей по условию,
Delete – удаление записей по условию.
SQL-запрос – текстовое выражение, описывающее инструкцию как получить (вставить, обновить, удалить) информацию.
Включает в себя:
• команды SELECT, INSERT, UPDATE, DELETE для получения, вставки, обновления и удаления записей в таблицах,
• ключевые слова для подробного описания операций,
• названия таблиц БД,
• название функций языка, арифметические операторы и операторы сравнения.
SELECT <список_выбора>
[ INTO <новая_таблица> ]
FROM <исходная_таблица>
[ WHERE <условие_отбора> ]
[ GROUP BY <список полей> ]
[ HAVING <условие_отбора> ]
[ ORDER BY <список выражений> [ASC | DESC ] ]
Оператор SELECT (простая форма):
SELECT {* | All | Distinct field1,… fieldN}
FROM table1{, table2,… tableN}
Отношение Товары:
Выбор всех полей:
SELECT * FROM Товары
либо
SELECT all FROM Товары
Выбор отдельных полей:
SELECT Товар FROM Товары
SELECT Товар, Цена FROM Товары
Выбор неповторяющихся полей:
SELECT Distinct Товар FROM Товары
Оператор SELECT (задание условий)
SELECT <список_выбора>
FROM <исходная_таблица>
WHERE <условие_отбора>
WHERE используется для ограничения записей.
В качестве условия могут быть использованы:
- операторы сравнения (=, <>, >, >=, …..),
- логические операторы (is null, bettween.. …and, like, any , in,……),
- операторы объединения (and, or),
- операторы отрицания (not).
SELECT Товар, Цена
FROM Товары
Where Товар= 'Стол'
SELECT Товар, Цена
FROM Товары
Where Цена <= 5000 /// Where (Цена > 5000) and (Цена < 10000)
SELECT Товар, Цена
FROM Товары
Where Цена Between 5000 and 15000
Between различает порядок значений (первое должно быть наименьшим):
SELECT Товар, Цена
FROM Товары
Where Товар Between 'А' and 'С'
- Стол не будет выведен, т.к. сравнение идет и по длине строки.
SELECT Товар
FROM Товары
Where Страна IS NULL
–выборка записей, у которых не указана страна.
SELECT Товар
FROM Товары
Where Страна IN(РФ, Китай)
- выборка записей, у которых значение
поля Страна входит в список.
Опция Like применяется для сравнения значения поля с заданным шаблоном.
Для задания шаблонов используются:
% - заменяет последовательность символов любой (и нулевой) длины,
_ - заменяет единичный символ.
SELECT Товар
FROM Товары
WhereТовар Like 'Д% ' – выводит записи начинающие с 'Д '
Примеры: имеем отношение
STUDENT (Kod, Fam, Im, Gruppa, Stip, Ocenka)
Запросы (использовать все варианты ответа):
Вывести всю информацию о студентах.
Вывести фамилии студентов и их оценки.
Вывести фамилии студентов (уникальные значения).
Вывести фамилии студентов, получающих стипендию (не получающих).
Вывести фамилии студентов, получивших 4 и 5.
Вывести фамилии студентов, имеющих имена Владимир и Анатолий.
Вывести фамилии студентов, имеющих фамилию от 'К ' до 'Р' включительно.
Вывести фамилии студентов, не имеющих оценки.