sqlreadЭтот пример показывает, как импортировать данные из таблицы в базе данных Microsoft® Access™ в рабочую область MATLAB® с помощью функции sqlread. Пример затем показывает, как использовать скрипт SQL, чтобы импортировать данные от SQL-запроса, который содержит несколько соединений.
Создайте связь Базы данных Microsoft Access с именем источника данных dbdemo с помощью драйвера ODBC и пустого имени пользователя и пароля. Эта база данных содержит таблицу producttable.
conn = database('dbdemo','','');
Если вы соединяетесь с базой данных с помощью связи JDBC, то задаете различный синтаксис для функции базы данных.
Проверяйте соединение с базой данных. Если свойство Message пусто, то связь успешна.
conn.Message
ans =
[]
Импортируйте данные о продукте от таблицы базы данных producttable при помощи функции sqlread и соединения с базой данных. Эта функция импортирует данные как таблицу MATLAB.
tablename = 'producttable';
data = sqlread(conn,tablename);
Отобразите номер продуктов и описание в импортированных данных.
data(:,[1 5])
ans =
10×2 table
productnumber productdescription
_____________ __________________
9 'Victorian Doll'
8 'Train Set'
7 'Engine Kit'
2 'Painting Set'
4 'Space Cruiser'
1 'Building Blocks'
5 'Tin Soldier'
6 'Sail Boat'
3 'Slinky'
10 'Teddy Bear'
Создайте файл с именем скрипта SQL salesvolume.sql со следующим SQL-запросом. Этот SQL-запрос использует, несколько соединяют, чтобы присоединиться к этим таблицам в базе данных dbdemo:
producttable
salesvolume
suppliers
Цель запроса состоит в том, чтобы импортировать данные об объеме продаж для поставщиков, расположенных в Соединенных Штатах.
SELECT salesvolume.january , salesvolume.february , salesvolume.march , salesvolume.april , salesvolume.may , salesvolume.june , salesvolume.july , salesvolume.august , salesvolume.september , salesvolume.october , salesvolume.november , salesvolume.december , suppliers.country FROM ((producttable INNER JOIN salesvolume ON producttable.stocknumber = salesvolume.stocknumber) INNER JOIN suppliers ON producttable.suppliernumber = suppliers.suppliernumber) WHERE suppliers.country LIKE 'United States%'
Запустите файл salesvolume.sql при помощи функции executeSQLScript. results является массивом структур с данными, возвращенными в выполнение SQL-запроса в файле скрипта SQL.
results = executeSQLScript(conn,'salesvolume.sql');
Отобразите первые три строки в таблице Data. Доступ к этой таблице как поле массива структур при помощи записи через точку.
head(results(1).Data,3)
ans =
3×13 table
january february march april may june july august september october november december country
_______ ________ _____ _____ ____ ____ ____ ______ _________ _______ ________ ________ _______________
5000 3500 2800 2300 1700 1400 1000 900 1600 3300 12000 20000 'United States'
2400 1721 1414 1191 983 825 731 653 723 790 1400 5000 'United States'
1200 900 800 500 399 345 300 175 760 1500 5500 17000 'United States'
close(conn)
close | database | executeSQLScript | sqlread