Arti atribut tipe data MySQL
Atribut tipe data adalah aturan yang kami terapkan pada kolom. MySQL memiliki banyak atribut tipe data, namun pada tutorial ini hanya membahas atribut tipe data saja, namun pada tutorial ini hanya membahas atribut tipe data yang paling umum digunakan yaitu. AUTO_INCREMENT, BINARY, DEFAULT, NOT NULL, NULL, SIGNED, UNSIGNED, dan ZEROFILL
Atribut AUTO_INCREMENT
Atribut AUTO_INCREMENT digunakan untuk tipe data numerik (biasanya tipe data INT), dimana jika kita mengatur kolom dengan atribut AUTO_INCREMENT, maka setiap kali kita menginput data, nilai pada kolom ini akan bertambah 1. Nilai pada kolom juga akan bertambah jika kita input dengan nilai NULL atau 0
Dalam sebuah tabel, hanya 1 kolom yang dapat dikenakan atribut AUTO_INCREMENT. Setiap kolom AUTO_INCREMENT juga akan diberi atribut NOT NULL secara otomatis. Kolom AUTO_INCREMENT juga harus digunakan sebagai KEY (biasanya PRIMARY KEY)
atribut DEFAULT
Atribut BINARY digunakan untuk tipe data karakter, seperti CHAR dan VARCHAR. Tipe data CHAR, VARCHAR dan TEXT tidak membedakan huruf besar dan kecil (case-insensitive), namun jika diberi atribut BINARY, maka kolom akan membedakan huruf besar dan kecil (case-sensitive)
atribut DEFAULT
Atribut DEFAULT dapat digunakan pada hampir semua tipe data. Fungsinya untuk memberikan nilai default pada kolom jika tidak ada data yang dimasukkan ke kolom
BUKAN atribut NULL
Atribut NOT NULL dapat digunakan pada hampir semua tipe data, fungsinya untuk memastikan nilai pada kolom tidak boleh kosong. Jika kita menginput data, tetapi tidak memberikan nilai pada kolom tersebut, maka akan menghasilkan error pada MySQL
atribut NULL
Atribut NULL adalah kebalikan dari NOT NULL, dimana jika sebuah kolom didefinisikan dengan NULL, maka kolom tersebut tidak boleh berisi nilai
NULL adalah istilah atau tipe data khusus dalam pemrograman yang menyatakan 'tidak ada nilai', NULL tidak sama dengan 0, atau ''(string kosong). Operasi matematika dengan NULL akan menghasilkan nilai NULL
atribut DITANDATANGANI
Atribut SIGNED digunakan untuk tipe data numerik. Berlawanan dengan atribut UNSIGNED, dimana atribut ini berfungsi agar kolom dapat menampung nilai negatif. Atribut SIGNED biasanya disertakan hanya untuk mengkonfirmasi bahwa kolom tersebut mendukung nilai negatif, karena MySQL sendiri telah memberikan nilai negatif secara default untuk semua tipe numerik
Atribut UNSIGNED
Atribut UNSIGNED digunakan untuk tipe data numerik, tetapi propertinya berbeda untuk tipe data INT, DECIMAL dan FLOAT. Untuk tipe data INT, atribut UNSIGNED berfungsi mengorbankan nilai negatif, untuk mendapatkan rentang nilai positif yang lebih tinggi. Namun untuk tipe data DECIMAL dan FLOAT, atribut UNSIGNED hanya akan menghilangkan nilai negatif saja, tanpa menambah range data
atribut ZEROFILL
Atribut ZEROFILL digunakan untuk tipe data numerik, yang berfungsi untuk menampilkan format data yang akan diisi nilai 0 disebelah kanan data. Jika kita menggunakan atribut ZEROFILL untuk sebuah kolom, kolom tersebut secara otomatis diberi atribut UNSIGNED
Contoh Query Untuk penggunaan atribut
Kita dapat melihat bahwa jika kita memberikan nilai NULL pada kolom nama yang telah diberi atribut NOT NULL, MySQL akan memberikan error. Juga pada kolom no, dimana kita loncat dengan memberikan nilai 1, namun untuk kolom selanjutnya tetap akan ditambah 1, karena terkena atribut AUTO_INCREMENT.
Setelah membahas atribut tipe data, pada tutorial selanjutnya kita akan membahas cara mengubah tabel dengan query ALTER TABLE
Pada tutorial sebelumnya kita telah mempelajari cara membuat dan menghapus database. Sekarang kita lanjutkan dengan memahami tipe data numerik di MySQL
MySQL memiliki banyak tipe data, pada umumnya tipe data MySQL dibagi menjadi
- Tipe data numerik
- Tipe data string
- Tipe data tanggal dan waktu
Saat membuat tabel di database untuk menampung sejumlah data tertentu, pertama-tama tentukan tipe data dari setiap kolom
Misalkan kita akan membuat tabel biodata siswa, maka pada biodata siswa tersebut terdapat kolom nama, nama, tanggal lahir, alamat, dan nomor telepon. Dari data tersebut kita tentukan tipe datanya satu per satu yaitu untuk nim karena nim semua angka, lalu kita beri tipe data numeric (khusus untuk angka saja), lalu untuk name karena nama hanya terdiri dari huruf maka kita beri string tipe data (khusus untuk huruf saja) dan untuk tanggal lahir kita beri tipe data tanggal
Pada tutorial kali ini kita akan membahas terlebih dahulu tentang tipe data numerik
Secara umum tipe data numerik pada MySQL terbagi menjadi dua yaitu
- Tipe data bilangan bulat
- Tipe data floating point/fixed point (jumlah pecahan)
Tipe Data Bilangan Bulat
Integer adalah tipe data yang mengakomodasi bilangan bulat positif dan negatif
Integer juga memiliki beberapa tipe data yaitu
- TINYINT (bilangan bulat sangat kecil)
- SMALLINT (bilangan bulat kecil)
- MEDIUMINT (bilangan bulat sedang)
- INT (media bilangan bulat)
- BIGINT (bilangan bulat besar)
Kelima jenis data di atas, dari yang terkecil hingga terbesar, digunakan sesuai dengan kebutuhan masing-masing individu. Perbedaannya terletak pada jangkauan data dan jumlah memori yang digunakan dari masing-masing jenis data itu sendiri
Misalkan kita memasukkan nim dengan jumlah total sembilan digit, maka gunakan tipe data INT. Begitu juga jika Anda memasukkan data ID siswa untuk kelas yang hanya 30 orang, maka gunakan tipe data TINYINT
Format kueri untuk menulis tipe data integer adalah
INT [(M)] [TIDAK DITANDATANGANI] [ZEROFILL]
Nilai M adalah jumlah digit yang ditetapkan untuk menampilkan data
Unsigned diatur untuk mendapatkan rentang nilai positif yang lebih tinggi daripada yang ditandatangani. Jika unsigned tidak ditentukan, maka secara default tipe data integer ditandatangani
Zerofill adalah nilai numerik 0 yang diisi di sebelah kiri nilai M. misalkan kita set INT (5), tapi data yang diinput adalah (123) yang berarti hanya 3 digit. Kemudian zerofill akan menambahkan dua 0 di sebelah kiri nilai M untuk mengisi digit kosong. dari awal (123) ke (00123)
Kami bebas menggunakan unsigned dan zerofill karena bersifat opsional. Namun kembali disesuaikan dengan kebutuhan
TypeLengthdalam Nilai Minimum Bytes
(Tanda Tangan) Nilai Maksimum
(Tanda Tangan) Nilai Minimum
(Tidak ditandatangani) Nilai Maksimum
(Tidak ditandatangani)TINYINT1-1281270255SMALLINT2-3276832767065535MEDIUMINT3-83886088388607 hingga 016777215INT4-2147483648214748364704294967295BIGINT8-9223372036880472836
547758070184467440737
09551615
Keterangan
- Ketik (bilangan bulat)
- Panjang dalam byte (memori yang digunakan) misalnya tinyint menyimpan data 1 byte per input data, jika ada 10 input data maka kalikan saja. Semakin banyak data yang dimasukkan, semakin banyak memori yang digunakan
- Signed (mengakomodasi angka positif dan negatif)
- Tidak ditandatangani (memegang angka positif)
Catatan. Bagi pemula mungkin akan bingung dengan angka-angka pada tabel di atas. Namun, sedikit demi sedikit Anda akan mengerti ketika Anda mempraktekkan beberapa contoh kasus pembuatan database
Tipe Data Titik Tetap
Tipe data titik tetap adalah tipe data bilangan pecahan (DECIMAL) dimana jumlah bilangan pecahan di belakang koma sudah ditentukan dari awal, sehingga jumlah digitnya tetap.
Format kueri untuk menulis tipe data DECIMAL adalah
DECIMAL [(M, D)] [UNSIGNED] [ZEROFILL]
M adalah jumlah digit dan D adalah jumlah digit di belakang koma
Nilai maksimum M adalah 65 dan nilai maksimum D adalah 30 dengan syarat nilai D tidak boleh lebih besar dari nilai M
Jika kita tidak mendefinisikan nilai M dan D maka secara default nilai M adalah 10 dan nilai D adalah 0
Tipe data desimal cocok untuk menyimpan nilai uang
DEKLARASI SKALA DECIMAL (4, 1)-999,9 hingga 999,9DECIMAL (6, 2)-9999,99 hingga 9999,99DECIMAL (3, 2)-9,99 hingga 9,99DECIMAL (8, 2)-999999, 99 hingga 999999,99Tipe Data Titik Mengambang
MySQL membagi dua jenis data floating point yaitu FLOAT dan DOUBLE. Perbedaan antara keduanya adalah FLOAT menggunakan presisi tunggal dan DOUBLE menggunakan presisi ganda
Jika fixed point jumlah digit di belakang koma tetap, maka floating point bisa berubah