Вставьте данные MATLAB в таблицу базы данных PostgreSQL
sqlwrite(
вставляет данные из таблицы MATLAB® в таблицу базы данных. Если таблица существует в базе данных, эта функция добавляет данные из таблицы MATLAB как строки в существующей таблице базы данных. Если таблица не существует в базе данных, эта функция составляет таблицу с заданным именем таблицы и затем вставляет данные как строки в новой таблице. Этот синтаксис является эквивалентом выполнения SQL-операторов, которые содержат conn
,tablename
,data
)CREATE TABLE
и INSERT INTO
Синтаксисы ANSI SQL.
sqlwrite(
дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Например, conn
,tablename
,data
,Name,Value
)'Catalog',"toystore_doc"
вставляет данные в таблицу базы данных, которая расположена в каталоге базы данных под названием toystore_doc
.
Используйте собственное соединение с базой данных интерфейса PostgreSQL, чтобы добавить данные о продукте из таблицы MATLAB® в существующую таблицу в базе данных PostgreSQL.
Создайте собственное соединение с базой данных интерфейса PostgreSQL к базе данных PostgreSQL с помощью имени источника данных, имени пользователя и пароля. База данных содержит таблицу productTable
.
datasource = "PostgreSQLDataSource"; username = "dbdev"; password = "matlab"; conn = postgresql(datasource,username,password);
Просмотреть существующую таблицу базы данных productTable
прежде, чем добавить данные, импортируйте его содержимое в MATLAB и отобразите последние несколько строк.
tablename = "productTable";
rows = sqlread(conn,tablename);
tail(rows,3)
ans=3×5 table
productnumber stocknumber suppliernumber unitcost productdescription
_____________ ___________ ______________ ________ __________________
6 4.0088e+05 1004 8 "Sail Boat"
3 4.01e+05 1009 17 "Slinky"
10 8.8865e+05 1006 24 "Teddy Bear"
Составьте таблицу MATLAB, которая содержит данные для одного продукта.
data = table(30,500000,1000,25,"Rubik's Cube", ... 'VariableNames',["productnumber" "stocknumber" ... "suppliernumber" "unitcost" "productdescription"]);
Добавьте данные о продукте в таблицу базы данных productTable
.
sqlwrite(conn,tablename,data)
Импортируйте содержимое таблицы базы данных в MATLAB снова и отобразите последние несколько строк. Результаты содержат новую строку для вставленного продукта.
rows = sqlread(conn,tablename); tail(rows,4)
ans=4×5 table
productnumber stocknumber suppliernumber unitcost productdescription
_____________ ___________ ______________ ________ __________________
6 4.0088e+05 1004 8 "Sail Boat"
3 4.01e+05 1009 17 "Slinky"
10 8.8865e+05 1006 24 "Teddy Bear"
30 5e+05 1000 25 "Rubik's Cube"
Закройте соединение с базой данных.
close(conn)
Используйте собственное соединение с базой данных интерфейса PostgreSQL, чтобы вставить данные о продукте из MATLAB® в новую таблицу в базе данных PostgreSQL.
Создайте собственное соединение с базой данных интерфейса PostgreSQL к базе данных PostgreSQL с помощью имени источника данных, имени пользователя и пароля.
datasource = "PostgreSQLDataSource"; username = "dbdev"; password = "matlab"; conn = postgresql(datasource,username,password);
Составьте таблицу MATLAB, которая содержит данные для двух продуктов.
data = table([30;40],[500000;600000],[1000;2000],[25;30], ... ["Rubik's Cube";"Doll House"],'VariableNames',["productnumber" ... "stocknumber" "suppliernumber" "unitcost" "productdescription"]);
Вставьте данные о продукте в новую таблицу базы данных под названием toytable
.
tablename = "toytable";
sqlwrite(conn,tablename,data)
Импортируйте содержимое таблицы базы данных в MATLAB и отобразите строки. Результаты содержат две строки для вставленных продуктов.
rows = sqlread(conn,tablename)
rows=2×5 table
productnumber stocknumber suppliernumber unitcost productdescription
_____________ ___________ ______________ ________ __________________
30 5e+05 1000 25 "Rubik's Cube"
40 6e+05 2000 30 "Doll House"
Закройте соединение с базой данных.
close(conn)
Используйте собственное соединение с базой данных интерфейса PostgreSQL, чтобы вставить данные о продукте из MATLAB® в новую таблицу в базе данных PostgreSQL. Задайте типы данных столбцов в новой таблице базы данных.
Создайте собственное соединение с базой данных интерфейса PostgreSQL к базе данных PostgreSQL с помощью имени источника данных, имени пользователя и пароля.
datasource = "PostgreSQLDataSource"; username = "dbdev"; password = "matlab"; conn = postgresql(datasource,username,password);
Составьте таблицу MATLAB, которая содержит данные для двух продуктов.
data = table([30;40],[500000;600000],[1000;2000],[25;30], ... ["Rubik's Cube";"Doll House"],'VariableNames',["productnumber" ... "stocknumber" "suppliernumber" "unitcost" "productdescription"]);
Вставьте данные о продукте в новую таблицу базы данных под названием toytable
. Используйте 'ColumnType
'аргумент пары "имя-значение" и массив строк, чтобы задать типы данных всех столбцов в таблице базы данных.
tablename = "toytable"; coltypes = ["numeric" "numeric" "numeric" "numeric" "varchar(255)"]; sqlwrite(conn,tablename,data,'ColumnType',coltypes)
Импортируйте содержимое таблицы базы данных в MATLAB и отобразите строки. Результаты содержат две строки для вставленных продуктов.
rows = sqlread(conn,tablename)
rows=2×5 table
productnumber stocknumber suppliernumber unitcost productdescription
_____________ ___________ ______________ ________ __________________
30 5e+05 1000 25 "Rubik's Cube"
40 6e+05 2000 30 "Doll House"
Закройте соединение с базой данных.
close(conn)
conn
— Собственный компонент PostgreSQL соединяет интерфейсом с соединением с базой данныхconnection
объектСобственный компонент PostgreSQL соединяет интерфейсом с соединением с базой данных в виде connection
объект.
tablename
— Имя таблицы базы данныхИмя таблицы базы данных в виде вектора символов или строкового скаляра, обозначающего имя таблицы в базе данных.
Пример: 'employees'
Типы данных: char |
string
data
— Данные, чтобы вставитьДанные, чтобы вставить в таблицу базы данных в виде таблицы.
Допустимые типы данных в таблице MATLAB:
Числовой массив
Массив ячеек числовых массивов
Массив ячеек из символьных векторов
Массив строк
Массив datetime
Массив длительности
Календарный массив длительности
Логический массив
Массив ячеек логических массивов
Числовой массив может содержать эти типы данных:
int8
uint8
int16
uint16
int32
uint32
int64
uint64
single
double
Для данных о дате и времени поддерживаемые форматы:
Дата — 'yyyy-MM-dd'
Время — 'hh:mm:ss'
Метка времени — 'yyyy-MM-dd HH:mm:ss'
Если данные о дате и времени заданы в недопустимом формате, то sqlwrite
функционируйте автоматически преобразует данные в поддерживаемый формат.
Если массив ячеек из символьных векторов или массив строк заданы в недопустимом формате, то sqlwrite
функция позволяет драйверу базы данных проверять формат. Если формат неожидан, то драйвер базы данных выдает ошибку.
Можно вставить данные в существующую таблицу базы данных или новую таблицу базы данных. Типы данных переменных в data
варьируйтесь в зависимости от того, существует ли таблица базы данных. Для допустимых типов данных смотрите Типы данных для Существующей Таблицы и Типы данных для Новой Таблицы.
Примечание
sqlwrite
функционируйте поддерживает только table
тип данных для data
входной параметр. Чтобы вставить данные, хранимые в структуру, массив ячеек или числовая матрица, преобразует данные в table
при помощи struct2table
, cell2table
, и array2table
функции, соответственно.
Чтобы вставить недостающие данные, смотрите Принятые Недостающие Данные.
Пример: table([10;20],{'M';'F'})
Имена переменных таблицы MATLAB должны совпадать с именами столбцов в таблице базы данных. sqlwrite
функция является чувствительной к регистру.
Когда вы вставляете данные в таблицу базы данных, используйте типы данных, которые, как показывают в следующей таблице, гарантировали, что данные имеют правильный тип данных. Эта таблица совпадает с допустимыми типами данных табличной переменной MATLAB к типам данных столбца базы данных. Например, когда вы вставляете данные в столбец базы данных, который имеет BIT
тип данных, гарантируйте, что соответствующая переменная в таблице MATLAB является логическим массивом или массивом ячеек логических массивов.
Тип данных табличной переменной MATLAB | Тип данных существующего столбца базы данных |
---|---|
Числовой массив или массив ячеек числовых массивов |
|
Массив ячеек из символьных векторов, массив строк, массив datetime или массив длительности |
|
Календарный массив длительности | interval |
Логический массив или массив ячеек логических массивов | bit |
Массив ячеек из символьных векторов или массив строк |
|
Заданное имя таблицы для новой таблицы базы данных должно быть уникальным через все таблицы в базе данных.
Допустимые типы данных в таблице MATLAB:
Числовой массив
Массив ячеек из символьных векторов
Массив строк
Массив datetime
Массив длительности
Календарный массив длительности
Логический массив
sqlwrite
функция игнорирует любые недопустимые типы данных и вставляет только действительные переменные из MATLAB как столбцы в новой таблице базы данных.
sqlwrite
функция преобразует тип данных переменной в тип данных по умолчанию столбца в таблице базы данных. Следующая таблица совпадает с допустимыми типами данных табличной переменной MATLAB к типам данных по умолчанию столбца базы данных.
Тип данных табличной переменной MATLAB | Тип данных по умолчанию столбца базы данных |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
массив ячеек из символьных векторов или массив строк |
Примечание Размер этого столбца равняется сумме максимальной длины строки в массиве строк и 100. |
Чтобы задать специфичные для базы данных типы данных столбца вместо значений по умолчанию, используйте 'ColumnType'
аргумент пары "имя-значение". Например, можно задать 'ColumnType',"bigint"
создать bigint
столбец в новой таблице базы данных.
Кроме того, использование 'ColumnType'
аргумент пары "имя-значение", можно задать другие типы данных, которые не находятся в списке по умолчанию. Например, чтобы вставить валюту, задайте 'ColumnType',"money"
.
Принятые недостающие данные для вставки данных в базу данных зависят от типа данных табличной переменной MATLAB и типа данных столбца в базе данных. Следующая таблица совпадает с типом данных табличной переменной MATLAB к типу данных столбца базы данных и задает принятые недостающие данные, чтобы использовать в каждом случае.
Тип данных табличной переменной MATLAB | Тип данных столбца базы данных | Принятые Недостающие данные |
---|---|---|
datetime массив | date или timestamp | NaT |
duration массив | time | NaN |
calendarDuration массив | interval | NaN |
double или single массив или массив ячеек double или single массивы |
| NaN , [] , или '' |
массив ячеек из символьных векторов | date или timestamp | 'NaT' или '' |
массив ячеек из символьных векторов | time | 'NaN' или '' |
массив ячеек из символьных векторов | char , varchar , или другой тип данных text | '' |
массив строк | date или timestamp | "" NAT , или missing |
массив строк | time | "" NaN , или missing |
массив строк | char , varchar , или другой тип данных text | missing |
Типы данных: table
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
sqlwrite(conn,"tablename",data,'ColumnType',["numeric" "timestamp" "money"])
вставляет данные в новую таблицу базы данных под названием tablename
путем определения типов данных для всех столбцов в новой таблице базы данных.'Catalog'
— Имя каталога базы данныхИмя каталога базы данных в виде разделенной запятой пары, состоящей из 'Catalog'
и вектор символов или строковый скаляр. Каталог служит контейнером для схем в базе данных и содержит связанную информацию о метаданных. База данных может иметь многочисленные каталоги.
Пример: 'Catalog','toy_store'
Типы данных: char |
string
'Schema'
— Имя схемы базы данныхИмя схемы базы данных в виде разделенной запятой пары, состоящей из 'Schema'
и вектор символов или строковый скаляр. Схема задает таблицы базы данных, представления, отношения среди таблиц и другие элементы. Каталог базы данных может иметь многочисленные схемы.
Пример: 'Schema','dbo'
Типы данных: char |
string
'ColumnType'
— Типы столбца базы данныхТипы столбца базы данных в виде разделенной запятой пары, состоящей из 'ColumnType'
и вектор символов, строковый скаляр, массив ячеек из символьных векторов или массив строк. Используйте этот аргумент пары "имя-значение", чтобы задать пользовательские типы данных для столбцов в таблице базы данных. Задайте тип столбца для каждого столбца в таблице.
Пример: 'ColumnType',["numeric" "varchar(400)"]
Типы данных: char |
string
| cell
array2table
| cell2table
| close
| postgresql
| sqlread
| struct2table
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.