суббота, 18 ноября 2017 г.

MySQL. Урок 14. Операторы добавления записей в таблицу. INSERT INTO. Оператор IGNORE. Добавление записей в таблицу на основе запросов из других таблиц.

-- Операторы манипулирования данными.
-- Оператор INSERT.


-- Удаляем таблицу.
DROP TABLE IF EXISTS table3;

-- Индекс можно создать в самой таблице.
CREATE TABLE IF NOT EXISTS table3
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price FLOAT NOT NULL DEFAULT 0 COMMENT 'Цена товара',
PRIMARY KEY(id)
) COMMENT 'Таблица товаров';

-- Первый вариант вставки значений в таблицу.
INSERT INTO table3
VALUES (10, 'Товар 10', 10.10);

-- Посмотрим, что в таблице.
SELECT * FROM table3;

-- Так товар будет добавлен автоинкрементом.
INSERT INTO table3
VALUES (NULL, 'Товар 10', 10.10);
-- Посмотрим, что в таблице.
SELECT * FROM table3;

-- Второй вариант вставки значений в таблицу с указанием колонок.
-- Здесь мы сами выбираем порядок вставки.
INSERT INTO table3 (price, name)
VALUES (44.9, "Товар 11");
-- Посмотрим, что в таблице.
SELECT * FROM table3;

-- Третий вариант вставки в таблицу нескольких рядов.
INSERT INTO table3
VALUES
(NULL, 'Товар 12', 12.10),
(NULL, 'Товар 13', 13.10),
(NULL, 'Товар 14', 14.10),
(NULL, 'Товар 15', 15.10),
(NULL, 'Товар 16', 16.10),
(NULL, 'Товар 17', 17.10);
-- Посмотрим, что в таблице.
SELECT * FROM table3;

-- Если мы попытаемся вставить в таблицу данные с уже существующими id, то запрос вызовет ошибку и никакие данные не будут вставлены.
INSERT INTO table3
VALUES
(NULL, 'Товар 18', 12.10),
(NULL, 'Товар 19', 13.10),
(NULL, 'Товар 20', 14.10),
(15, 'Товар 21', 15.10),
(NULL, 'Товар 22', 16.10),
(NULL, 'Товар 23', 17.10);

-- Оператор IGNORE позволяет при возникновении ошибок вставлять все правильные записи, кроме ошибочных.
INSERT IGNORE INTO table3
VALUES
(NULL, 'Товар 18', 12.10),
(NULL, 'Товар 19', 13.10),
(NULL, 'Товар 20', 14.10),
(15, 'Товар 21', 15.10),
(NULL, 'Товар 22', 16.10),
(NULL, 'Товар 23', 17.10);
-- Меняем кодировку.
SET NAMES 'cp866';
-- Сделаем выборку из таблицы другой БД.
SELECT title, price FROM cart.products;

-- В таблицу можем вставлять результаты выборки из других таблиц.
-- Вставка на основе запроса выборки из другой таблицы.
INSERT INTO table3 (name, price)
SELECT title AS name, price FROM cart.products;

-- Посмотрим, что в таблице.

SELECT * FROM table3; 

Комментариев нет:

Отправить комментарий

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html