==== ������������� ����������� � DELETE ====
�� ������ ����� ������������ ���������� � ��������� ������� DELETE. ��� ���� ��� �����������
����������
��������� �������� ������� �������� ����� ����������, ����� ������ ����� ���������, ��� �����,
��� ��� �� ������� ��
�� �������� �� �������������� ������� ������ ������. ��������, ���� �� ������� ���� ���������
� �������, �� �����
�� ������������ ��������� ������ ����� ������� ���� ���������� ����������� � ��������� �
�������:
DELETE FROM
Customers WHERE snum = ANY ( SELECT snum FROM Salespeople WHERE city = 'London' );
��� ������� ������ �� �������
���������� ������ Hoffman � Clemens (����������� ��� Peel), � Periera (������������ � Motika).
�������, �� ��������
��������������, ��������� �� ������������ ��� ��������, ������ ��� ������� ��� �������� ������
Peel � Motika. ���
�����. ������, ����� �� ������ ����������� � ���� ������, ������� �������� ������ �����������,
���� ������
������� - ������� ������� �������� ��������, � ����� ���������� ������, ���������. ���� ������,
�������, ������ �����
���������� ������ ��������, �������� ������� ��������� ��������. ����, ��������, �� ������
�������� �������� ����
city ����� ��������� �����, ��� ��� �������������, �� ������ ����������� ���� ���� ����������
����� �������
��������. ��� ��� �������� ���� ������ ����� ��������� ����������� �� ����������� �������
�������� ��� ����
��������� ������� �������, ��� ����� ����� ��������� ���������. SQL ����� ������������
��������� ������ � ����
������� ��������� �������� ���������� ����������� , �� ��� �� ������ �������� � �� ������
���������. ���� �� �� ������ ��������� � ������� �� ������� �� ������ ������� ������ �
����������� FROM ����������,
�� ������ � ���������, ��������� �� ������� ������-�������� ���� ������� - ������� ��������
������� ������� �
��������� ����� ����������� � �������� ���������. ������� �������, �� ������ ������������
������������ ����������.
��� ���������� �� ��� ������������ �����������, ������� �� ����� ������������ � INSERT, �
������� ��� ����������
������������ �� �������-���������� ������� �������������� � �������, � �� �� ������� ������
�������.
DELETE FROM
Salespeople WHERE EXISTS ( SELECT * FROM Customers WHERE rating = 100 AND Salespeople.snum = Customers.snum );
�������� ��������, ��� AND ����� ��������� ����������� ������� ��������� � ������� ���������.
��� �������� ��� ����
��������� ����� ����������� �������� ��� ������ ������ ������� ���������, ����� ��� ���
����������� � �������
������������� ������������. ��� ������� ������ ���� ��������� ������� ����� �� ������� ����
������ ��������� �
������� 100 � ������� ���������. ������� ��, ������� ������ ������ ������� �� ��:
DELETE FROM Salespeople WHERE
100 IN ( SELECT rating FROM Customers WHERE Salespeople.snum = Customers.snum);
��� ������� ������� ��� ������ ���
������� ��������� ��������� � ������� ��� ��������� ��������� �������� ����� ������ = 100.
������ ������������
���������� - ��� ���������� ��������� � �������� � ������� ��� ��������� �� ������� �������
(� �� � �����
����������� DELETE) - � ����� ����� �����������. �� ������ ����� ��������� ������� �� ������
���� � �������
��������� ������� ��������� ���, � ������� ��������� �������:
DELETE FROM Salespeople WHERE (snum IN ( SELECT
snum FROM Orders WHERE amt = ( SELECT MIN (amt) FROM Orders b WHERE a.odate = b.odate ));
��������� � ���������
DELETE , ����� ������������ ���������. ���� ���������� ������ ������� ����������� �������
����� ����������� ���
���� ������ ������ �������� �������. ���� ��� ����� ����� �� ��� ����� ������� ������,
�������� �������� ������� �����,
��� ��������, ��� ������� ������ ����� ���������� ������� ��� ���� ����. ���� snum ��������,
�������������� �� ����
�������, ����������� � ���������� � �������� �������� ������� DELETE, ������� ����� �������
��� ������ � ����
��������� ���� snum �� ������� ���������( ��� ��� snum - ��� ��������� ���� ������� ���������,
�� ����������� ���
������ ������� ������ ���� ��������� ������ ��� �������� ���� snum ����������� � �������
����������. ���� �������
������ ����� ������, ��� ��� ����� �������. ) ���� snum = 1007 ������� ����� �������, �����
���������� �������� �� 3 ��-
�����; ���� snum = 1002, ���������� �� 4 �������; ���� snum = 1001, ���������� � �������� ��
5 ������� ( ��� �������
������� �������� ������, �������� ����� ��� ������� Peel ���������� ������������ ������� �� 5
�������, �� ���� ���
������� �����������). ���� �� ������ ��������� Peel, �� ����� �� �������� ������ ���������,
������� �� ��� �����:
DELETE FROM Salespeople WHERE (snum IN ( SELECT snum FROM Orders a WHERE amt = ( SELECT MIN (amt) FROM Orders b
WHERE a.odate = b.odate ) AND 1 < ( SELECT COUNT onum FROM Orders b WHERE a.odate = b.odate ));
������ ��� ��� �
������� ��� ������ ������ ���� �������, ����� ���������� ���� = 1 �� ������ ������������
����������. ��� �������
�������� �������� ������� ������������, � ���� snum ������������� �� ����� �������� � ��������
��������.