Вставьте данные MATLAB в таблицу базы данных MySQL
sqlwrite(
вставляет данные из MATLAB® таблица в таблицу базы данных. Если таблица существует в базе данных, эта функция добавляет данные из таблицы MATLAB как строки в существующей таблице базы данных. Если таблица не существует в базе данных, эта функция составляет таблицу с заданным именем таблицы и затем вставляет данные как строки в новой таблице. Этот синтаксис является эквивалентом выполнения SQL-операторов, которые содержат conn
,tablename
,data
)CREATE TABLE
и INSERT INTO
Синтаксисы ANSI SQL.
sqlwrite(
дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Например, conn
,tablename
,data
,Name,Value
)'Catalog','toy_store'
вставляет данные в таблицу базы данных, которая расположена в каталоге базы данных под названием toy_store
.
Используйте собственное соединение с базой данных интерфейса MySQL®, чтобы добавить данные о продукте из таблицы MATLAB® в существующую таблицу в базе данных MySQL.
Создайте собственное соединение с базой данных интерфейса MySQL к базе данных MySQL с помощью имени источника данных, имени пользователя и пароля. База данных содержит таблицу productTable
.
datasource = "MySQLNative"; username = "root"; password = "matlab"; conn = mysql(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)
Используйте собственное соединение с базой данных интерфейса MySQL®, чтобы вставить данные о продукте из MATLAB® в новую таблицу в базе данных MySQL.
Создайте собственное соединение с базой данных интерфейса MySQL к базе данных MySQL с помощью имени источника данных, имени пользователя и пароля. База данных содержит таблицу productTable
.
datasource = "MySQLNative"; username = "root"; password = "matlab"; conn = mysql(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)
Используйте собственное соединение с базой данных интерфейса MySQL®, чтобы вставить данные о продукте из MATLAB® в новую таблицу в базе данных MySQL. Задайте типы данных столбцов в новой таблице базы данных.
Создайте собственное соединение с базой данных интерфейса MySQL к базе данных MySQL с помощью имени источника данных, имени пользователя и пароля.
datasource = "MySQLNative"; username = "root"; password = "matlab"; conn = mysql(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
— MySQL® нативное интерфейсное соединение с базой данныхconnection
объект Собственный компонент MySQL соединяет интерфейсом с соединением с базой данных в виде 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 или массив длительности |
|
Логический массив или массив ячеек логических массивов | BIT |
Массив ячеек из символьных векторов или массив строк |
|
Заданное имя таблицы для новой таблицы базы данных должно быть уникальным через все таблицы в базе данных.
Допустимые типы данных в таблице MATLAB:
Числовой массив
Массив ячеек из символьных векторов
Массив строк
Массив datetime
Массив длительности
Логический массив
sqlwrite
функция игнорирует любые недопустимые типы данных и вставляет только действительные переменные из MATLAB как столбцы в новой таблице базы данных.
sqlwrite
функция преобразует тип данных переменной в тип данных по умолчанию столбца в таблице базы данных. Следующая таблица совпадает с допустимыми типами данных табличной переменной MATLAB к типам данных по умолчанию столбца базы данных.
Тип данных табличной переменной MATLAB | Тип данных по умолчанию столбца базы данных |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
массив ячеек из символьных векторов или массив строк |
Примечание Размер этого столбца равняется сумме максимальной длины строки в массиве строк и 100. |
Чтобы задать специфичные для базы данных типы данных столбца вместо значений по умолчанию, используйте 'ColumnType'
аргумент пары "имя-значение". Например, можно задать 'ColumnType',"bigint"
создать BIGINT
столбец в новой таблице базы данных.
Кроме того, использование 'ColumnType'
аргумент пары "имя-значение", можно задать другие типы данных, которые не находятся в списке по умолчанию. Например, чтобы вставить изображения, задайте 'ColumnType',"image"
.
Принятые недостающие данные для вставки данных в базу данных зависят от типа данных табличной переменной MATLAB и типа данных столбца в базе данных. Следующая таблица совпадает с типом данных табличной переменной MATLAB к типу данных столбца базы данных и задает принятые недостающие данные, чтобы использовать в каждом случае.
Тип данных табличной переменной MATLAB | Тип данных столбца базы данных | Принятые Недостающие данные |
---|---|---|
datetime массив | Date или Timestamp | NaT |
duration массив | Time | 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" "image"])
вставляет данные в новую таблицу базы данных под названием tablename
путем определения типов данных для всех столбцов в новой таблице базы данных.Catalog
— Имя каталога базы данныхИмя каталога базы данных в виде разделенной запятой пары, состоящей из 'Catalog'
и вектор символов или строковый скаляр. Каталог служит контейнером для схем в базе данных и содержит связанную информацию о метаданных. База данных может иметь многочисленные каталоги.
Пример: 'Catalog','toy_store'
Типы данных: char |
string
ColumnType
— Типы столбца базы данныхТипы столбца базы данных в виде разделенной запятой пары, состоящей из 'ColumnType'
и вектор символов, строковый скаляр, массив ячеек из символьных векторов или массив строк. Используйте этот аргумент пары "имя-значение", чтобы задать пользовательские типы данных для столбцов в таблице базы данных. Задайте тип столбца для каждого столбца в таблице.
Пример: 'ColumnType',["numeric" "varchar(400)"]
Типы данных: char |
string
| cell
sqlread
| mysql
| close
| cell2table
| array2table
| struct2table
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.