Delete Data from Databases
This example shows how to delete data from your database using MATLAB®.
Create the SQL statement with your deletion SQL syntax. Consult your database
documentation for the correct SQL syntax. Execute the delete operation on your
database using the execute
function with your SQL statement.
This example demonstrates deleting data records in a Microsoft Access® database.
Connect to Database
Create the database connection conn
to a Microsoft Access database using an ODBC driver and the data source name
dbdemo
. This database contains the table
inventorytable
with the column
productnumber
.
conn = database('dbdemo','','');
The SQL query sqlquery
selects all rows of data in the
table inventorytable
. Execute this SQL query using
conn
. Import the data from the executed query using the
fetch
function and display the last few rows.
sqlquery = 'SELECT * FROM inventorytable';
data = fetch(conn,sqlquery);
tail(data)
ans = 8×4 table productnumber quantity price inventorydate _____________ ________ _____ _____________________ 6 4540 8 '2013-12-25 19:45:00' 7 6034 16 '2014-08-06 08:38:00' 8 8350 5 '2011-06-18 11:45:35' 9 2339 13 '2011-02-09 12:50:59' 10 723 24 '2012-03-14 13:13:09' 11 567 0 '2012-09-11 00:30:24' 12 1278 0 '2010-10-29 18:17:47' 13 1700 14.5 '2009-05-24 10:58:59'
Delete Specific Record
Delete the data for the product number 13
from the table
inventorytable
. Specify the product number using the
WHERE
clause in the SQL statement
sqlquery
.
sqlquery = 'DELETE * FROM inventorytable WHERE productnumber = 13';
execute(conn,sqlquery)
Display the data in the table inventorytable
after the
deletion. The record with product number 13
is
missing.
sqlquery = 'SELECT * FROM inventorytable';
data = fetch(conn,sqlquery);
tail(data)
ans = 8×4 table productnumber quantity price inventorydate _____________ ________ _____ _____________________ 5 9000 3 '2012-09-14 15:00:25' 6 4540 8 '2013-12-25 19:45:00' 7 6034 16 '2014-08-06 08:38:00' 8 8350 5 '2011-06-18 11:45:35' 9 2339 13 '2011-02-09 12:50:59' 10 723 24 '2012-03-14 13:13:09' 11 567 0 '2012-09-11 00:30:24' 12 1278 0 '2010-10-29 18:17:47'
Delete Record Using MATLAB Variable
Define a MATLAB variable productID
by setting it to the product
number 12
.
productID = 12;
Delete the data using the MATLAB variable productID
. Build an SQL statement
sqlquery
that combines the SQL for the delete operation
with the MATLAB variable. Since the variable is numeric and the SQL statement is a
character vector, convert the number to a character vector. Use the
num2str
function for the conversion. Concatenate the
delete SQL statement and the numeric conversion using the square
brackets.
sqlquery = ['DELETE * FROM inventorytable WHERE ' ... 'productnumber = ' num2str(productID)]; execute(conn,sqlquery)
Display the data in the table inventorytable
after the
deletion. The record with product number 12
is
missing.
sqlquery = 'SELECT * FROM inventorytable';
data = fetch(conn,sqlquery);
tail(data)
ans = 8×4 table productnumber quantity price inventorydate _____________ ________ _____ _____________________ 4 2580 21 '2013-06-08 14:24:33' 5 9000 3 '2012-09-14 15:00:25' 6 4540 8 '2013-12-25 19:45:00' 7 6034 16 '2014-08-06 08:38:00' 8 8350 5 '2011-06-18 11:45:35' 9 2339 13 '2011-02-09 12:50:59' 10 723 24 '2012-03-14 13:13:09' 11 567 0 '2012-09-11 00:30:24'
Close Database Connection
close(conn)