MySQL
From Oracle FAQ
MySQL is an open source relational DBMS system provided by SUN Microsystems (was MySQL AB). MySQL runs on more than 20 platforms including Linux, Windows, HP-UX, Solaris and AIX.
Contents |
[edit]
History
SUN agreed to acquire MySQL AB for $1 billion in cash and assumed stock options on 16 January 2008.
[edit]
Compared to Oracle
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.
- Referential integrity constraints, views, queries with sub-selects, stored procedures, triggers, replication, and a bunch of other features are only available in Oracle; and not supported by MySQL.
- 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]

