Этот пример показывает, как переместить данные между MATLAB® и интерфейсом MATLAB® к SQLite. Предположим, что у вас есть данные о продукте, которые вы хотите импортировать в MATLAB®. Можно загрузить эти данные быстро в файл базы данных SQLite. Вы не должны устанавливать базу данных или драйвер. Для получения дополнительной информации об интерфейсе MATLAB® к SQLite, смотрите Работу с Интерфейсом MATLAB к SQLite. Для большей функциональности соединитесь с файлом базы данных SQLite с помощью драйвера JDBC. Для получения дополнительной информации смотрите Драйвер Конфигурирования и Источник данных.
Чтобы получить доступ к коду для этого примера, введите edit SQLiteWorkflow.m
.
Создайте связь SQLite conn
к новому файлу базы данных SQLite tutorial.db
. Задайте имя файла в текущей рабочей папке.
dbfile = fullfile(pwd,'tutorial.db'); conn = sqlite(dbfile,'create');
Создайте таблицы inventoryTable
, suppliers
, salesVolume
и productTable
с помощью exec
. Очистите переменные рабочей области MATLAB®.
createInventoryTable = ['create table inventoryTable ' ... '(productNumber NUMERIC, Quantity NUMERIC, ' ... 'Price NUMERIC, inventoryDate VARCHAR)']; exec(conn,createInventoryTable) createSuppliers = ['create table suppliers ' ... '(SupplierNumber NUMERIC, SupplierName varchar(50), ' ... 'City varchar(20), Country varchar(20), ' ... 'FaxNumber varchar(20))']; exec(conn,createSuppliers) createSalesVolume = ['create table salesVolume ' ... '(StockNumber NUMERIC, January NUMERIC, ' ... 'February NUMERIC, March NUMERIC, April NUMERIC, ' ... 'May NUMERIC, June NUMERIC, July NUMERIC, ' ... 'August NUMERIC, September NUMERIC, October NUMERIC, ' ... 'November NUMERIC, December NUMERIC)']; exec(conn,createSalesVolume) createProductTable = ['create table productTable ' ... '(productNumber NUMERIC, stockNumber NUMERIC, ' ... 'supplierNumber NUMERIC, unitCost NUMERIC, ' ... 'productDescription varchar(20))']; exec(conn,createProductTable) clear createInventoryTable createSuppliers createSalesVolume ... createProductTable
tutorial.db
содержит четыре пустых таблицы.
Загрузите MAT-файл под названием sqliteworkflowdata.mat
. Переменные CinvTable
, Csuppliers
, CsalesVol
и CprodTable
содержат данные для экспорта. Экспортируйте данные в таблицы в tutorial.db
с помощью insert
. Очистите переменные рабочей области MATLAB®.
load('sqliteworkflowdata.mat') insert(conn,'inventoryTable', ... {'productNumber','Quantity','Price','inventoryDate'},CinvTable) insert(conn,'suppliers', ... {'SupplierNumber','SupplierName','City','Country','FaxNumber'}, ... Csuppliers) insert(conn,'salesVolume', ... {'StockNumber','January','February','March','April','May','June', ... 'July','August','September','October','November','December'}, ... CsalesVol) insert(conn,'productTable', ... {'productNumber','stockNumber','supplierNumber','unitCost', ... 'productDescription'},CprodTable) clear CinvTable Csuppliers CsalesVol CprodTable
Закройте связь SQLite. Очистите переменную рабочей области MATLAB®.
close(conn)
clear conn
Создайте связь SQLite только для чтения с tutorial.db
.
conn = sqlite('tutorial.db','readonly');
Импортируйте данные о продукте в рабочую область MATLAB® с помощью fetch
. Переменные inventoryTable_data
, suppliers_data
, salesVolume_data
и productTable_data
содержат данные из таблиц inventoryTable
, suppliers
, salesVolume
и productTable
.
inventoryTable_data = fetch(conn,'SELECT * FROM inventoryTable'); suppliers_data = fetch(conn,'SELECT * FROM suppliers'); salesVolume_data = fetch(conn,'SELECT * FROM salesVolume'); productTable_data = fetch(conn,'SELECT * FROM productTable');
Отобразите первые три строки данных в каждой таблице.
inventoryTable_data(1:3,:)
ans = 3x4 cell array
{[1]} {[1700]} {[14.5000]} {'9/23/2014 9:38...'}
{[2]} {[1200]} {[ 9.3000]} {'7/8/2014 10:50...'}
{[3]} {[ 356]} {[17.2000]} {'5/14/2014 7:14...'}
suppliers_data(1:3,:)
ans = 3x5 cell array
Columns 1 through 4
{[1001]} {'Wonder Products'} {'New York'} {'United States' }
{[1002]} {'Terrific Toys' } {'London' } {'United Kingdom'}
{[1003]} {'Wacky Widgets' } {'Adelaide'} {'Australia' }
Column 5
{'212 435 1617' }
{'44 456 9345' }
{'618 8490 2211'}
salesVolume_data(1:3,:)
ans = 3x13 cell array
Columns 1 through 6
{[125970]} {[1400]} {[1100]} {[ 981]} {[ 882]} {[794]}
{[212569]} {[2400]} {[1721]} {[1414]} {[1191]} {[983]}
{[389123]} {[1800]} {[1200]} {[ 890]} {[ 670]} {[550]}
Columns 7 through 12
{[752]} {[654]} {[773]} {[809]} {[980]} {[3045]}
{[825]} {[731]} {[653]} {[723]} {[790]} {[1400]}
{[450]} {[400]} {[410]} {[402]} {[450]} {[1200]}
Column 13
{[19000]}
{[ 5000]}
{[16000]}
productTable_data(1:3,:)
ans = 3x5 cell array
{[9]} {[125970]} {[1003]} {[13]} {'Victorian Doll'}
{[8]} {[212569]} {[1001]} {[ 5]} {'Train Set' }
{[7]} {[389123]} {[1007]} {[16]} {'Engine Kit' }
close(conn)
Очистите переменную рабочей области MATLAB®.
clear conn
close
| exec
| fetch
| insert
| sqlite