КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Все книги французских авторов, изданных заданным издательством⇐ ПредыдущаяСтр 13 из 13
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.
|