Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tipe data MySQL:Ketahui yang digunakan dan caranya

Saat membuat tabel dalam database, tabel harus memiliki nama dan tipe data. Tipe data kolom mendefinisikan nilai yang dipegang kolom, seperti bilangan bulat, uang, biner, karakter, tanggal, dan waktu. Oleh karena itu, tugas developer untuk menentukan tipe data mana yang akan disimpan di setiap kolom saat membuat database dan tabel.

Secara sederhana, tipe data adalah pedoman yang membantu SQL dalam memahami tipe data apa yang diperlukan di dalam kolom. Ini juga efisien dalam mengidentifikasi bagaimana SQL berinteraksi dengan data yang disimpan.

Hal yang perlu diperhatikan adalah bahwa tipe data mungkin berisi nama yang berbeda di database yang berbeda, dan dalam kasus di mana namanya sama, aspek dan detail lain seperti ukuran akan berbeda. Oleh karena itu, Anda disarankan untuk selalu merujuk ke dokumentasi setiap kali Anda menemukan kasus serupa.

Berikut ciri-ciri yang dapat mengidentifikasi tipe data di MySQL:

  • Nilai tipe data yang dapat diindeks dan yang tidak dapat diindeks
  • Jenis nilai yang diwakilinya
  • Ruang yang ditempati, baik nilainya dengan panjang variabel atau panjang tetap
  • Bagaimana MySQL dibandingkan dengan nilai yang berbeda dari tipe data tertentu

Sebelum kita mendalami dan membahas tipe data MySQL, penting untuk mempelajari dan memahami konvensi yang digunakan oleh deskripsi tipe data seperti yang disorot di bawah ini:

  • (L ):Untuk tipe integer, ini menunjukkan lebar maksimum yang dapat ditampilkan oleh tipe data.
    :Ini menunjukkan jumlah digit yang dapat disimpan untuk tipe fixed-point dan tipe floating-point.
    :Untuk tipe string, ini menunjukkan panjang maksimum

Catatan:S nilai maksimum yang diizinkan tergantung pada tipe data

• (D ):Hanya berlaku untuk tipe titik tetap dan tipe titik mengambang. Ini menunjukkan skala (jumlah digit yang mengikuti titik desimal). Nilai maksimum yang mungkin adalah 10, sementara itu tidak boleh lebih signifikan dari M -2

• Tanda kurung siku ([dan]) menunjukkan jenis definisi bagian opsional.

f sp: konvensi ini berlaku untuk cap waktu, DateTime, dan tipe waktu. Ini mewakili presisi pecahan detik (jumlah digit yang mengikuti titik desimal untuk pecahan detik). fsp . yang diberikan nilai harus berkisar dari 0-6. Nilai 0 menandakan bahwa tidak ada bagian pecahan yang ada dalam nilai yang diberikan. Namun, dalam kasus di mana nilai dihilangkan, maka presisi dilambangkan sebagai 0.

Di MySQL, ada tiga kategori utama tipe data yang berisi subkategori. Tipe data utama adalah:

  1. Tipe data string
  2. Tipe data Tanggal dan Waktu.
  3. Tipe data numerik

Ada tipe data lain yang didukung oleh MySQL, seperti tipe data Spasial dan tipe data JSON.

Artikel ini akan mencakup secara komprehensif semua tipe data yang disebutkan di atas. Oleh karena itu untuk mendapatkan pemahaman yang jelas tentang tipe data, ikuti artikel ini.

Tipe Data String

Tipe data string terutama digunakan untuk menyimpan data biner dan teks biasa seperti gambar dan file. Selain itu, MYSQL memiliki kemampuan untuk membandingkan dan mencari nilai string berdasarkan pola yang cocok, seperti ekspresi reguler dan operator.

Di bawah ini adalah ilustrasi detail dari semua tipe data string yang didukung MySQL:

CHAR ( ukuran ): Ini adalah panjang tetap dari sebuah string. Itu bisa berisi huruf, karakter khusus, atau angka. Parameter ukuran menunjukkan panjang kolom dalam karakter, dan dapat berkisar dari 0-255. Ukuran defaultnya adalah 1.

