Data Import Memory Management
To import data with simple queries, you can use the Database Explorer app. For more complex queries and managing memory issues, use the command line to import data into the MATLAB® workspace. To understand the differences between these two approaches, see Data Import Using Database Explorer App or Command Line.
Database Toolbox™ provides various ways to import data into the MATLAB workspace from a database.
sqlread
Function
If you are not familiar with writing SQL queries, you can import data using the
sqlread
function. This function needs only a database connection and
the database table name to import data. Furthermore, the
sqlread
function does not require you to set database
preferences.
select
Function
For memory savings, you can import and access data using the select
function. With this function,
you save memory by importing data using data types specified in a database. The
table definitions in a database specify the data type for each column. The
select
function maps the data type in the database to a
corresponding MATLAB data type for each variable during data import. Instead of importing
every numeric value as a double
in MATLAB, the select
function allows the import of
different integer data types. You no longer need to convert the data type of a
numeric value to a specific numeric type after data import. The MATLAB memory size used by integer or unsigned integer data types is less
than double precision. Therefore, the select
function saves
memory.
This table shows the numeric data types in a database and their MATLAB equivalents when using the select
function.
Database Data Type | MATLAB Data Type |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Boolean |
|
Date, time, or text |
|
For example, create a table Patients
with this database table
definition:
CREATE TABLE Patients( LastName VARCHAR(50), Gender VARCHAR(10), Age TINYINT, Location VARCHAR(300), Height SMALLINT, Weight SMALLINT, Smoker BIT, Systolic FLOAT, Diastolic NUMERIC, SelfAssessedHealthStatus VARCHAR(20))
These table columns have numeric data types in the database:
Age
Height
Weight
Systolic
Diastolic
The fetch
function imports the columns
of numeric data with double precision by default. However, the
select
function imports the columns into their matching
integer data type. When you import using the select
function,
the corresponding MATLAB data types for these columns are:
uint8
uint16
uint16
single
double
The fetch
function imports the Smoker
column as a double
in MATLAB. However, the select
function imports the
Smoker
column as a logical
variable.
To see data types after data import, use the select
function
with the metadata
output argument.
Define Import Strategy Using SQLImportOptions
Object
You can customize the import options for importing data from a database into the
MATLAB workspace by using the SQLImportOptions
object with the fetch
function. The
select
function specifies the MATLAB data type by default. However, with the
SQLImportOptions
object, you can define the import strategy for
specific database columns and specify the MATLAB data type for the corresponding imported data.
Also, you can specify categorical
, datetime
,
and integer data types for imported data using the SQLImportOptions
object. The MATLAB memory size used to store these data types is less than the memory
size used for alternative data types, such as string
or
double
.
See Also
fetch
| executeSQLScript
| select
| sqlread