# MySQL/Introduction

## What is SQL?

For a more general introduction see the SQL Wikibook.

**S**tructured **Q**uery **L**anguage 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?

-   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 (lists.mysql.com),
    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

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

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

### MariaDB

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
-   OQGRAPH
-   Others may be added in the future.

### Drizzle

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.

### OurDelta

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

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.

## Notes

```{=html}
<references />
```
fr:MySQL/Introduction

[^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.
