Вставьте данные 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
- Подключение к базе данных собственного интерфейса PostgreSQLconnection
объектПодключение к базе данных собственного интерфейса 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 , или другого типа текстовых данных | '' |
Строковые массивы | date или timestamp | "" , "NaT" , или missing |
Строковые массивы | time | "" , "NaN" , или missing |
Строковые массивы | char , varchar , или другого типа текстовых данных | 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.