Tipe data kolom yang menentukan nilai apa yang dapat dimiliki kolom: integer, character, money, date and time, binary dan seterusnya.
Section Artikel
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!
Di MySQL ada tiga tipe data utama: string, numeric dan date and time.
Tipe Data | Deskripsi |
---|---|
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. |
TINYBLOB | Untuk BLOB (Binary Large OBjects). Panjang maksimal: 255 byte |
TINYTEXT | Menyimpan 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 |
MEDIUMTEXT | Menyimpan string dengan panjang maksimum 16.777.215 karakter |
MEDIUMBLOB | Untuk BLOB (Binary Large OBjects). Menyimpan hingga 16.777.215 byte data |
LONGTEXT | Menyimpan string dengan panjang maksimum 4.294.967.295 karakter |
LONGBLOB | Untuk 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 | Dekripsi |
---|---|
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) |
BOOL | Nol dianggap false, nilai bukan nol dianggap true. |
BOOLEAN | Sama 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(size, d) | 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(size, d) | Angka floating point berukuran normal. Jumlah total digit ditentukan dalam ukuran. Jumlah digit setelah koma desimal ditentukan dalam parameter d |
DOUBLE PRECISION(size, d) | 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(size, d) | |
DEC(size, d) | 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 | Deskripsi |
---|---|
DATE | Date. 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’ |
YEAR | Setahun 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 | Deskripsi | Ukuran Maksimal | Penyimpanan |
---|---|---|---|
char(n) | String karakter lebar tetap | 8,000 karakter | Lebar yang ditentukan |
varchar(n) | String karakter lebar variabel | 8,000 karakter | 2 bytes + jumlah karakter |
varchar(max) | String karakter lebar variabel | 1,073,741,824 karakter | 2 bytes + jumlah karakter |
text | String karakter lebar variabel | 2GB data teks | 4 bytes + jumlah karakter |
nchar | Lebar string Unicode tetap | 4,000 karakter | Lebar yang ditentukan x2 |
nvarchar | Lebar variabel string Unicode | 4,000 karakter | |
nvarchar(max) | Lebar variabel string Unicode | 536,870,912 karakter | |
ntext | Lebar variabel string Unicode | 2GB data teks | |
binary(n) | String biner lebar tetap | 8,000 bytes | |
varbinary | String biner lebar variabel | 8,000 bytes | |
varbinary(max) | String biner lebar variabel | 2GB | |
image | String biner lebar variabel | 2GB |
Tipe Data | Deskripsi | Penyimpanan |
---|---|---|
bit | Integer yang bisa 0, 1 atau NULL | |
tinyint | Mengizinkan bilangan bulat dari 0 hingga 255 | 1 byte |
smallint | Mengizinkan bilangan bulat antara -32.768 dan 32.767 | 2 bytes |
int | Mengizinkan bilangan bulat antara -2.147.483.648 dan 2.147.483.647 | 4 bytes |
bigint | Mengizinkan bilangan bulat antara -9.223.372.036.854.775.808 dan 9.223.372.036.854.775.807 | 8 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 |
smallmoney | Data moneter dari -214.748.3648 hingga 214.748.3647 | 4 bytes |
money | Data moneter dari -922,337,203,685,477.5808 menjadi 922,337,203,685,477.5807 | 8 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 |
real | Data angka presisi mengambang dari -3,40E + 38 hingga 3,40E + 38 | 4 bytes |
Tipe Data | Deskripsi | Penyimpanan |
---|---|---|
datetime | Mulai 1 Januari 1753 hingga 31 Desember 9999 dengan akurasi 3,33 milidetik | 8 bytes |
datetime2 | Dari 1 Januari 0001 hingga 31 Desember 9999 dengan akurasi 100 nanodetik | 6-8 bytes |
smalldatetime | Dari 1 Januari 1900 hingga 6 Juni 2079 dengan akurasi 1 menit | 4 bytes |
date | Simpan date saja. Mulai 1 Januari 0001 hingga 31 Desember 9999 | 3 bytes |
time | Simpan time hanya dengan akurasi 100 nanodetik | 3-5 bytes |
datetimeoffset | Sama seperti datetime2 dengan penambahan offset zona waktu | 8-10 bytes |
timestamp | Menyimpan 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 | Deskripsi |
---|---|
sql_variant | Menyimpan hingga 8.000 byte data dari berbagai tipe data, kecuali teks, ntext, dan timestamp |
uniqueidentifier | Menyimpan a globally unique identifier(GUID) |
xml | Menyimpan data berformat XML. Maksimal 2GB |
cursor | Menyimpan referensi ke kursor yang digunakan untuk operasi database |
table | Menyimpan kumpulan hasil untuk pemrosesan nanti |
Tipe Data | Deskripsi | Penyimpanan |
---|---|---|
Text | Gunakan untuk teks atau kombinasi teks dan angka. Maksimal 255 karakter | |
Memo | Memo digunakan untuk teks yang lebih banyak. Menyimpan hingga 65.536 karakter. Catatan: Kita tidak bisa mengurutkan bidang memo. Namun, mereka dapat dicari | |
Byte | Mengizinkan bilangan bulat dari 0 hingga 255 | 1 byte |
Integer | Mengizinkan bilangan bulat antara -32.768 dan 32.767 | 2 bytes |
Long | Mengizinkan bilangan bulat antara -2.147.483.648 dan 2.147.483.647 | 4 bytes |
Single | Floating-point presisi tunggal. Akan menangani sebagian besar desimal | 4 bytes |
Double | Floating-point presisi ganda. Akan menangani sebagian besar desimal | 8 bytes |
Currency | Gunakan 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 |
AutoNumber | Field AutoNumber secara otomatis memberi setiap record nomornya sendiri, biasanya mulai dari 1 | 4 bytes |
Date/Time | Gunakan untuk date and time | 8 bytes |
Yes/No | Field 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 Object | Dapat menyimpan gambar, audio, video atau BLOB lainnya (Binary Large OBjects) | hingga 1GB |
Hyperlink | Berisi link ke file lain, termasuk halaman web | |
Lookup Wizard | Biarkan kamu mengetik daftar opsi, yang kemudian dapat dipilih dari daftar drop-down | 4 bytes |