Операции с таблицами
-
CREATE TABLE
— Создание новой таблицы -
INSERT TABLE
— Добавление данных в таблицу -
DROP TABLE
— Удаление таблицы -
SHOW TABLES
— Вывод списка всех таблиц
Создание новой таблицы
CREATE [OR REPLACE] TABLE [IF NOT EXISTS] [<table_schema>.]<table_name>
(<column_name> <column_type>
[NOT NULL] [DEFAULT <default_expr>],
...
)
[WITH (<table_param>, ... )]
Создает новую таблицу с указанным именем и указанными столбцами.
CREATE [OR REPLACE] TABLE [IF NOT EXISTS] [<table_schema>.]<table_name> AS
<select_expr>
[WITH (<table_param>, ... )]
Создает новую таблицу с указанным именем на основе результата запроса SELECT
.
Параметры
-
<table_name>
— имя создаваемой таблицы
-
<table_schema>
— схема создаваемой таблицы
-
<column_name>
— имя столбца создаваемой таблицы
-
<column_type>
— тип данных столбца создаваемой таблицы
-
NOT NULL
— данный столбец не принимает значенияNULL
-
<default_expr>
— константа или константное выражение по умолчанию
-
<select_expr>
— выражениеSELECT
, результат выполнения которого будет записан в создаваемую таблицу
-
<table_param>
— параметры создаваемой таблицыtable_param ::= [<name> = <value>]
Возможные значения:
-
snapshot_ttl = <duration>
— глубина хранения снапшотов (версий таблицы).
По умолчанию: 7 дней, но не более 1000 снапшотов.
Например:'1 week'
,'2 days'
,'4 days 3 hours 5 minutes 30 seconds'
-
order_by = <column_name>
— столбец для сортировки, используемый для уплотнения данных таблицы. Данные в таблице хранятся с произвольной сортировкой, упорядоченность не гарантируется.
-
Если указан модификатор OR REPLACE
, то конечное действие эквивалентно удалению существующей таблицы и созданию новой с тем же именем.
Опциональный модификатор IF NOT EXISTS
ограничивает запрос только теми случаями, в которых указанный объект еще не существует.
Модификаторы являются взаимоисключающими. Если указать их оба, это приведет к ошибке. |
Добавление данных в таблицу
INSERT INTO <target_table> [ ( <target_col_name> [ , ... ] ) ]
{
VALUES ( { <value> | DEFAULT | NULL } [ , ... ] ) [ , ( ... ) ] |
<query>
}
Обновляет таблицу, вставляя в нее одну или несколько строк. Значения, вставляемые в каждый столбец таблицы, могут быть указаны явно или получены из вложенного запроса.
Параметры
-
<target_table>
— имя целевой таблицы, в которую будут вставлены строки
-
VALUES ( value | DEFAULT | NULL [ , … ] ) [ , ( … ) ]
— указывает одно или несколько значений для вставки в соответствующие столбцы целевой таблицы.-
value
— явно указанное значение; может быть литералом или выражением. -
DEFAULT
— значение по умолчанию для соответствующего столбца целевой таблицы. -
NULL
— пустое значение.
Значения разделяются запятыми.
Вы можете вставить несколько строк, указав дополнительные наборы значений в выражении.
-
-
query
— запрос, который возвращает значения для вставки в соответствующие столбцы. Это позволяет вставлять строки в целевую таблицу из одной или нескольких исходных таблиц.
Пример вставки явно заданных значений
Вставим в таблицу capitals
значения для столбцов country
и capital
:
CREATE TABLE capitals (country VARCHAR, capital VARCHAR);
INSERT INTO capitals VALUES
('Russia', 'Moscow'),
('Italy', 'Rome'),
('Spain', 'Madrid'),
('France', 'Paris');
SELECT * FROM capitals;
+---------+---------+
| country | capital |
+---------+---------+
| France | Paris |
+---------+---------+
| Italy | Rome |
+---------+---------+
| Russia | Moscow |
+---------+---------+
| Spain | Madrid |
+---------+---------+
Пример вставки результатов вложенного запроса
Теперь создадим другую таблицу capitals_m
и сделаем вставку строк из capitals
, которые будут результатом вложенного запроса SELECT
. Вставим такие строки из capitals
, в которых значение capital
содержит M
.
CREATE TABLE capitals_m (country VARCHAR, capital VARCHAR);
INSERT INTO capitals_m (country, capital)
SELECT * FROM capitals
WHERE capital LIKE '%M%';
SELECT * FROM capitals_m;
+---------+---------+
| country | capital |
+---------+---------+
| Russia | Moscow |
+---------+---------+
| Spain | Madrid |
+---------+---------+