From Wikibooks, open books for an open world
Jump to navigation Jump to search

What is SQL?

[edit | edit source]

For a more general introduction see the SQL Wikibook.

Structured Query Language is a third generation language for working with relational databases. Being a 3G language it is closer to human language than machine language and therefore easier to understand and work with.

  • Dr. E. F. Ted Codd who worked for IBM described a relational model for database in 1970.
  • In 1992, ANSI (American National Standards Institute), the apex body, standardized most of the basic syntax.
  • Its called SQL 92 and most databases (like Oracle, MySQL, Sybase, etc.) implement a subset of the standard (and proprietary extensions that makes them often incompatible).

Why MySQL?

[edit | edit source]
  • Free as in Freedom - Released with GPL version 2 license (though a different license can be bought from Oracle, see below)
  • Cost - Free!
  • Support - Online tutorials, forums, mailing list (, paid support contracts.
  • Speed - One of the fastest databases available. ([1])
  • Functionality - supports most of ANSI SQL commands.
  • Ease of use - less need of training / retraining.
  • Portability - easily import / export from Excel and other databases
  • Scalable - Useful for both small as well as large databases containing billions of records and terabytes of data in hundreds of thousands of tables.
  • Permission Control - selectively grant or revoke permissions to users.

The MySQL license

[edit | edit source]

MySQL is available under a dual-licensing scheme:

  1. Under the GNU General Public License, version 2, ("or later" allowed in versions released before 2007): this is a Free (as in freedom), copyleft software license that allows you to use MySQL for commercial and non-commercial purposes in your application, as long as your application is released under the GNU GPL. There is also a "FLOSS Exception" which essentially allows non-GPL'd but Free applications (such as the PHP programming language, under the PHP license) to connect to a MySQL server. The exception lists a set of free and open-source software license that can be used in addition to the GNU GPL for your MySQL-dependent Free application.
  2. A so-called "commercial" [1], paid license, that is, a license where MySQL grants you the right to integrate MySQL with a non-FLOSS application that you are redistributing outside your own organization. [2]

MySQL and its forks

[edit | edit source]

MySQL is Free Software, so some forks and unofficial builds delivering contributions from the community exist.


[edit | edit source]

In 2008 Sun Microsystems bought MySQL, Sun being itself later acquired by Oracle, in 2010. After the acquisition, the development process has changed. The team has started to release new MySQL versions less frequently, so the new code is less tested.There were also less contributions from the community.

In 2009 Monty Widenius, the founder of MySQL, left the company and created a new one, called The Monty Program. He started a new fork called MariaDB. The scopes of MariaDB,

  • import all the new code that will be added to the main MySQL branch, but enhancing it to make it more stable;
  • clean the MySQL code;
  • add contributions from the community (new plugins, new features);
  • develop the Aria storage engine, formerly named Maria;
  • improving the performance;
  • adding new features to the server.

The license is the GNU GPLv2 (inherited from MySQL).

The primary platform for MariaDB is GNU/Linux, but also works on one proprietary system. The following Storage Engine have been added:

  • Aria (also used for internal tables)
  • PBXT
  • XtraDB
  • FederatedX
  • SphinxSE
  • Others may be added in the future.


[edit | edit source]

In 2008 Brian Aker, chief architect of MySQL, left the project to start a new fork called Drizzle. While Oracle initially funded the project, Drizzle is now funded by Rackspace. Its characteristics are:

  • only a small part of the MySQL code has survived in this fork, the rest being removed: only essential features are implemented in the Drizzle server;
  • the survived code has been cleaned;
  • Drizzle is modular: many features are or can be implemented as plugins;
  • the software is optimized for multiCPU and multicore 64 bit machines;
  • only GNU/Linux and UNIX systems are supported.

There are no public releases of this fork, still. Its main license will be the GNU GPLv2 (inherited from MySQL), but where possible the BSD license is applied.


[edit | edit source]

OurDelta is another fork, maintained by Open Query. The first branch, which has number 5.0, is based on MySQL 5.0. The 5.1 branch is based on MariaDB. OurDelta includes some patches developed by the community or by third parties. OurDelta provides packages for some GNU/Linux distributions: Debian, Ubuntu, Red Hat/CentOS. It is not available for other systems, but the source code is freely available.

Percona Server

[edit | edit source]

Percona Server is a MySQL fork maintained by Percona. It provides the ExtraDB Storage Engine, which is a fork of InnoDB, and some patches which mainly improve the performance.


[edit | edit source]
  1. Calling it "commercial" is misleading, because the GNU GPL can be used in commercial (but non-proprietary) projects.
  2. Proprietary projects still can connect to a MySQL server without purchasing this license by using old versions of the MySQL client connection libraries (under the GNU Lesser General Public License). However, these libraries cannot connect to the newest versions of the MySQL server.