DataType | MySQL/MariaDB | Oracle |
---|---|---|
BIGINT | NUMBER(19, 0) | |
BIT | RAW | |
BLOB | BLOB, RAW | |
CHAR | CHAR | |
DATE | DATE | |
DATETIME | DATE | |
DECIMAL | FLOAT (24) | |
DOUBLE | FLOAT (24) | |
DOUBLE PRECISION | FLOAT (24) | |
ENUM | VARCHAR2 | |
FLOAT | FLOAT | |
LONGBLOB | BLOB, RAW | |
LONGTEXT | CLOB, RAW | |
MEDIUMBLOB | BLOB, RAW | |
MEDIUMINT | NUMBER(7, 0) | |
MEDIUMTEXT | CLOB, RAW | |
NUMERIC | NUMBER | |
REAL | FLOAT (24) | |
SET | VARCHAR2 | |
SMALLINT | NUMBER(5, 0) | |
TEXT | VARCHAR2, CLOB | |
TIME | DATE | |
TIMESTAMP | DATE | |
TINYBLOB | RAW | |
TINYINT | NUMBER(3, 0) | |
TINYTEXT | VARCHAR2 | |
VARCHAR | VARCHAR2, CLOB | |
YEAR | NUMBER |
String Function | MySQL | Oracle |
---|---|---|
substr | SUBSTR(name,start[,length]) or substring | SELECT SUBSTR(name,1,5) FROM products |
concat | concat(str1[,str2]…) | |
trim | trim(str) - ltrim(str) - rtrim(str) | |
length | length(str) | |
left(str, length) right(str, length) | ||
insert(str,start,length,insert) | ||
reverse(str) | ||
lower(str) | ||
upper(str) | ||
repeat(str,count) | ||
lpad(str,length,pad) | ||
rpad(str,length,pad) |
Date Function | MySQL | Oracle |
---|---|---|
now() = sysdate() = current_timestamp() | ||
sysdate() | ||
curdate()=current_date | ||
curtime()=current_time() | ||
dayofmonth(date) | ||
month | ||
year | ||
month | ||
hour | ||
minute | ||
second | ||
dayofweek | ||
quarter | ||
dayofyear | ||
week | ||
last_day() |
Alter Table | MySQL/MariaDB | Oracle 12c |
---|---|---|
Rename Table | RENAME table old_name TO new_name | RENAME old_name TO new_name |
Add column | ALTER TABLE table_name ADD COLUMN column_name column_definition | ALTER TABLE table_name ADD column_name data_type constraint |
Drop column | ALTER TABLE table_name Drop COLUMN column_name | ALTER TABLE table_name Drop column_name |
Change password | SET PASSWORD FOR ‘username’@’hostname’ = PASSWORD(‘password’); | Use password command in a interactive way |
Group By | MySQL/MariaDB | Oracle 12c |
---|---|---|
The select list can refer to nonaggregated columns not named in the GROUP BY clause | All items in the select list not contained in an aggregate function must be included in the group by clause | |
Default Port | 3306 | 1521 |
Licence | GPL | Commercial |
Source Code, Language | C and C++ | C and C++ |
Lock Mode | Table Lock | Row Lock |
SQL Support | SQL | SQL and PL/SQL |
XML Support | Not Supported | Supported |
Query Differences | MySQL/MariaDB | Oracle 12c |
---|---|---|
Create DB | CREATE DATABASE customers | CREATE DATABASE customers |
Create table | CREATE TABLE customer (cust_id int PRIMARY KEY,branch varchar(255),status varchar(255)); | CREATE TABLE customer (cust_id int, branch varchar(255), status varchar(255), CONSTRAINT customer_pk PRIMARY KEY (cust_id)); |
Select | SELECT * FROM customer | SELECT * FROM customer |
Insert | INSERT INTO customer(cust_id, branch, status) VALUES (‘appl01’, ‘main’, ‘A’) | INSERT INTO customer(cust_id, branch, status) VALUES (‘appl01’, ‘main’, ‘A’); |
Update | UPDATE customer SET branch=”main” WHERE custage > 2 | UPDATE customer SET branch=”main” WHERE custage > 2 |
Other Differences | MySQL/MariaDB | Oracle 12c |
---|---|---|
Regex | REGEXP | REGEXP_LIKE |
-- Must be a quoted String
-- It is not recommended inserting number as Enumeration.
-- Sort - Sorting is according to the index (declaration sequence)
-- Could have multiple values.