How to create a database in MATLAB and what the different options are
Show older comments
Hi everyone. I have a project in mind for a database and wish to use MATLAB for it.
I am struggling to figure out what the different options are in terms of SQL etc. And how to create, manage and query a database in MATLAB.
I have looked through the other MATLAB answers and they didn't give much detail. They suggest the Database toolbox and provide a link to the documentation, and they also suggest the Database Explorer app, but don't give any more detail than that.
I have looked at the Database toolbox link and it doesn't contain a how-to guide. I wouldn't be able to create a database from scratch using that.
I have looked at the Database explorer and again, it's not straightforwards or intuitive, and I found no getting started guide.
I also had a look through the Mathworks training options and didn't find anything targetting working with databases.
I would first like to get my head around the options, tools, apps etc before I decide which option is best for my project. So a bit of help on the syntax or process for creating and then querying a very simple database would be great, and an overview of the different database options.
I also dont understand how to connect the Database Explorer app to a database
Answers (2)
I understand the learning curve. I work with a SQL Server and SQLite files regularly now and the best thing that got me over the hump was perusing resources outside of MATLAB for SQL sytnax. Try W3 schools as an approachable first.
Also reccomended is to make yourself some easy, repeatable unit tests to manage database connections (open / close) and deleting old files so you do not step over previous sqlite files / connections.
Along the way here is a simple way to create and work with a database in MATLAB persuming you have the Database Toolbox.
clearvars
dbfile = "tst.db";
if isfile(dbfile) delete(dbfile); end
conn = sqlite(dbfile,"create"); % makes a sqlite file for you
% get an interesting table
LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure1 = [124; 109 ; 125 ; 117 ; 122 ];
BloodPressure2 = [93; 77; 83; 75; 80];
T = table(LastName,Age,Smoker,Height,Weight,BloodPressure1, BloodPressure2)
% write it to the database
tabname = "Data";
sqlwrite(conn,tabname,T);
% read it back
Tread = sqlread(conn,tabname)
% read with a row filter
rf = rowfilter('LastName');
rf2 = rf.LastName == "Sanchez";
TSanchez = sqlread(conn,tabname,"RowFilter",rf2)
% a more advanced gem when you are ready
sq = sprintf("SELECT * FROM %s",tabname);
sqlopts = databaseImportOptions(conn,sq);
% preview the data only (first 8 rows)
preview = sqlopts.preview
Harrison
on 24 Feb 2026
0 votes
Thanks a lot for this detailed explanation, it really helps
I was also confused about how to actually create a database from scratch in MATLAB, especially the difference between using SQLite locally vs connecting to something like SQL Server. Your step-by-step example makes it much clearer, especially the part about deleting the old DB file before creating a new one.
I like the idea of starting simple with SQLite and tables, then moving to more advanced SQL queries later. Also agree that learning some SQL basics outside MATLAB (like W3Schools) makes the whole process less overwhelming.
Appreciate you taking the time to write this out — this is the kind of practical example that the official docs sometimes miss.
Categories
Find more on Database Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!