Использование SQL для группировки
Использование SQL для сортировки
Оператор UPDATE
DELETE FROM Tovar
DELETE FROM Tovar
Оператор DELETE
Оператор INSERT
WHERE
WHERE
Соединения равенства
SELECT table1.field1,… tableN.fieldN
FROM table1, … tableN
WHERE table1.common_field1= table2.common_field1
{AND table1.common_field2= table2.common_field2}
Запрос: Вывести сведения о клиентах и их покупках (сведения в таблице ПРОДАЖИ).
SELECT Клиенты.Фамилия, Продажи.Продано
FROM Клиенты, Продажи
Клиенты.Код_клиента = Продажи.Код_клиента
Запрос: Вывести для каждого клиента суммарное количество покупок
SELECT Клиенты.Фамилия,
SUM (Продажи.Продано) AS Количество
FROM Клиенты, Продажи
Клиенты.Код_клиента = Продажи.Код_клиента
GROUP BY Клиенты.Фамилия
Выборка из 3 таблиц проводится аналогично.
Запрос: Вывести для каждого клиента суммарное количество покупок по видам товара
SELECT Клиенты.Фамилия,
SUM (Продажи.Продано) AS Количество
FROM Клиенты, Продажи, Товар
WHERE
(Клиенты.Код_клиента = Продажи.Код_клиента) and (Продажи.Код_товара=Товары.Код_товара)
GROUP BY Клиенты.Фамилия
INSERT INTO <имя_таблицы>
(field1, … fieldN)
VALUES (значение1,….значениеN)
Пример:
Insert into Tovar
(Код, Товар, Цена, Производитель)
Values (5, 'Шкаф', 8700, 'КБК')
Поле Страна не указано в запросе и получит значение по умолчанию (здесь NULL).
DELETE FROM <название_таблицы>
[WHERE <условие>]
Пример:
- удаление всех записей таблицы:
- удаление записей с ценой < 3000:
WHEREЦена < 3000
UPDATE <название_таблицы>
SET <список_присвоений>
[WHERE <условие>]
Пример: увеличить цену товара в 1.5 раза
Update Tovar
Set Цена=Цена*1.5
Пример: Установить название страны там, где она не указана.
Update Tovar SetСтрана = 'США'
Where Страна is null
procedure TForm1.Button1Click(Sender : TObject);
Var s : string;
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from stu.db');
case RadioGroup2.ItemIndex of
0: s := '';
1: s := 'DESC';
end;
Case radioGroup1.ItemIndex of
0: s := 'Order by Fio ' + s;
1: s := 'Order by Gr ' + s;
2: s := 'Order by Stip ' + s;
3: s := 'Order by Gru ' + s;
4: s := '';
end;
Query1.SQL.Add(s);
Query1.Open; end;
procedure TForm1.Button2Click(Sender: TObject);
var s:string;
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from stu.db');
Case RadioGroup3.ItemIndex of
0: s := 'Order by Gr ';
1: s := 'Order by Stip ';
2: s := 'Order by Gru ';
3: s := '';
end;
Query1.SQL.Add(s);
Query1.Open;
end;
Запросы к базе данных «Компьютерная фирма»:
Product (maker, model, type) – производитель, номер модели, тип (PC – ПК, Laptop – ноутбук, Printer- принтер).
PC (code, model, speed, ram, hd, cd, price) – код, модель, скорость процессора (МГц), общий объем памяти (Мб), размер диска (Гб), скорость считывающего устройства (12х,…).
Laptop(code, model, speed, ram, hd, screen, price) – аналогично РС, screen – размер экрана.
Printer (code, model, color, type, price)
Задачи по БД «Компьютерная фирма»
Найдите номер модели, скорость и размер жесткого диска для всех ПК стоимостью менее $500. Вывести model, speed и hd