Skip to content

Who owns the SQL standard?

Vikrant Singh Chauhan on July 06, 2018

If I were to create a new database management system based on SQL, will it violate any copyright? What if I implement a modified version of SQL?

markdown guide

SQL is a ISO standard, its latest version is SQL:2016. If you want to implement it fully you can purchase it and do that:

If you implement a non adherent version of the standard nothing will happen, your DBMS won't simply be SQL:2016 compliant

Also, if you want to know more about SQL's evolution, check this blog out:


My idea of SQL is a little bit different than present SQL RDBMS. My main concern is using .sql extension and appended "SQL" in the software's name and obviously language. So I am confused whether should I name it something else and change syntax a lot or should I stick with SQL.


I do not know if you will have a trademark problem if you name "something SQL", you should probably check the trademark registry for that.

I don't think so, if you choose something that is a new name. For example MySQL is a registered trademark and probably other DBMS made by companies as well.

Anyhow if you implement a RDBMS you should probably stick to implement SQL:2016 or earlier versions unless there's a technical reason not to do so.

I actually have a technical reason not to stick with SQL:2016. There is no way my SQL can be SQL:2016 complaint. So far I am thinking of naming it something that sounds similar to LameSQL or LameUnSQL (because my software deals with unstructured data, but this one becomes lengthy.) My syntax is very similar to SQL but differs in many ways. Like the table is not actually called a table. Instead of having database > tables > columns, there are project > sites > pages > someotherdata.

I wouldn't call anything Lame something, it's not a good presentation to the world, but that's just me 😂

Serious question: is the data structured? If not you can drop the S

I wouldn't call it that because LAME is heavily associated with audio codecs.


According to that standard, how is the datatype for integers called? And how, according to that standard, do you skip and limit query results?

In my SQL, integer datatypes do not exist. There are other types of datatypes like sets. Query result may be limited as required.

Your SQL doesn't have integers. In T-SQL they are called INT. In PostgreSQL you need to write INTEGER. MySQL and SQLite allow both INT and INTEGER, and in Oracle it's actually NUMBER.

Not much of a standard if it can't even dictate something as basic and common and integer data types...

Postgres allows INT shorthand, and Oracle also allows INTEGER/INT specifically to conform with the standard while storing those values as its internal non-standard NUMBER type under the hood (completely allowable). The 2011 Framework spec notes that

Every data type is either predefined, constructed, or user-defined. Every data type has a name. The name of a predefined or constructed data type is a reserved word specified by that part of ISO/IEC 9075 that specifies the data type.

The relevant part of ISO/IEC 9075 does not, unfortunately, appear to be free to download and I don't feel like spending money to prove a point on the internet. However, those types are indeed specified should you care to look them up, and vendors with nonstandard types actually have to include the standard types to conform.

I've long assumed that OFFSET and LIMIT are standard and MS just haven't felt like getting SQL Server's TOP and bizarrely contorted row offsets in line but that's admittedly an educated guess.

T-SQL has INTEGER as well. Same as INT. 🙂


SQL is an ANSI and ISO norm but maybe IBM kept the trademark ...
I Know PostgreSQL extend language with their own command. I don't think it's a problem so if you want to create a awesome database, let's go :)


Do I have to buy/take license/permission for have SQL (as in PostegreSQL) at the end of my software's name?


No, but if you're not at least making an effort to conform to the standard, or designing your system around different concepts entirely, you're going to confuse a lot of people by calling it somethingSQL.


You can't create a DBMS "based" on SQL. SQL is simply the query language of Relational DBMSs.


I am trying to add a language to query unstructured data. SQL is quite easy to implement and people are already familiar with SQL so I think it is a good idea to utilize its syntax for my management system. But I am concerned about licenses and copyright issue.


"SQL is quite easy to implement " no it isn't. In fact, SQL is "easy" because you express WHAT you need instead of HOW to get it. Creating the optimal access plan for a query is extremely difficult, and even the big ones (Oracle, SQL Server...) have problems with that. I recall older versions of Sybase when more than 5 tables in a join were prohibited (I guess for the combinatorial explosion of all the possible paths). And that just for querying. Updating and deleting with transactions keeping ACID properties is even harder. Good luck with that!

Maybe but my concern is more about legal aspects than technical.

Why not just call it something "QL" for "query language?" Hive, for example, is sorta-kinda-SQL-like in its commands, but calls their query language "HiveQL," I believe.

Salesforce has one that's also a corruption but kind of SQL-like that they call "SOQL" (Salesforce Object Query Language).

I say just add "QL" to your database branding so as not to confuse people.

code of conduct - report abuse