Оператор 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.

Вывести фамилии студентов, имеющих имена Владимир и Анатолий.

Вывести фамилии студентов, имеющих фамилию от 'К ' до 'Р' включительно.

Вывести фамилии студентов, не имеющих оценки.