Home » SQL » Tipe Data SQL untuk MySQL, SQL Server, dan MS Access

Tipe Data SQL untuk MySQL, SQL Server, dan MS Access

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Tipe data kolom yang menentukan nilai apa yang dapat dimiliki kolom: integer, character, money, date and time, binary dan seterusnya.

Tipe Data SQL

Setiap kolom dalam tabel database harus memiliki nama dan tipe data.

Pengembang SQL harus memutuskan tipe data apa yang akan disimpan di dalam setiap kolom saat membuat tabel. Tipe data adalah pedoman bagi SQL untuk memahami tipe data apa yang diharapkan di dalam setiap kolom dan juga mengidentifikasi bagaimana SQL akan berinteraksi dengan data yang disimpan.

Catatan: Tipe data mungkin memiliki nama yang berbeda di database yang berbeda. Dan meskipun namanya sama, ukuran dan detail lainnya mungkin berbeda! Selalu periksa dokumentasinya!

Jenis Data MySQL (Versi 8.0)

Di MySQL ada tiga tipe data utama: string, numeric dan date and time.

Tipe data string:

Tipe DataDeskripsi
CHAR(size)String panjang FIXED (dapat berisi huruf, angka dan karakter khusus). Parameter ukuran menentukan panjang kolom dalam karakter – dapat dari 0 hingga 255. Default adalah 1
VARCHAR(size)String panjang VARIABEL (dapat berisi huruf, angka dan karakter khusus). Parameter ukuran menentukan panjang kolom maksimum dalam karakter – dapat dari 0 hingga 65535
BINARY(size)Sama dengan CHAR(), tetapi menyimpan string byte biner. Parameter ukuran menentukan panjang kolom dalam byte. Default-nya adalah 1
VARBINARY(size)Sama dengan VARCHAR(), tetapi menyimpan string byte biner. Parameter ukuran menentukan panjang kolom maksimum dalam byte.
TINYBLOBUntuk BLOB (Binary Large OBjects). Panjang maksimal: 255 byte
TINYTEXTMenyimpan string dengan panjang maksimal 255 karakter
TEXT(size)Menyimpan string dengan panjang maksimum 65.535 byte
BLOB(size)Untuk BLOB (Binary Large OBjects). Menyimpan hingga 65.535 byte data
MEDIUMTEXTMenyimpan string dengan panjang maksimum 16.777.215 karakter
MEDIUMBLOBUntuk BLOB (Binary Large OBjects). Menyimpan hingga 16.777.215 byte data
LONGTEXTMenyimpan string dengan panjang maksimum 4.294.967.295 karakter
LONGBLOBUntuk BLOB (Binary Large OBjects). Menyimpan hingga 4.294.967.295 byte data
ENUM(val1, val2, val3, …)Objek string yang hanya dapat memiliki satu nilai, dipilih dari daftar kemungkinan nilai. Kita dapat mendaftar hingga 65535 nilai dalam daftar ENUM. Jika nilai yang disisipkan tidak ada dalam daftar, nilai kosong akan disisipkan. Nilai diurutkan sesuai urutan yang ingin di masukkan
SET(val1, val2, val3, …)Objek string yang dapat memiliki 0 atau lebih nilai, dipilih dari daftar nilai yang memungkinkan. Kita dapat mendaftar hingga 64 nilai dalam daftar SET

Tipe data numerik:

Tipe DataDekripsi
BIT(size)Jenis nilai bit. Jumlah bit per nilai ditentukan ukurannya. Parameter ukuran dapat menampung nilai dari 1 hingga 64. Nilai default untuk ukuran adalah 1.
TINYINT(size)Bilangan bulat yang sangat kecil. Rentang signed adalah dari -128 hingga 127. Rentang unsigned  adalah dari 0 hingga 255. Parameter ukuran menentukan lebar tampilan maksimum (yaitu 255)
BOOLNol dianggap false, nilai bukan nol dianggap true.
BOOLEANSama dengan BOOL
SMALLINT(size)Bilangan bulat kecil. Rentang signed adalah dari -32768 hingga 32767. Rentang unsigned adalah dari 0 hingga 65535. Parameter ukuran menentukan lebar tampilan maksimum (yaitu 255)
MEDIUMINT(size)Bilangan bulat sedang. Rentang signed adalah dari -8388608 hingga 8388607. Rentang unsigned adalah dari 0 hingga 16777215. Parameter ukuran menentukan lebar tampilan maksimum (yaitu 255)
INT(size)Bilangan bulat sedang. Rentang signed adalah dari -2147483648 hingga 2147483647. Rentang unsigned adalah dari 0 hingga 4294967295. Parameter ukuran menentukan lebar tampilan maksimum (yaitu 255)
INTEGER(size)Sama dengan INT (size)
BIGINT(size)Bilangan bulat besar. Rentang signed adalah dari -9223372036854775808 hingga 9223372036854775807. Rentang unsigned adalah dari 0 hingga 18446744073709551615. Parameter ukuran menentukan lebar tampilan maksimum (yaitu 255)
FLOAT(sized)Bilangan floating point. Jumlah total digit ditentukan dalam ukuran. Jumlah digit setelah koma desimal ditentukan dalam parameter d. Sintaks ini sudah tidak digunakan lagi di MySQL 8.0.17 dan akan dihapus di versi MySQL mendatang
FLOAT(p)Bilangan floating point. MySQL menggunakan nilai p untuk menentukan apakah akan menggunakan FLOAT atau DOUBLE untuk tipe data yang dihasilkan. Jika p dari 0 hingga 24, tipe data menjadi FLOAT(). Jika p dari 25 hingga 53, tipe data menjadi DOUBLE()
DOUBLE(sized)Angka floating point berukuran normal. Jumlah total digit ditentukan dalam ukuran. Jumlah digit setelah koma desimal ditentukan dalam parameter d
DOUBLE PRECISION(sized) Nomor titik tetap yang tepat. Jumlah total digit ditentukan dalam ukuran. Jumlah digit setelah koma desimal ditentukan dalam parameter d. Jumlah maksimal untuk ukuran adalah 65. Jumlah maksimal untuk d adalah 30. Nilai standar untuk ukuran adalah 10. Nilai standar untuk d adalah 0.
DECIMAL(sized)
DEC(sized)Sama dengan DECIMAL (size, d)

