From Oracle FAQ
Jump to: navigation, search

MySQL is an open source relational DBMS system provided by Oracle Corporation. MySQL runs on more than 20 platforms including Linux, Windows, HP-UX, Solaris and AIX.


[edit] History

MySQL was originally owned by MySQL AB. On 16 January 2008 SUN Microsystems acquire MySQL AB for $1 billion in cash and assumed stock options. SUN was acquired by Oracle Corporation in 2010.

[edit] Compared to the Oracle database

While both MySQL and the Oracle Database are Relational Database Systems, it's not quite fair to compare them as MySQL only offers basic functionality. However, let's look at some of the differences:

  • Oracle is a proprietary database system while MySQL is open source.
  • Replication, and a bunch of other features are only available in Oracle; and not supported by MySQL. Although some of it is included in later releases.
  • MySQL provides limited support for restart recovery, record level locking, transaction boundaries, transaction logging, and transaction integrity protection. Oracle, on the other hand, provides strong support for these features.
  • MySQL doesn't have direct support for spatial data, XML data, analytical functions, etc.
  • Object names (like table and column names) are not case sensitive in Oracle, but they are in MySQL. To use case sensitive names in Oracle, names must be "quoted".
  • Text lookups in Oracle is typically case sensitive. In MySQL the default lookup for text is case insensitive.
  • Automatic numbering: Oracle sequences are separate database objects (values must be assigned to columns - more flexible, but not as easy as with MySQL). In MySQL, "auto_increment" is an attribute of a column, but there can be only one auto_increment column per table.

[edit] Data type differences

  • Text columns: in Oracle a VARCHAR2 may be up to 4000 bytes, in MySQL the limit is 255. Long text items in Oracle are called CLOB's and BLOB's, in MySQL they are TEXT, however, these types work differently.
  • Date columns: Oracle's DATE and TIMESTAMP types store both date and time, MySQL has separate DATE, TIME, and DATETIME types. Date manipulation routines are different.
  • Numeric columns: Oracle has one numeric type, NUMBER that holds up to 38 digits (INT, FLOAT, etc maps to NUMBER). MySQL has many different numeric types including INT, DECIMAL, and FLOAT but not NUMBER.
  • ENUM (enumerated) and SET data types are supported by MySQL. Oracle allows for the definition of custom abstract data types.

[edit] Migration to/from Oracle

Oracle's SQL Developer can be used to convert MySQL databases to Oracle.

[edit] Also see

The following MySQL database engines are provided by Oracle Corporation:

[edit] External links