Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Все книги французских авторов, изданных заданным издательством




 

SELECT a.fio, b.name

FROM authers a, books b, country c, publ p

WHERE (b.id_aut=a.id) AND (a.id_country=c.id) AND (c.name='Франция') AND (p.id=b.id_publ) AND (p.name='Все печатаем')

ORDER BY a.fio,b.name

Поэтические сборники английских авторов, изданных в заданном году

 

SELECT a.fio, b.name

FROM authers a, books b, country c, typebook t

WHERE (b.id_aut=a.id) AND (a.id_country=c.id) AND (c.name='Англия') AND (t.id=b.id_type) AND (t.name='Поэзия') AND (b.year_publ=2000)

ORDER BY a.fio,b.name

 

Запросы с параметрами

Для обеспечения большей гибкости запросов в тексте запроса могут указываться вместо конкретных значений переменные, которые получают конкретные значения при выполнении запроса. Такие переменные называются параметрами, а соответствующие запросы – запросами с параметрами. Перед переменной, обозначающей параметр в тексте запроса необходимо поставить знак «:», а перед открытием запроса – вызвать специальный метод ParamByName класса TQuery:

<имя объекта класса TQuery (имя запроса)>.ParamByName (<имя параметра>).Value:=<выражение>

 

Тип выражения должен соответствовать типу значения, который заменяет параметр в запросе. После выполнения метода ParamByNameзначение выражения заменяет в запросе параметр.

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

Структура такого запроса следующая:

 

SELECT b.name

FROM authers a, books b, country c

WHERE (b.id_aut=a.id) AND (a.id_country=c.id) AND (c.name=:param1) AND

(b.year_publ>=:param2)

ORDER BY b.name

Перед обращением к данному запросу необходимо задать значения двух параметров (типы данных: Country – String, Year- Short), а затем выполнить запрос:

 

Country:=InputBox(‘Наименование страны ’, ‘Введите наименование страны’,’’);

Year:=StrToInt(InputBox(‘Год’, ‘Введите год’,’’));

Query1.Close;

Query1.ParamByName('param1').Value:=Country;

Query1.ParamByName('param2').Value:=Year;

Query1.Open;

Запросы с операторами DELETE, INSERT, UPDATE

Запрос с оператором DELETE позволяет удалить из физической таблицы БД совокупность записей, удовлетворяющих заданным условиям.

Структура этого оператора в простом виде:

DELETE

FROM <имя таблицы БД>

WHERE <условие>

 

Например, для удаления из таблицы Books всех книг, изданных до 1917 года, необходимо выполнить следующий запрос:

 

DELETE

FROM books

WHERE books.year<1917

Запрос с оператором INSERT вставляет в таблицу запись с заданными значениями:

INSERT INTO <имя таблицы БД> (<список полей>)

VALUES (<список значений>)

 

INSERT INTO COUNTRY (ID, NAME)

VALUES (5, ‘Франция’)

 

Запрос с оператором UPDATE изменяет в таблице значения заданных полей для записей, удовлетворяющих заданным значениям.

 

UPDATE <имя таблицы БД>

SET <имя поля>=<выражение>, <имя поля>=<выражение>

WHERE <условие>

 

Для выполнения этих запросов из среды Delphi вместо метода Open вызывается метод ExecSQL.

 


Поделиться:

Дата добавления: 2015-04-04; просмотров: 58; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты