
- •Лабораторная работа №5
- •Основные директивы sql-запросов: create table - создать таблицу.
- •Primary key – объявление первичного ключа
- •Alter table - изменить таблицу.
- •Drop table - удалить таблицу.
- •Insert вставить
- •Delete - удалить
- •Select - выбрать.
- •Пример1
- •Пример3
- •Операция join
- •Создание запросов sql
- •Редактирование запросов sql
- •Порядок выполнения работы
Delete - удалить
Общий синтаксис директивы DELETE выглядит так:
DELETE FROM Имя_Таблицы [ WHERE Условия_Поиска ]
DELETE FROM - это зарезервированные слова SQL-языка, которые и определяют саму директиву.
Имя_Таблицы - имя той таблицы, из которой удаляются записи.
WHERE - зарезервированное ключевое слово SQL-языка, означающее, что следующее за ним выражение определяет условия поиска записей в таблице.
Условия_Поиска - SQL-выражение, определяющее для директивы DELETE условия поиска в таблице записей, которые необходимо удалить.
Директива DELETE используется для удаления существующих записей в существующей таблице. Директива простая. Но относиться к ней надо осторожно, потому что записи из таблицы удаляются безвозвратно. Обратите внимание, что указывать ключевое слово WHERE и Условия_Поиска не обязательно. Если в директиве DELETE не задано условие WHERE, то из таблицы удаляются абсолютно все записи.
Пример
Если вы еще не создавали таблицу Istok, создайте ее и введите в нее несколько записей:
CREATE TABLE Istok ( id Integer , fName Char(16) , lName Char(24) , Tel_work Char(12) , Tel_home Char(12), grp Integer ) INSERT INTO Istok VALUES (1, 'Андрей', 'Гущин', '934-34-44', '-', 0) INSERT INTO Istok VALUES (2, 'Виктор', 'Пущин', '123-42-02', '323-00-23', 0) INSERT INTO Istok VALUES (3, 'Петр', 'Агин', '435-34-02', '-', 3) INSERT INTO Istok VALUES (4, 'Павел', 'Томин', '-', '422-56-56', 3) INSERT INTO Istok VALUES (5, 'Борис', 'Кудряшов', '-', '455-45-67', 3) INSERT INTO Istok VALUES (6, 'Борис', 'Павлов', '233-44-55', '-', 4)
-
id
fName
lName
Tel_work
Tel_home
grp
1
Андрей
Гущин
934-34-44
-
0
2
Виктор
Пущин
123-42-02
323-00-23
0
3
Петр
Агин
435-34-02
-
3
4
Павел
Томин
-
422-56-56
3
5
Борис
Кудряшов
-
455-45-67
3
6
Борис
Павлов
233-44-55
-
4
Удалим одну запись из таблицы...
DELETE FROM Istok WHERE id = 1
В таблице останутся записи:
-
id
fName
lName
Tel_work
Tel_home
grp
2
Виктор
Пущин
123-42-02
323-00-23
0
3
Петр
Агин
435-34-02
-
3
4
Павел
Томин
-
422-56-56
3
5
Борис
Кудряшов
-
455-45-67
3
6
Борис
Павлов
233-44-55
-
4
Удалим несколько записей...
DELETE FROM Istok WHERE fName = 'Борис'
-
id
fName
lName
Tel_work
Tel_home
grp
2
Виктор
Пущин
123-42-02
323-00-23
0
3
Петр
Агин
435-34-02
-
3
4
Павел
Томин
-
422-56-56
3
И еще удалим...
DELETE FROM Istok WHERE grp > 5
Этот запрос будет выполнен безупречно, но поскольку в таблице на данный момент нет записей, отвечающих условию grp > 5, то ни одна запись не будет удалена и таблица останется в неизменном виде:
-
id
fName
lName
Tel_work
Tel_home
grp
2
Виктор
Пущин
123-42-02
323-00-23
0
3
Петр
Агин
435-34-02
-
3
4
Павел
Томин
-
422-56-56
3
И, напоследок, используя DELETE без WHERE, удалим все оставшиеся записи и у нас останется пустая таблица:
DELETE FROM Istok
-
id
fName
lName
Tel_work
Tel_home
grp