exponenta event banner

вставка

(Подлежит удалению) Добавление данных MATLAB в таблицы базы данных

insert функция будет удалена в следующей версии. Используйте sqlwrite вместо этого функция. Дополнительные сведения см. в разделе Вопросы совместимости.

Описание

пример

insert(conn,tablename,colnames,data) экспортирует данные из рабочей области MATLAB ® и вставляет их в существующую таблицу базы данных с использованием подключения к базе данныхconn. Можно указать имя таблицы базы данных и имена столбцов, а также данные для вставки в базу данных.

Если conn является соединением базы данных JDBC, затем insert функция имеет те же функции, что и fastinsert функция.

Примеры

свернуть все

Создайте подключение базы данных ODBC к базе данных Microsoft ® Access™. Этот код предполагает, что вы подключаетесь к источнику данных с именемdbdemo с admin в качестве имени пользователя и пароля.

conn = database('dbdemo','admin','admin');

Эта база данных содержит таблицу producttable с этими столбцами:

  • productnumber

  • stocknumber

  • suppliernumber

  • unitcost

  • productdescription

Выберите и просмотрите данные из producttable таблица. cursor содержит выполненный запрос. Импортируйте данные из выполненного запроса с помощью fetch функция.

curs = exec(conn,'SELECT * FROM producttable');
curs = fetch(curs);
curs.Data
ans = 

    productnumber    stocknumber    suppliernumber    unitcost    productdescription
    -------------    -----------    --------------    --------    ------------------
     9               125970         1003              13          'Victorian Doll'  
     8               212569         1001               5          'Train Set'       
     7               389123         1007              16          'Engine Kit'      
     2               400314         1002               9          'Painting Set'    
     4               400339         1008              21          'Space Cruiser'   
     1               400345         1001              14          'Building Blocks' 
     5               400455         1005               3          'Tin Soldier'     
     6               400876         1004               8          'Sail Boat'       
     3               400999         1009              17          'Slinky'          
    10               888652         1006              24          'Teddy Bear'    

Сохранение имен столбцов producttable в массиве ячеек.

colnames = {'productnumber','stocknumber','suppliernumber',...
    'unitcost','productdescription'};

Сохранение данных для вставки в массив ячеек data который содержит следующие значения:

  • productnumber равно 11

  • stocknumber равно 400565

  • suppliernumber равно 1010

  • unitcost равно $10

  • productdescription равно 'Rubik''s Cube'

Затем преобразуйте массив ячеек в таблицу data_table.

data = {11,400565,1010,10,'Rubik''s Cube'};
data_table = cell2table(data,'VariableNames',colnames)
data_table = 

    productnumber    stocknumber    suppliernumber    unitcost    productdescription
    -------------    -----------    --------------    --------    ------------------
    11               400565         1010              10          'Rubik's Cube'      

Вставка данных таблицы в producttable.

tablename = 'producttable';
insert(conn,tablename,colnames,data_table)

Просмотр данных из producttable снова.

curs = exec(conn,'SELECT * FROM producttable');
curs = fetch(curs);
curs.Data
ans = 

    productnumber    stocknumber    suppliernumber    unitcost    productdescription
    -------------    -----------    --------------    --------    ------------------
     9               125970         1003              13          'Victorian Doll'  
     8               212569         1001               5          'Train Set'       
     7               389123         1007              16          'Engine Kit'      
     2               400314         1002               9          'Painting Set'    
     4               400339         1008              21          'Space Cruiser'   
     1               400345         1001              14          'Building Blocks' 
     5               400455         1005               3          'Tin Soldier'     
     6               400876         1004               8          'Sail Boat'       
     3               400999         1009              17          'Slinky'          
    10               888652         1006              24          'Teddy Bear'      
    11               400565         1010              10          'Rubik's Cube'    

Новая строка появится в producttable с данными из data_table.

После завершения работы с cursor объект, закройте его.

close(curs)

Закройте подключение к базе данных.

close(conn)

Входные аргументы

свернуть все

Подключение к базе данных SQLite, указанное как sqlite объект, созданный с помощью sqlite функция.

Имя таблицы базы данных, указанное как вектор символов или скаляр строки, обозначающий имя таблицы в базе данных.

Пример: 'employees'

Типы данных: char | string

Имена столбцов таблицы базы данных, указанные как массив ячеек из одного или нескольких векторов символов или строковый массив для обозначения столбцов в существующей таблице базы данных tablename.

Пример: {'col1','col2','col3'}

Типы данных: cell | string

Вставка данных, указанных как массив ячеек, числовая матрица, таблица, массив наборов данных или структура. Эти значения зависят от типа подключения к базе данных.

Для connection не указывается тип экспортируемых данных. insert функция экспортирует данные в текущем формате MATLAB. Если data является структурой, то имена полей в структуре должны совпадать colnames. Если data является таблицей или массивом наборов данных, то имена переменных в таблице или массиве наборов данных должны совпадать colnames. Если data - структура, таблица или массив наборов данных, затем укажите каждое поле или переменную как:

  • Массив ячеек

  • Двойной вектор размера m-by-1, где m - количество вставляемых строк

Для sqlite , массив наборов данных не поддерживается. Только double, int64, и char поддерживаются типы данных.

Альтернативная функциональность

Для экспорта данных MATLAB в базу данных можно использовать datainsert и fastinsert функции. Для максимальной производительности используйте datainsert.

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2018a

Представлен до R2006a