Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Начало нового описания SQL_QBE .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
564.22 Кб
Скачать

Вложенные запросы.

vlog_zapr1.prg:

Выдать famp поставщика/поставщиков, осуществившего/осуществивших наибольшее (наименьшее)количество участий в поставках.

CLEAR

SELECT poshk.famp, poshk.nomp, sum(poski.kolw), COUNT(*) as Р1;

FROM data1!poshk INNER JOIN data1!poski;

ON poshk.nomp = poski.nomp;

GROUP BY poshk.nomp,poshk.famp;

INTO CURSOR Z11

BROWSE

WAIT

SELECT MAX (Р1) AS MP;

FROM Z11;

INTO CURSOR Z112

BROWSE

WAIT

SELECT Z11.famp, MP;

FROM Z11, Z112;

WHERE Р1 = MP;

INTO CURSOR Z113

BROWSE

WAIT

RETURN

7.3 SQL – оператор INSERT INTO

I NSERT INTO db1_name [(bname1[,bname2,…])]

имя таблицы для список полей таблицы

добавления записи

VALUES (eExpression1 [,eExpression2,…])

список заносимых значений в эти поля

Если список полей опущен, то значения должны быть указаны в таком же порядке, в каком они определены в строке таблицы.

USE poshk_k

INSERT INTO poshk_k(nomp, famp, gord, stat, first_name, last_name)

Values (‘п6’, ‘Быков’, ‘Москва’, 30, ‘Иван’, ‘Борисович’)

7.4 SQL – оператор UPDATE

UPDATE [DatabaseName1!]TableName 1

SET Column_Name 1 = eExspression1[,ColumnName2 = eExpression 2…]

новое имя

W HERE FilterCondition 1 [AND|OR FilterCondition 2…]

фильтр условия

Эта команда обновляет записи только в одной таблице.

Когда необходимо изменить только одно определённое значение, необходимо использовать опцию WHERE.

UPDATE data1!poshk_k SET FirstName = ‘Василий’;

WHERE FirstName = ‘Иван’ AND LastName = ‘Иваницкий’.

Заменить имя Иван на Василий.

7.5 SQL – оператор DELETE

Внимание! Будьте осторожны! Запрос Delete удаляет целые строки!

DELETE FROM [DatabaseName1!] TableName

[WHERE FilterCondition1 [AND|OR FilterCondition2…]]

Эта команда помечает записи для удаления.

Запрос DELETE полностью удаляет строку из таблицы.

Если надо удалить одно единственное поле, то нужно использовать запрос UPDATE и установить для этого поля значение, которое будет являться аналогом NULL (в структуре таблицы).

Запрос DELETE надо обязательно ограничивать условием WHERE, иначе можно потерять всё содержимое таблицы! После удаления строка не восстанавливается!

USE poshk_k

DELETE FROM data1!poshk_k;

WHERE nomp = ‘П6’ AND famp = ‘Иван’ AND gord = ‘КИЕВ

7.6 Арифметические операции в опции where

Пример: определить, сколько будут стоить две штуки одной детали при условии, что их стоимость будет меньше 40.

SELECT Detl.nomd, Detl.naim, Detl.cena, Detl.cena*2 AS DOUBLE ;

FROM data1!detl ;

WHERE Cena * 2 <40