VARCHAR ( ukuran ): Ini adalah panjang variabel string. Ini berisi angka, karakter khusus, atau huruf. Parameter ukuran menunjukkan panjang maksimum kolom dalam karakter, dan dapat berkisar dari 0-65535.

BINARY ( ukuran ): Ini sama dengan CHAR(), hanya menyimpan string byte biner. Parameter ukuran menentukan panjang kolom dalam byte. Standarnya adalah 1

VARBINARY ( ukuran ): Ini sama dengan VARCHAR (), hanya saja ia menyimpan string byte biner. Parameter ukuran menentukan panjang maksimum kolom dalam byte.

TINYTEXT: Menampung string yang berisi panjang maksimum 255 karakter.

TEKS ( ukuran ): Menampung string yang berisi panjang maksimum 65.535 byte.

BLOB ( ukuran ): Untuk Binary Large Objects (BLOBs). Mereka menyimpan hingga 65.535 byte data.

TINYBLOB: Untuk Binary Large Objects (BLOBs). Ini berisi panjang maksimal 255 byte.

LONGLOB: Untuk Binary Large Objects (BLOBs). Mereka menyimpan hingga 4.294.967.295 byte data.

TEKS PANJANG: Memegang string yang berisi panjang maksimum 4.294.967.295 karakter.

MEDIUMTEXT: Menampung string yang berisi panjang maksimum 16.777.215 karakter.

MEDIUMBLOB: Untuk Binary Large Objects (BLOBs). Mereka menyimpan hingga 16.777.215 byte data.

SETEL ( val1, val2, val3, … ): Ini adalah objek string yang berisi lebih dari satu nilai (string yang berisi 0 atau lebih nilai). Mereka dipilih dari daftar kemungkinan nilai seperti ENUM. Namun, dalam daftar SET, Anda hanya dapat mencantumkan hingga 64 nilai.

ENUM ( val1, val2, val3, … ): Ini adalah objek string yang hanya dapat berisi satu nilai yang dipilih dari daftar semua nilai yang mungkin. Dalam daftar ENUM, Anda dapat mencantumkan hingga 65535 nilai. Jika nilai yang tidak ada dalam daftar dimasukkan, maka nilai yang dimasukkan akan kosong. Juga, penting untuk dicatat bahwa nilai diurutkan tergantung pada urutan yang dimasukkan pengguna.

Tipe data Tanggal dan Waktu

Tipe data tanggal dan waktu menentukan nilai temporal seperti DateTime, timestamp, tahun, waktu, dan tanggal. Masing-masing tipe temporal yang disebutkan memiliki nilai yang termasuk nol. Setiap kali nilai yang tidak valid dimasukkan, MySQL tidak dapat mewakilinya. Oleh karena itu, nol dipilih.

Di bawah ini adalah ilustrasi lengkap dari tipe data tanggal dan waktu yang didukung oleh MySQL:

TANGGAL: Format tanggal standar masing-masing adalah tahun, bulan, dan hari (YYYY-MM-DD), dan rentang yang didukung adalah '1000-01-01' hingga '9999-12-31'.

DATETIME ( fsp ): Ini adalah kombinasi dari tanggal dan waktu. Format standar, dalam hal ini, adalah tahun, bulan, hari, jam, menit, dan detik masing-masing (YYYY-MM-DD jj:mm:ss)

Catatan: Menambahkan DEFAULT dan ON UPDATE dalam kolom sangat penting dalam memulai inisialisasi otomatis, serta memperbarui waktu dan tanggal saat ini.

TIMESTAMP ( fsp ): Sejak zaman Unix, nilai stempel waktu disimpan sebagai jumlah detik seperti ('1970-01-01 00.00;00' UTC). Format standar adalah tahun, bulan, hari, jam, menit, dan detik masing-masing (YYYY-MM-DD jj:mm:ss) sedangkan rentang yang didukung adalah antara '('1970-01-01 00;00;01' UTC to ('2038-01-09 03;14;07' UTC. DEFAULT_CURRENT_TIMESTAMP dan ON UPDATE CURRENT_TIMESTAMP sangat penting untuk menginisialisasi dan memperbarui tanggal dan waktu saat ini secara otomatis.