Catatan: Semua tipe data numerik mungkin memiliki opsi tambahan: UNSIGNED atau ZEROFILL. Jika ingin menambahkan opsi UNSIGNED, MySQL tidak akan mengizinkan nilai negatif untuk kolom tersebut. Jika ingin menambahkan opsi ZEROFILL, MySQL secara otomatis juga menambahkan atribut UNSIGNED ke kolom.

Tipe data Date and Time:

Tipe DataDeskripsi
DATEDate. Format: YYYY-MM-DD. Rentang yang didukung adalah dari ‘1000-01-01’ hingga ‘9999-12-31’
DATETIME(fsp)Kombinasi tanggal dan waktu. Format: YYYY-MM-DD hh:mm:ss. Rentang yang didukung adalah dari ‘1000-01-01 00:00:00’ hingga ‘9999-12-31 23:59:59’. Menambahkan DEFAULT dan ON UPDATE dalam definisi kolom untuk mendapatkan inisialisasi otomatis dan memperbarui ke tanggal dan waktu saat ini
TIMESTAMP(fsp)TIMESTAMP. Nilai TIMESTAMP disimpan sebagai jumlah detik sejak periode Unix (‘1970-01-01 00:00:00’ UTC). Format: YYYY-MM-DD hh:mm:ss. Rentang yang didukung adalah dari ‘1970-01-01 00:00:01’ UTC hingga ‘2038-01-09 03:14:07’ UTC. Inisialisasi otomatis dan pembaruan ke tanggal dan waktu saat ini dapat ditentukan menggunakan DEFAULT CURRENT_TIMESTAMP dan ON UPDATE CURRENT_TIMESTAMP dalam definisi kolom
TIME(fsp)Time. Format: hh:mm:ss . Rentang yang didukung adalah dari ‘-838: 59: 59’ hingga ‘838: 59: 59’
YEARSetahun dalam format empat digit. Nilai diperbolehkan dalam format empat digit: 1901 hingga 2155, dan 0000.

MySQL 8.0 tidak mendukung tahun dalam format dua digit.

Tipe Data SQL Server

Tipe data string:

Tipe DataDeskripsiUkuran MaksimalPenyimpanan
char(n)String karakter lebar tetap8,000 karakterLebar yang ditentukan
varchar(n)String karakter lebar variabel8,000 karakter2 bytes + jumlah karakter
varchar(max)String karakter lebar variabel1,073,741,824 karakter2 bytes + jumlah karakter
textString karakter lebar variabel2GB data teks4 bytes + jumlah karakter
ncharLebar string Unicode tetap4,000 karakterLebar yang ditentukan x2
nvarcharLebar variabel string Unicode4,000 karakter 
nvarchar(max)Lebar variabel string Unicode536,870,912 karakter 
ntextLebar variabel string Unicode2GB data teks 
binary(n)String biner lebar tetap8,000 bytes 
varbinaryString biner lebar variabel8,000 bytes 
varbinary(max)String biner lebar variabel2GB 
imageString biner lebar variabel2GB 

Tipe data numerik:

Tipe DataDeskripsiPenyimpanan
bitInteger yang bisa 0, 1 atau NULL 
tinyintMengizinkan bilangan bulat dari 0 hingga 2551 byte
smallintMengizinkan bilangan bulat antara -32.768 dan 32.7672 bytes
intMengizinkan bilangan bulat antara -2.147.483.648 dan 2.147.483.6474 bytes
bigintMengizinkan bilangan bulat antara -9.223.372.036.854.775.808 dan 9.223.372.036.854.775.8078 bytes
decimal(p,s)Nomor presisi dan skala tetap.

Memungkinkan angka dari -10 ^ 38 +1 hingga 10 ^ 38 –1.

