Вставка данных MATLAB в таблицу базы данных MySQL
sqlwrite( вставляет данные из таблицы MATLAB ® в таблицу базы данных. Если таблица существует в базе данных, эта функция добавляет данные из таблицы MATLAB в виде строк в существующей таблице базы данных. Если таблица не существует в базе данных, эта функция создает таблицу с указанным именем и затем вставляет данные в новую таблицу в виде строк. Этот синтаксис эквивалентен выполнению инструкций SQL, содержащих conn,tablename,data)CREATE TABLE и INSERT INTO Синтаксы SQL ANSI.
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 или массив duration |
|
| Логический массив или массив ячеек логических массивов | 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, или другой тип текстовых данных | '' |
| строковый массив | 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" "image"]) вставляет данные в новую таблицу базы данных с именем tablename путем указания типов данных для всех столбцов в новой таблице базы данных.'Catalog' - Имя каталога базы данныхИмя каталога базы данных, указанное как разделенная запятыми пара, состоящая из 'Catalog' и вектор символов или строковый скаляр. Каталог служит контейнером для схем в базе данных и содержит связанные метаданные. База данных может иметь множество каталогов.
Пример: 'Catalog','toy_store'
Типы данных: char | string
'ColumnType' - Типы столбцов базы данныхТипы столбцов базы данных, указанные как разделенная запятыми пара, состоящая из 'ColumnType' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Этот аргумент пары имя-значение используется для определения пользовательских типов данных для столбцов в таблице базы данных. Укажите тип столбца для каждого столбца в таблице.
Пример: 'ColumnType',["numeric" "varchar(400)"]
Типы данных: char | string | cell
array2table | cell2table | close | mysql | sqlread | struct2table
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.