WAKTU ( fsp ): Format waktu standar yang didukung adalah jam, menit, detik, masing-masing (jj:mm:dtk), dan rentang yang didukung adalah '-838:59:59' hingga '838:59:59'.

TAHUN: Satu tahun direpresentasikan dalam format empat digit—nilai yang diperbolehkan dalam format empat digit berkisar dari 1902 hingga 2155 dan 0000.

Catatan: Versi terbaru MySQL (8.0) tidak mendukung format dua digit tahun.

Tipe Data Numerik

Tipe data numerik mencakup semua tipe data numerik yang tepat seperti integer, desimal, dan numerik. Ini juga berisi perkiraan tipe data numerik seperti float, double, double precision, dan real. Tipe data numerik menyimpan nilai bit karena mendukung tipe data BIT. Biasanya, tipe data numerik di MySQL dibagi menjadi dua kategori:tipe data yang ditandatangani dan tipe data yang tidak ditandatangani; namun, ini merupakan pengecualian untuk tipe data bit.

Di bawah ini adalah ilustrasi rinci yang berisi semua tipe data numerik yang didukung oleh MySQL dan deskripsinya:

BIT ( ukuran ): Ini adalah tipe nilai bit dimana jumlah bit per nilai dilambangkan dengan ukuran . Parameter ukuran memiliki kemampuan untuk menyimpan nilai dari 1 hingga 64, dan nilai default untuk ukuran adalah 1.

TINYINT ( ukuran ): Ini adalah bilangan bulat yang sangat kecil yang rentang bertandanya berkisar antara -128 hingga 127 sedangkan rentang tak bertandanya berkisar dari 0 hingga 255. Parameter size menunjukkan lebar maksimum yang akan ditampilkan, yaitu sekitar 255.

BOOLEAN: Ini sama dengan BOOL

BOOL: Dalam BOOL, nilai bukan nol dianggap benar. Pada saat yang sama, nilai Nol dianggap salah.

INT ( ukuran ): Ini adalah bilangan bulat menengah yang rentang bertandanya berkisar antara -2147483648 hingga 2147483647, sedangkan rentang tak bertanda berkisar dari 0 hingga 4294967295. Parameter size menentukan lebar maksimum yang akan ditampilkan, yaitu sekitar 255.

SEDANG ( ukuran ): Ini juga merupakan bilangan bulat menengah yang rentang bertandanya berkisar antara -32768 hingga 32767 sedangkan rentang tak bertandanya berkisar dari 0 hingga 65535. Parameter size menentukan lebar maksimum yang akan ditampilkan, yaitu sekitar 255.

KECIL ( ukuran ): Ini adalah bilangan bulat kecil yang rentang bertandanya antara -32768 hingga 32767, sedangkan rentang tak bertanda antara 0 hingga 16777215. ukuran parameter, dalam hal ini, digunakan untuk menentukan lebar tampilan maksimum, yang kisarannya sekitar 255.

FLOAT ( ukuran, d ): Ini adalah angka floating-point yang jumlah digitnya dinyatakan dalam ukuran. d parameter membantu menentukan jumlah digit setelah titik desimal.

Catatan: parameter ini tidak digunakan lagi di MySQL versi 8.0.17. Oleh karena itu, tidak akan direproduksi di versi MySQL yang akan datang.

BINTANG ( ukuran ): Ini setara dengan INT (ukuran ).

FLOAT( p ): Ini adalah angka floating-point. P parameter digunakan untuk menentukan apakah FLOAT atau DOUBLE akan digunakan dalam tipe data yang dihasilkan. Ketika P -nilai berkisar dari 0 hingga 24, data tersebut dikenal sebagai FLOAT(). Sedangkan saat P -nilai berkisar antara 25 hingga 53, maka tipe data berubah menjadi GANDA ().

DES ( ukuran, d ): Ini setara dengan DECIMAL (ukuran, d )

