Типы данных и таблицы Вставка данных в таблицы. Оператор insert. (Тема 4)

Содержание

Слайд 2

Вставка данных в таблицы. Оператор insert Типы данных и таблицы

Вставка данных в таблицы. Оператор insert

Типы данных и таблицы

Слайд 3

Однострочный оператор insert – добавляет в таблицу новую запись Многострочный оператор

Однострочный оператор insert – добавляет в таблицу новую запись
Многострочный оператор insert

– добавляет в таблицу несколько записей
Пакетная загрузка данных – добавление в таблицу данных из внешнего источника (файла)

Типы данных и таблицы

Слайд 4

Оператор insert Создать базу данных lesson2 Создать таблицу customers unite_code int

Оператор insert

Создать базу данных lesson2

Создать таблицу customers

unite_code int unsigned auto_increment

primary key #auto_increment=10000
name varchar(100) not null
phone int unsigned
e_mail varchar(50)
status enum(‘active’, ‘not active’)
reg_date date
Insert_time timestamp default current_timestamp
Слайд 5

Оператор insert CREATE TABLE customers ( unite_code INT unsigned NOT NULL

Оператор insert

CREATE TABLE customers ( unite_code INT unsigned NOT NULL

AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, phone INT unsigned DEFAULT NULL, e_mail VARCHAR(50) DEFAULT NULL, status ENUM('active', 'not active') DEFAULT 'active', reg_date DATE NOT NULL,
turnover DECIMAL(10,2); insert_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP )auto_increment=10000;
Слайд 6

Оператор insert Необходимо передать значения для всех столбцов таблицы insert into

Оператор insert

Необходимо передать значения для всех столбцов таблицы
insert into tbl_name

values (value_1, value_2,.. value_N);

Передаем названия необходимых столбцов для вставки и их значения
insert into tbl_name (col_1, col_2,.. col_N) values (value_1, value_2, value_N);

Однострочный оператор insert

Строковые данные необходимо заносить в одиночных кавычках 'values_1'.
Числовые значения допускается заводить без кавычек, при введение числовых данных в кавычках затрачивается дополнительное время на преобразование типа данных.

Слайд 7

Оператор insert Необходимо передать значения для всех столбцов таблицы insert into

Оператор insert

Необходимо передать значения для всех столбцов таблицы
insert into customers

values (null, 'West company ltd.', 2394885697, 'smith@email.com', 'active', date'2018-10-30', 304500.00, null);

Передаем названия необходимых столбцов для вставки и их значения
insert into customers (name, phone, e_mail, reg_date, turnover) values
('East company ltd.', 2394885697, 'east@eastcompany.com', date'2018-10-30', 904500.00, null);

Пример

Слайд 8

Оператор insert Пример В процессе вставки порядок столбцов можно изменять insert

Оператор insert

Пример

В процессе вставки порядок столбцов можно изменять
insert into customers

(phone, e_mail, name, reg_date, turnover) values
(89009910090, 'info@mdm.com', ‘MDM company ltd.', date'2018-11-02', 1750000.00, null);

Выборка внесенных данных из таблицы

Select * from customers;

Слайд 9

Оператор insert Необходимо передать значения для всех столбцов таблицы insert into

Оператор insert

Необходимо передать значения для всех столбцов таблицы
insert into tbl_name

values (value_1,.. value_N), (value_2,.. value_2N) ;

Передаем названия необходимых столбцов для вставки и их значения
insert into tbl_name (col_1, col_2,.. col_N) values
(value_1, ... value_N),
(value_2, ... value_2N);

Многострочный оператор insert

Слайд 10

Оператор insert Необходимо передать значения для всех столбцов таблицы insert into

Оператор insert

Необходимо передать значения для всех столбцов таблицы
insert into customers

values (null, 'A company ltd.', 334885697, 'acom@email.com', 'active', date'2018-10-20', 754500.50, null),
(null, 'B company ltd.', 355555557, 'bcom@email.com', 'active', date'2018-10-20', 954500.50, null);

Передаем названия необходимых столбцов для вставки и их значения
insert into customers (name, phone, e_mail, reg_date, turnover) values
('E company ltd.', 7884885697, 'ecom@eastcompany.com', date'2018-09-30', 1904500.00),
('D company ltd.', 6666885697, 'dcom@eastcompany.com', date'2018-09-21', 404500.00);

Пример

Слайд 11

Оператор insert Пакетная загрузка данных В файл c:/mysql/bin/my.ini в раздел [mysqld]

Оператор insert

Пакетная загрузка данных

В файл c:/mysql/bin/my.ini в раздел [mysqld] добавит

запись secure-file-priv= "”
Настройка необходима для разрешения записи информации из файла

Перезапустить MySQL

C:\mysql\bin\Net stop MYSQL
C:\mysql\bin\Net start MYSQL

Слайд 12

Оператор insert Create table tbl_load_data ( id int primary key, car_make

Оператор insert

Create table tbl_load_data (
id int primary key,
car_make varchar(50)
);

Пакетная загрузка

данных

LOAD DATA [LOCAL] INFILE 'filename' INTO TABLE tbl

Если параметр LOCAL указан, то файл читается с клиентского хоста. Если параметр не указан, то файл должен находиться на сервере

Создать таблицу

Загрузка данных из файла

Слайд 13

Оператор insert По умолчанию данные в импортируемом файле должны быть разделены

Оператор insert

По умолчанию данные в импортируемом файле должны быть разделены

символом табуляции.

Создать текстовый файл cars.txt файл сохранить в c:/myslq/bin cтолбцы разделить табуляцией
AUDI
BMW
FORD
OPEL
VOLKSWAGEN
TOYOTA

mysql> LOAD DATA INFILE 'c:/mysql/bin/cars.txt' INTO TABLE tbl_load_data;

mysql> select * from tbl_load_data;

Сделать выборку данных из таблицы

Загрузить данные в таблицу

Слайд 14

Оператор insert Перед конструкцией INTO TABLE можно разместить одно из ключевых

Оператор insert

Перед конструкцией INTO TABLE можно разместить одно из ключевых

слов, которые обрабатывают ситуацию, когда данные из текстового файла дублируют значения первичного ключа или уникальных ключей

Создать текстовый файл new_cars.txt файл сохранить в c:/myslq/bin (cтолбцы разделить табуляцией)
MERCEDES
VOLVO
CITROEN
MAZDA

mysql> LOAD DATA INFILE 'c:/mysql/bin/new_cars.txt' INTO TABLE tbl_load_data;
ERROR 1062: Duplicate entry '1' for key 1

Загрузить данные в таблицу

IGNORE – пропуск строк с дублирующими значениями
REPLACE – замена уже существующих записей новыми
IGNORE X LINES – позволяет задать X строк, которые необходимо пропустить от начала файла

Загрузка без использования ключевых слов IGNORE, REPLACE приводит к ошибке, т.к. пытаемся загрузить уже существующие значения ключей.

Слайд 15

Оператор insert mysql> LOAD DATA INFILE 'c:/mysql/bin/new_cars.txt' REPLACE INTO TABLE tbl_load_data;

Оператор insert

mysql> LOAD DATA INFILE 'c:/mysql/bin/new_cars.txt' REPLACE INTO TABLE tbl_load_data;

Использование

REPLACE приведет к полной замене содержимого таблицы

mysql> select * from tbl_load_data;

Слайд 16

Оператор insert LOAD DATA INFILE 'c:/mysql/bin/add_cars.txt' IGNORE 1 LINES INTO TABLE

Оператор insert

LOAD DATA INFILE 'c:/mysql/bin/add_cars.txt' IGNORE 1 LINES INTO TABLE

tbl_load_data;

Использование IGNORE X LINES приведет пропуску X строк от начала файла

mysql> select * from tbl_load_data;

Создать текстовый файл add_cars.txt файл сохранить в c:/myslq/bin (cтолбцы разделить табуляцией)
10 FERRRI
11 BENTLEY
12 PORSCHE

В таблицу добавились BENTLEY, PORCHE, строка с FERRARI пропущена

Слайд 17

Оператор insert Дополнительные опции оператора LOAD DATA LINES STARTING BY -

Оператор insert

Дополнительные опции оператора LOAD DATA

LINES STARTING BY - определяет

cимвол начала строки данных
LINES TERMINATED BY - определяет cимвол конца строки данных
FIELDS TERMINATED BY - определяет символ-разделитель между полями в строке
FIELDS ENCLOSED BY - данная конструкция определяет символ кавычек, которым ограничиваются поля, по умолчанию равен пустой строке, т.к. кавычки не применяются

Создать файл cars2.txt в c:/mysql/bin
Содержание файла:
"1","DACIA"
"2","MITSUBISHI"
"3","FIAT"
"4","SKODA"

LOAD DATA INFILE 'c:/mysql/bin/cars2.txt'
REPLACE INTO TABLE tbl_load_data
FIELDS TERMINATED BY ',' ENCLOSED BY '"';