VALUES (NULL, 'Петров И.И.', '1234567', 'Москва, ул. Пахарей 17-5'),
(NULL, 'Иванов П.П.', '8901234', 'Москва, ул. Слесарей 22-1д-2'),
(NULL, 'Сумкин Ф.Б.', '5678901', 'МО, Химки, ул. Улицы 42-123'),
(NULL, 'Сидоров С.М.', '4145252', 'Москва, ул. Бауманская 212-2'),
(NULL, 'Пушкин С.А.', '9982989', 'Магадан, ул. Пушкина 12-44');
Допустим, мы не хотим, чтобы в нашу таблицу могли ввести второго человека с такой же фамилией и инициалами.
Для этого Модифицируем таблицу «Клиенты», введя уникальный индекс, который запретит вводить повторяющиеся значения по столбцу «ФИО Клиента».
Для начала удалим уже существующий НЕуникальный индекс.
ALTER TABLE Клиенты DROP INDEX `ixClient`;
Добавим уникальный индекс, накладывающий ограничение на столбец «ФИО Клиента»:
ALTER TABLE Клиенты ADD CONSTRAINT `ixName` UNIQUE INDEX (`ФИО Клиента`);
Теперь, если попробовать ввести повторяющееся значение фамилии, то команда не пройдет.
INSERT INTO Клиенты
VALUES (NULL, 'Петров И.И.', '4440102', 'Москва, ул. Сезам 1-5');
Предположим, у нас есть список фамилий, которые необходимо ввести и среди этого списка могут встречаться повторяющиеся. В этом случае ни одна из фамилий списка не будет введена. Одна единственная повторяющаяся фамилия отменит всю команду. Чтобы этого не происходило, и все фамилии благополучно записались в БД проигнорировав повтор, нужно использовать команду IGNORE.(Повторенная фамилия записана не будет, зато запишутся все остальные.)
INSERT IGNORE INTO Клиенты
VALUES (NULL, 'Петров Т.П.', '4440102', 'Москва, ул. Сезам 1-5'),
(NULL, 'Сидорова А.К.', '4145252', 'Москва, ул. Бауманская 212-2'),
(NULL, 'Пушкин С.А.', '9982989', 'Магадан, ул. Пушкина 12-44');
Проверим правильность заполнения.
SELECT * FROM Клиенты;
Как мы видим, второй «Пушкин С.А.» записан не был.
Исправим инициалы первого (и единственного в нашей БД) Пушкина оператором UPDATE:
UPDATE Клиенты -- Обновить таблицу клиенты
SET `ФИО Клиента`= 'Пушкин А.С.' -- Установить «Пушкин А.С» в столбце «ФИО Клиента»
WHERE `ФИО Клиента` = 'Пушкин С.А.'; -- У тех строк, где «ФИО Клиента» равняется «Пушкин С.А.»
Можно было сделать то же самое, и другим способом:
UPDATE Клиенты -- Обновить таблицу клиенты
SET `ФИО Клиента`= 'Пушкин А.С.' -- Установить «Пушкин А.С» в столбце «ФИО Клиента»
WHERE `Код клиента` = 5; -- У тех строк, где «Код Клиента» равняется 5
Теперь удалим последнего Клиента из Таблицы.
DELETE FROM Клиенты
WHERE `Код Клиента` = 8;
*Чтобы удалить ВСЕ строки из таблицы следует написать « DELETE FROM Клиенты;»