В этом примере показано, как импортировать данные из базы данных в MATLAB ®, выполнить вычисления данных и экспортировать результаты в таблицу базы данных.
Пример предполагает, что вы соединяетесь с базой данных Microsoft ® Access™, которая содержит таблицы с именем salesvolume
и yearlysales
. Кроме того, пример предполагает, что вы запускаете MATLAB как администратор. The salesvolume
таблица содержит имена столбцов для каждого месяца. The yearlysales
таблица содержит имена столбцов month
и salestotal
.
Создайте подключение базы данных к базе данных Microsoft Access. Например, этот код принимает, что вы соединяетесь с источником данных с именем dbdemo
с пустым именем пользователя и паролем.
conn = database('dbdemo','','');
Проверьте подключение к базе данных. Если на Message
свойство пусто, подключение успешно.
conn.Message
ans = []
Импорт данных оборота за март с помощью подключения к базе данных. The salesvolume
Таблица базы данных содержит данные по объему продаж.
tablename = 'salesvolume';
data = sqlread(conn,tablename);
Отображение первых трех строк данных оборота. Четвертая переменная содержит данные за март месяца.
head(data(:,4),3)
ans = 3×1 table march _____ 981 1414 890
Рассчитать сумму мартовских продаж. Присвойте результат переменного Рабочего пространства MATLAB total
и отобразите результат.
total = sum(data.march)
total = 14606
Извлеките имя месяца из данных оборота.
month = data.Properties.VariableNames(4);
Задайте имена столбцов для данных, которые нужно вставить как массив ячеек из векторов символов.
colnames = {'month' 'salestotal'};
Создайте таблицу MATLAB, которая хранит данные для экспорта.
results = table(month,total,'VariableNames',colnames);
Определите статус AutoCommit
флаг базы данных. Этот статус определяет, можно ли отменить действие вставки.
conn.AutoCommit
ans = 'on'
The AutoCommit
флаг установлен на on
. База данных автоматически фиксирует экспортированные данные в базе данных, и это действие невозможно отменить.
Вставьте сумму продаж за март в yearlysales
таблица.
tablename = 'yearlysales';
sqlwrite(conn,tablename,results)
Импортируйте данные из yearlysales
таблица. Эти данные содержат вычисленный результат.
data = sqlread(conn,tablename)
data = 1×3 table month salestotal revenue _______ __________ _______ 'march' 14606 0
close(conn)
close
| database
| sqlread
| sqlwrite