Showing posts with label Data type. Show all posts
Showing posts with label Data type. Show all posts

Monday, October 13, 2014

MySQL and MS SQL Datatype Comparison

While working on Database migration between MS SQL and MySQL(MSSQL-> MySQL) ,i compared different datatype   available in MS SQL and MySQL. Below is complete list.
Data Type Comparison Between MySQL and MS SQL Server
MySQL
MS SQL
Comments
Integer
TINYINT(1)
BIT

TINYINT
TINYINT
Tinyint in MySQL is always unsigned
SMALLINT
SMALLINT

MEDIUMINT, INT
INT

BIGINT
BIGINT


Decimal
DECIMAL(M,D)
decimal(p,s)
Default precision is 18.
The maximum precision is 38.
The default scale is 0.

Floating Data types
FLOAT(N)
float(n)

FLOAT(M,D)
float(24)

DOUBLE(M,D); REAL(M,D)
float(53)

DOUBLE(M,D)
smallmoney, money


Date and Time Data Types
DDATETIME
datetime2*
It supports dates from 0001-01-01 through 9999-01-01
DATE
date*
It supports dates from 0001-01-01 to 9999-12-31
TIME
time2*
Time range is 00:00:00.0000000 through 23:59:59.9999999
TIMESTAMP
smalldatetime
smalldatetime value range is 1900-01-01 through 2079-06-06
YEAR
Smallint
-

String Data type
CHAR
nchar(n), uniqueinentifier
nchar allows 4000 characters
VARCHAR, TINYTEXT, TEXT(M), MEDIUMTEXT, LONGTEXT
nvarchar(n|max)
nvarchar allows 4000 characters but max indicates maximum storage size of 2^31-1 bytes.

Binary Data type
BINARY(M)
binary(n)
binary allows 8000 bytes
VARBINARY(M), TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
varbinary(n|max)
nvarbinary allows 8000 bytes but max indicates maximum storage size of 2^31-1 bytes.
BLOB
sql_variant
-
LONGBLOB
image
-

Thursday, June 21, 2012

Data Type Comparison (Oracle and MySQL)


Whenever you work Database design, Database Migration, You should be aware about data type, Storage required by data type.   Whenever you work on migration, you should know the equivalent data type between existing definitions.
Below is the quick comparison of Oracle Data type with MySQL Data type.
Default Data Type Mappings
MySQL Data Type
Oracle Data Type
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
INT
NUMBER(10, 0)
INTEGER
NUMBER(10, 0)
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

Numeric Types
MySQL
Size
Oracle
BIGINT
8 Bytes
NUMBER (19,0)
BIT
approximately (M+7)/8 Bytes
RAW
DECIMAL(M,D)
M+2 bytes if D > 0, M+1 bytes if D = 0 (D+2, if M < D)
FLOAT(24), BINARY_FLOAT
DOUBLE
8 Bytes
FLOAT(24), BINARY_FLOAT, BINARY_DOUBLE
DOUBLE PRECION
8 Bytes
FLOAT(24), BINARY_DOUBLE
FLOAT(25<=X <=53)
8 Bytes
FLOAT(24), BINARY_FLOAT
FLOAT(X<=24)
4 Bytes
FLOAT, BINARY_FLOAT
INT
4 Bytes
NUMBER (10,0)
INTEGER
4 Bytes
NUMBER (10,0)
MEDIUMINT
3 Bytes
NUMBER (7,0)
NUMERIC
M+2 bytes if D > 0, M+1 bytes if D = 0 (D+2, if M < D)
NUMBER
REAL
8 Bytes
FLOAT(24), BINARY_FLOAT
SMALLINT
2 Bytes
NUMBER(5,0)
TINYINT
1 Byte
NUMBER(3,0)

Date and Time Types
MySQL
Size
Oracle
DATE
3 Bytes
DATE
DATETIME
8 Bytes
DATE
TIMESTAMP
4 Bytes
DATE
TIME
3 Bytes
DATE
YEAR
1 Byte
NUMBER


String Types
MySQL
Size
Oracle
BLOB
L + 2 Bytes whereas L<2^16
RAW, BLOB
CHAR(m)
M Bytes, 0<=M<=255
CHAR
ENUM (VALUE1, VALUE2, ...)
1 or 2 Bytes depending on the number of enum. values (65535 values max)

LONGBLOB
L + 4 Bytes whereas L < 2 ^ 32
RAW, BLOB
LONGTEXT
L + 4 Bytes whereas L < 2 ^ 32
RAW, CLOB
MEDIUMBLOB
L + 3 Bytes whereas L < 2^ 24
RAW, BLOB
MEDIUMTEXT
L + 3 Bytes whereas L < 2^ 24
RAW, CLOB
SET (VALUE1, VALUE2, ...)
1, 2, 3, 4 or 8 Bytes depending on the number of set members (64 members maximum)

TEXT
L + 2 Bytes whereas L<2^16
VARCHAR2, CLOB
TINYBLOB
L + 1 Bytes whereas L<2 ^8
RAW, BLOB
TINYTEXT
L + 1 Bytes whereas L<2 ^8
VARCHAR2
VARCHAR(m)
L+1 Bytes whereas L<=M and0<=M<=255 before MySQL 5.0.3 (0 <= M <= 65535 in MySQL 5.0.3 and later; effective maximum length is 65,532 bytes)
VARCHAR2, CLOB