Parameter p menunjukkan jumlah total digit maksimum yang dapat disimpan (di kiri dan kanan koma desimal) . p harus berupa nilai dari 1 hingga 38. Default adalah 18.

Parameter s menunjukkan jumlah digit maksimum yang disimpan di sebelah kanan koma desimal. s harus berupa nilai dari 0 sampai p. Nilai defaultnya adalah 0
5-17 bytes
numeric(p,s)Nomor presisi dan skala tetap.

Memungkinkan angka dari -10 ^ 38 +1 hingga 10 ^ 38 –1.

Parameter p menunjukkan jumlah total digit maksimum yang dapat disimpan (di kiri dan kanan koma desimal) . p harus berupa nilai dari 1 hingga 38. Default adalah 18.

Parameter s menunjukkan jumlah digit maksimum yang disimpan di sebelah kanan koma desimal. s harus berupa nilai dari 0 sampai p. Nilai defaultnya adalah 0
5-17 bytes
smallmoneyData moneter dari -214.748.3648 hingga 214.748.36474 bytes
moneyData moneter dari -922,337,203,685,477.5808 menjadi 922,337,203,685,477.58078 bytes
float(n)Data angka presisi mengambang dari -1,79E + 308 menjadi 1,79E + 308.

Parameter n menunjukkan apakah bidang harus menampung 4 atau 8 byte. float (24) memegang bidang 4-byte dan float (53) memegang bidang 8-byte. Nilai default dari n adalah 53.
4 or 8 bytes
realData angka presisi mengambang dari -3,40E + 38 hingga 3,40E + 384 bytes

Tipe data Date dan Time:

Tipe DataDeskripsiPenyimpanan
datetimeMulai 1 Januari 1753 hingga 31 Desember 9999 dengan akurasi 3,33 milidetik8 bytes
datetime2Dari 1 Januari 0001 hingga 31 Desember 9999 dengan akurasi 100 nanodetik6-8 bytes
smalldatetimeDari 1 Januari 1900 hingga 6 Juni 2079 dengan akurasi 1 menit4 bytes
dateSimpan date saja. Mulai 1 Januari 0001 hingga 31 Desember 99993 bytes
timeSimpan time hanya dengan akurasi 100 nanodetik3-5 bytes
datetimeoffsetSama seperti datetime2 dengan penambahan offset zona waktu8-10 bytes
timestampMenyimpan nomor unik yang diperbarui setiap kali baris dibuat atau diubah. Nilai stempel waktu didasarkan pada jam internal dan tidak sesuai dengan waktu nyata. Setiap tabel hanya boleh memiliki satu variabel stempel waktu 

Tipe data lainnya:

Tipe DataDeskripsi
sql_variantMenyimpan hingga 8.000 byte data dari berbagai tipe data, kecuali teks, ntext, dan timestamp
uniqueidentifierMenyimpan a globally unique identifier(GUID)
xmlMenyimpan data berformat XML. Maksimal 2GB
cursorMenyimpan referensi ke kursor yang digunakan untuk operasi database
tableMenyimpan kumpulan hasil untuk pemrosesan nanti

Tipe Data Microsoft Access

Tipe DataDeskripsiPenyimpanan
TextGunakan untuk teks atau kombinasi teks dan angka. Maksimal 255 karakter 
MemoMemo digunakan untuk teks yang lebih banyak. Menyimpan hingga 65.536 karakter.

Catatan: Kita tidak bisa mengurutkan bidang memo. Namun, mereka dapat dicari
 
ByteMengizinkan bilangan bulat dari 0 hingga 2551 byte
IntegerMengizinkan bilangan bulat antara -32.768 dan 32.7672 bytes
LongMengizinkan bilangan bulat antara -2.147.483.648 dan 2.147.483.6474 bytes
SingleFloating-point presisi tunggal. Akan menangani sebagian besar desimal4 bytes
DoubleFloating-point presisi ganda. Akan menangani sebagian besar desimal8 bytes
CurrencyGunakan untuk mata uang. Menampung hingga 15 digit dolar utuh, ditambah 4 tempat desimal.

Tip: Kita bisa memilih mata uang negara mana yang akan digunakan
8 bytes
AutoNumberField AutoNumber secara otomatis memberi setiap record nomornya sendiri, biasanya mulai dari 14 bytes
Date/TimeGunakan untuk date and time8 bytes
Yes/NoField logika dapat ditampilkan sebagai Yes/No, True/False, atau On/Off. Dalam kode, gunakan konstanta True dan False (setara dengan -1 dan 0).

Catatan: Nilai nol tidak diperbolehkan di field Yes/No
1 bit
Ole ObjectDapat menyimpan gambar, audio, video atau BLOB lainnya (Binary Large OBjects)hingga 1GB
HyperlinkBerisi link ke file lain, termasuk halaman web 
Lookup WizardBiarkan kamu mengetik daftar opsi, yang kemudian dapat dipilih dari daftar drop-down4 bytes

You may also like