Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In my Databases lecture, the teacher mentioned that SQL is not just a data definition language (DDL), data manipulation language (DML) and view definition language (VDL), but also a storage definition language (SDL). The last usage doesn't come with any further explanations or examples.

Searching for extra information on the internet regarding using SQL as a SDL yields no relevant results. Could anyone give an example of using SQL as a storage definition language?


Would a specification such as MySQL's SET storage_engine=MYISAM; count as a storage definition? It doesn't really relate to the data being stored, but rather, how it's stored.

share|improve this question

migrated from Feb 12 '13 at 3:28

This question came from our site for professional and enthusiast programmers.

Have you searched "SDL Storage Definition Language"? There appear to be several references. – Gordon Linoff Feb 11 '13 at 21:40
Yes, but sadly, most of them are really shallow definitions or simply definitions of the acronym itself and nothing more. I even came across this very question on just the second page of Google's results. – Andrei Bârsan Feb 11 '13 at 21:51
My guess is that "Storage Definition Language" refers to all those bits and pieces of a CREATE TABLE statement that describe the physical properties of a table and/or the different kinds of indexes on a table. I've never heard the term before myself but I can see how an academic would want to differentiate with respect to column attributes. I was going to make this an answer but I'm not sure this is a valid SO question (although interesting). – Bob Duell Feb 11 '13 at 22:14
The SDL stuff is almost anything that's not specified by the SQL standard that is different in every DBMS and that specifies anything to do with how or where the data in the relevant table is stored. So 'yes: SET storage_engine=MYISAM is a MySQL-specific example of SDL'. – Jonathan Leffler Feb 12 '13 at 1:17

You may want to ask your teacher to define "SDL". I don't think the term appears in the SQL standard. I found this reference (see page 3), and I disagree: SQL does not define the physical structure, the physical bytes per field, the physical field order, the physical sorting, or "mixed records", whatever that might mean. SQL doesn't define fields at all, or records, or say anything about how the data are stored on the disk if they're stored on the disk.

That said, every vendor does provide some means for the administrator to define where the data will be kept, and many offer varying levels of control over physical storage aspects (e.g. ISAM, clustered indexes). AFAIK all that stuff lies outside the SQL standard. I've used DBMSs that understand SQL DML, but completely separate mechanisms for defining tables and storage.

share|improve this answer

I know that acronym as a Schema Definition Language - schema(metadata) manipulation language

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.