Этот пример показывает, как импортировать данные от базы данных в MATLAB®, выполнить вычисления на данных и экспортировать результаты в таблицу базы данных.
Пример принимает, что вы соединяетесь с базой данных Microsoft® Access™, которая содержит таблицы под названием salesvolume
и yearlysales
. Кроме того, пример принимает, что вы запускаете MATLAB как администратор. Таблица salesvolume
содержит имена столбцов в течение каждого месяца. Таблица yearlysales
содержит имена столбцов month
и salestotal
.
Создайте соединение с базой данных к Базе данных Microsoft Access. Например, этот код принимает, что вы соединяетесь с источником данных под названием dbdemo
с пустым именем пользователя и паролем.
conn = database('dbdemo','','');
Проверяйте соединение с базой данных. Если свойство Message
пусто, то связь успешна.
conn.Message
ans = []
Импортируйте данные об объеме продаж в течение месяца марта с помощью соединения с базой данных. Таблица базы данных salesvolume
содержит данные об объеме продаж.
tablename = 'salesvolume';
data = sqlread(conn,tablename);
Отобразите первые три строки данных об объеме продаж. Четвертая переменная содержит данные в течение месяца марта.
head(data(:,4),3)
ans = 3×1 table march _____ 981 1414 890
Вычислите сумму мартовских продаж. Присвойте результат переменной total
рабочего пространства MATLAB и отобразите результат.
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'
Флаг 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