Фамилия varchar(20) not null
Имя VARCHAR (20) NOT NULL,
Отчество VARCHAR (20),
Дата DATE,
КодТовара INTEGER,
Количество DOUBLE);
Замечание 1. Для указания первичного ключа в описании поля используется ключевое слово PRIMARY KEY.
Замечание 2. Для указания обязательного заполнения поля используется ключевое слово NOT NULL.
Ввод новых записей в таблицу
Инструкция INSERTосуществляет добавление новых записей в конец таблицы. Эта инструкция имеет вид:
INSERT INTO <Имя таблицы> VALUES (<Значение1>, <Значение 2>, …<Значение n>);
При этом значения вводятся в поля добавленной в таблицу новой строки в том порядке, в котором соответствующие поля были указаны при создании таблицы.
Пример 2
INSERT INTO Покупка
VALUES (16,“Иванов”, “Пётр”, “Ильич”, “04.12.2014”, 3, 2);
В таблицу Покупка вводится запись, в которой содержится информация о том, что Иванов Пётр Ильич 4 декабря 2014 года купил продукт с кодом товара 3 в количестве 2-х упаковок.
Если значение какого-либо поля не определено и является необязательным, то при вводе записи значение этого поля вводится как NULL-значение.
Сделайте аналогичный запрос, но вместо отчества “Ильич” введите NULL. Посмотрите, что получится в результате выполнения запроса.
Пример 3
INSERT INTO Покупка
VALUES(17,“Иванов”, “Пётр”, NULL ,“07.12.2014”, 4, 3);
Если необходимо ввести значения полей в порядке отличном от порядка столбцов, заданного в таблице или нужно ввести значения не во все поля, можно использовать другую форму инструкции:
INSERT INTO <Имя таблицы> (<Поле 1>, <Поле 2>, …, <Поле m>) VALUES (<Значение 1>, <Значение 2>, …, <Значение m>)
Пример 4
INSERT INTO Покупка (Номер, Имя, Фамилия, КодТовара, Количество)
VALUES (18, “Пётр”, “Иванов”, 5, 2);
В этом запросе после названия таблицы указаны названия полей, в которые далее вводятся значения. Остальным полям, не указанным в списке, автоматически присваивается значение по умолчанию или NULL.
Создание новой таблицы на основе уже существующей таблицы
Инструкция SELECT … INTO создаёт новую таблицу на основе уже существующей. До сих пор с помощью инструкции SELECT мы создавали виртуальную таблицу, которая не сохранялась в базе данных. Для создания реальной таблицы как результат обработки существующих таблиц, используется команда:
SELECT <Поле 1>, <Поле 2>, …, <Поле k>
INTO <Имя новой таблицы>
FROM <Имя таблицы>;
Пример 5
SELECT Фамилия, Имя, Отчество, Дата, КодТовара, Количество
INTO Октябрь
FROM Покупка
WHERE Дата BETWEEN cdate(“01.10.2014”) AND cdate(“31.10.2014”);
Замечание. При создании новой таблицы её поля наследуют типы данных и размеры полей основной таблицы.
Удаление записей из таблицы
Удаление строк из таблицы осуществляется инструкцией DELETE. Эта инструкция имеет вид:
DELETE
FROM <Имя таблицы>
WHERE <Условие отбора>;
Пример 6
DELETE FROM Покупка
WHERE Фамилия = “Соловьёв”;
С помощью этого запроса из таблицы Покупка удаляется вся информация о покупках Соловьёва.
Пример 7
DELETE FROM Продукция
WHERE ВидТовара = “Лосьон”;
Этот запрос удаляет из прайс-листа все лосьоны.
Изменение данных таблицы
Инструкция UPDATE позволяет изменить, то есть обновить значения некоторых полей в некоторой строке или нескольких строках таблицы. Эта инструкция имеет вид:
UPDATE <Имя таблицы>
SET <Поле1>=<Новое значение1>, <Поле2>=<Новое значение2>, …, <Поле m>=<Новое значение m>
WHERE <Условие отбора>;
Пример 8
UPDATE Продукция
SET Баллы=15
WHERE ВидТовара = “Духи”;
После выполнения этого запроса в прайс-листе за покупку любых духов клиенту будет начисляться 15 баллов.
Инструкция UPDATE позволяет изменить значения не одного, а нескольких полей.
Пример 9
UPDATE Продукция
SET Баллы = 10, Цена = 770
WHERE Наименование = “Красная заря”;
В результате этого запроса в прайс-листе на продукт «Красная Заря» устанавливается цена 770 рублей, а клиенту при покупке этого продукта будет начислено 10 баллов.
В конструкции SET команды UPDATE можно использовать выражения, указывающие способ изменения значений поля.
Пример 10
UPDATE Продукция
SET Баллы = Баллы+1.4
WHERE ВидТовара = “Одеколон”;
Этим запросом в прайс-листе на все одеколоны баллы увеличиваются на 1,4.
Пример 11
UPDATE Продукция
SET Баллы = Баллы/2.1,
Цена = Цена-50
WHERE Наименование = “Зелёное яблоко”;
С помощью этого запроса на продукт под названием «Зелёное яблоко» цена уменьшается на 50 рублей, а начисляемые клиенту баллы при покупке этого продукта уменьшаются в 2,1 раза.