GANDA ( ukuran, d ): Ini menunjukkan ukuran standar angka floating-point yang jumlah digitnya diberikan dalam ukuran. d parameter membantu menentukan jumlah digit setelah titik desimal.

DECIMAL ( ukuran, d ): Ini adalah bilangan titik tetap eksak yang jumlah digitnya ditentukan dalam bentuk ukuran . d parameter menentukan angka digit setelah titik desimal. ukuran maksimum angkanya adalah 65, sedangkan d jumlah maksimum adalah 30. Oleh karena itu, nilai default untuk d adalah 0, sedangkan nilai default untuk ukuran adalah 10.

Catatan: semua tipe numerik berisi opsi tambahan; ZEROFILL dan tidak ditandatangani. Jika opsi UNSIGNED ditambahkan, maka MySQL akan melarang nilai negatif di kolom. Di sisi lain, jika opsi ZEROFILL ditambahkan, MySQL akan secara otomatis menambahkan atribut UNSIGNED ke kolom tersebut.

Jenis Data Lainnya

Tipe data Boolean

Tipe integer terkecil TINYINT (1), digunakan untuk mewakili nilai Boolean di MySQL karena MySQL tidak berisi tipe data BOOL atau BOOLEAN bawaan. Oleh karena itu, saat bekerja dengan BOOL dan BOOLEAN, Anda harus menyamakannya dengan TINYINT (1).

Jenis Data Spasial

MySQL menyediakan dukungan untuk beberapa tipe data spasial yang memiliki berbagai macam nilai geografis dan geometris, seperti yang ditunjukkan di bawah ini:

GEOMETRI: Ini adalah kumpulan atau titik yang dapat menyimpan nilai spasial jenis apa pun selama mereka memiliki lokasi.

POLIGON: Ini adalah permukaan planar yang diwakili oleh geometri multisisi. Ini dapat didefinisikan dengan nol atau hanya satu batas eksterior dan lebih banyak interior.

MULTILINESTRING: Ini adalah geometri multi-kurva yang berisi kumpulan nilai LINESTRING.

MULTIPOLYGON: Ini adalah objek multi-permukaan yang diwakili oleh kumpulan beberapa elemen poligon, dan ini adalah geometri dua dimensi

POIN: Ini adalah titik atau pasangan yang memuat koordinat X dan Y. Dapat dikatakan sebagai titik dalam geometri yang mewakili satu lokasi.

KOLEKSI GEOMETRI: Ini adalah kumpulan nilai GEOMETRI

LINESTRING: Ini adalah kurva yang berisi satu atau lebih nilai titik. Dalam kasus di mana string garis hanya berisi dua titik, maka itu berarti mewakili sebuah garis.

MULTIPOINT: Ini adalah kumpulan nilai POINT dimana titik tidak dapat diurutkan atau dihubungkan dengan cara apapun.

Tipe data JSON

MYSQL telah mendukung tipe data JSON asli sejak dimulainya versi 5.7.8, yang memungkinkan penyimpanan dan pengelolaan dokumen JSON lebih cepat dan efektif. Selain itu, tipe data JSON asli bertanggung jawab untuk menyediakan format penyimpanan yang optimal dan validasi otomatis dokumen JSON.

Kesimpulan

Artikel ini telah secara komprehensif membahas semua aspek mengenai tipe data MySQL yang akan membantu Anda dalam memahami tipe data mana yang harus digunakan dan bagaimana seharusnya digunakan. Kami yakin artikel ini juga akan membantu meningkatkan pengetahuan Anda tentang MySQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_ARRAY_INSERT() – Masukkan Nilai ke dalam Array JSON di MySQL

  2. Fungsi MySQL ATAN2() – Mengembalikan Tangen Busur dari 2 Nilai

  3. Bagaimana cara mendapatkan ID terakhir yang dimasukkan dari tabel MySQL di PHP?

  4. MySQL dan NoSQL:Bantu saya memilih yang tepat

  5. Pindah dari MySQL 5.7 ke MySQL 8.0 - Yang Harus Anda Ketahui