Мартин грубер понимание sql перевод Лебедева В. Н. Под редакцией Булычева В. Н. Москва, 1993 martin gruber


INSERT INTO Salespeople (city, cname, comm, cnum) VALUES ('San Jose', 'Blanco', NULL, 1100)


Download 1.45 Mb.
bet151/172
Sana26.01.2023
Hajmi1.45 Mb.
#1128343
1   ...   147   148   149   150   151   152   153   154   ...   172
Bog'liq
Грубер. Понимание SQL

INSERT INTO Salespeople (city, cname, comm, cnum)
VALUES ('San Jose', 'Blanco', NULL, 1100);



DELETE FROM Orders WHERE cnum = 2006;


UPDATE Customers
SET rating = rating + 100
WHERE city = 'Rome';



UPDATE Customers
SET snum = 1004
WHERE snum = 1002;

Глава 16


INSERT INTO Multicust
SELECT *
FROM Salespeople
WHERE 1 < (SELECT COUNT (*)
FROM Customers
WHERE Customers.snum = Salespeople.snum);



DELETE FROM Customers
WHERE NOT EXISTS (SELECT *
FROM Orders
WHERE cnum = Customers.cnum);



UPDATE Salespeople
SET comm = comm + (comm * .2)
WHERE 3000 < (SELECT SUM (amt)
FROM Orders
WHERE snum = Salespeople.snum);

В более сложный вариант этой команды можно было бы вставить проверку, чтобы убедиться, что значения комиссионных не превышают 1.0 (100%):
UPDATE Salespeople
SET comm = comm + (comm * .2)
WHERE 3000 < (SELECT SUM (amt)
FROM Orders
WHERE snum = Salespeople.snum)
AND comm + (comm * .2) < 1.0;

Эти проблемы могут иметь другие, такие же хорошие решения.
Глава 17


CREATE TABLE Customers
(cnum integer,
cname char(10),
city char(10),
rating integer,
snum integer);



CREATE INDEX Datesearch ON Orders(odate);
(Все индексные имена, используемые в этих ответах — произвольные.)




CREATE UNIQUE INDEX Onumkey ON Orders(onum);



Download 1.45 Mb.

Do'stlaringiz bilan baham:
1   ...   147   148   149   150   151   152   153   154   ...   172




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling