GNU/Linux >> Belajar Linux >  >> Cent OS

Tipe Data MySQL

Pendahuluan

Tipe data MySQL penting untuk dipahami sebelum Anda mulai membuat dan bekerja dengan database MySQL. Jika Anda menetapkan setiap kolom dengan benar, Anda memastikan bahwa database dioptimalkan dan data disimpan dengan aman.

Dalam tutorial ini Anda akan belajar tentang berbagai tipe data MySQL.

Apa itu Tipe Data di MySQL?

Nama dan tipe data mendefinisikan setiap kolom dalam tabel database. Tipe data yang ditentukan memberi tahu MySQL jenis nilai apa yang akan disimpan, berapa banyak ruang yang dibutuhkan, dan jenis operasi apa yang dapat dilakukan dengan jenis data ini.

Tipe Data MySQL

Ada banyak tipe data berbeda yang dapat Anda simpan dalam tabel MySQL.

Mereka dikelompokkan ke dalam lima kategori utama:

  1. Tipe data numerik
  2. Jenis data tanggal dan waktu
  3. Tipe data string
  4. Tipe data spasial
  5. Tipe data JSON

Baca terus untuk mempelajari lebih lanjut tentang setiap grup dan lihat tipe data mana yang mereka sertakan.

Tipe Data Numerik

Saat menyimpan angka dalam kolom database, gunakan salah satu tipe data numerik. MySQL mendukung tipe data numerik yang tepat dan perkiraan.

Kategori numerik dibagi lagi menjadi kelompok-kelompok berikut:

  • Tipe data bilangan bulat
  • Tipe data titik-mengambang
  • Tipe data titik tetap
  • Tipe data nilai bit

Jenis Bilangan Bulat

Jenis data bilangan bulat digunakan untuk bilangan bulat (bilangan bulat). Mereka termasuk nilai positif dan negatif. Namun, mereka tidak menangani bilangan pecahan.

Oleh karena itu, angka seperti 30 dan -5435 dapat disimpan sebagai tipe data integer, sedangkan 5,3 atau 1/5 tidak dapat.

Jenis bilangan bulat ditandatangani atau tidak ditandatangani. Mereka dibagi lagi berdasarkan ukurannya, berbeda berdasarkan panjang dan jangkauannya.

Byte Rentang (tidak ditandatangani) Rentang (ditandatangani)
TINYINT 1 dari 0 hingga 255 dari -128 hingga 127
KECIL 2 dari 0 hingga 65535 dari -32768 hingga 32767
MEDIUMINT 3 dari 0 hingga 16777215 dari -8388608 hingga 8388607
INT 4 dari 0 hingga 4294967295 dari -2147483648 hingga 2147483647
BESAR 8 dari 0 hingga 18446744073709551615 dari -9223372036854775808 hingga 9223372036854775807

TINYINT adalah bilangan bulat yang sangat kecil yang menggunakan 1 byte penyimpanan. Terdiri dari hingga 4 digit . Rentang unsigned-nya adalah dari 0 ke 255 . Jika ditandatangani, ia memiliki rentang dari -128 ke 127 .

SMALLINT adalah bilangan bulat kecil yang menggunakan 2 byte penyimpanan. Terdiri dari hingga 5 digit . Rentang unsigned-nya adalah dari 0 ke 65535 . Saat ditandatangani, ia memiliki rentang dari -32768 ke 32767 .

MEDIUMINT adalah bilangan bulat berukuran sedang yang menggunakan 3 byte penyimpanan. Ini memiliki hingga 9 digit . Jika tidak ditandatangani, ia memiliki rentang dari 0 ke 16777215 . Ditandatangani, nilai minimumnya adalah -8388608 , sedangkan nilai maksimumnya adalah 8388607 .

INT adalah bilangan bulat yang menggunakan 4 byte penyimpanan. Ini menggunakan hingga 11 digit . Saat tidak ditandatangani, rentangnya dari 0 ke 4294967295 . Jika ditandatangani, ia memiliki rentang dari -2147483648 ke 2147483647 .

BIGINT adalah bilangan bulat besar yang menggunakan 8 byte penyimpanan. Ini memiliki hingga 20 digit . Nilai minimum yang ditandatangani adalah 0 , sedangkan nilai maksimum yang ditandatangani adalah 18446744073709551615 . Jika ditandatangani, ia memiliki rentang dari -9223372036854775808 ke 922337203685475807 .

Tipe Titik Mengambang

Tipe data numerik floating-point adalah bilangan rasional yang digunakan untuk mewakili nilai perkiraan. Gunakan tipe data floating-point untuk penghitungan presisi tinggi.

Jenis floating-point meliputi:

  • FLOAT mewakili nilai presisi tunggal yang menggunakan 4 byte dan sertakan hingga 6 atau 7 angka penting.
  • DOUBLE mewakili nilai presisi ganda yang menggunakan 8 byte dan sertakan hingga 15 atau 16 angka penting.

Sintaks dasar untuk mendefinisikan FLOAT /DOUBLE tipe datanya adalah FLOAT(M,D) /DOUBLE(M,D) .

M mewakili jumlah total digit, sedangkan D adalah jumlah desimal. Misalnya, nilai 5143,234 akan didefinisikan sebagai 7,3 karena memiliki total 7 digit dan 3 digit setelah koma.

Anda juga dapat menggunakan FLOAT(P) sintaks untuk menentukan tipe data titik-mengambang, di mana P menentukan presisi. Jika P memiliki nilai dari 0 hingga 23 , ini adalah kolom presisi tunggal. Jika presisi antara 24 dan 53 , ini adalah kolom presisi ganda.

Byte Rentang (tidak ditandatangani) Rentang (ditandatangani)
FLOAT 4 dari 1.175494351E-38 hingga 3.402823466E+38 dari -3.402823466E+38 hingga -1.175494351E-38
GANDA 8 dari 0 dan 2.22507385850720 14E- 308 hingga 1.797693134862315 7E+ 308 dari -1.7976931348623 157E+ 308 hingga -2.22507385850720 14E- 308

Jenis Titik Tetap

Untuk menyimpan nilai numerik yang tepat, gunakan tipe data titik tetap – DECIMAL . Karena mewakili angka pasti, tipe data ini sebagian besar digunakan untuk data yang bergantung pada nilai presisi (seperti data moneter).

Sintaks dasarnya adalah DECIMAL(P,D) , di mana P singkatan dari presisi (jumlah digit signifikan) dan D singkatan dari skala (jumlah digit setelah titik desimal).

Jumlah digit maksimum untuk presisi adalah 65 , sedangkan nilai maksimum untuk skala adalah 30 .

Jika Anda tidak menentukan presisi dan skala, kolom akan menggunakan nilai default. Secara default, nilai untuk P,D adalah 10,0 .

Jenis Nilai Bit

BIT tipe data menyimpan nilai biner. Saat membuat kolom yang akan menyimpan nilai tersebut, Anda menentukan jumlah nilai bit yang berkisar dari 1 hingga 64 .

Sintaks untuk tipe data MySQL ini adalah BIT(N) . Jika Anda tidak menentukan N , nilai defaultnya adalah 1 .

Jenis Data Tanggal dan Waktu

Tanggal dan waktu adalah tipe data yang umum digunakan. Baik Anda menyimpan waktu entri data, tanggal lahir, atau stempel waktu saat ini, Anda menggunakan salah satu kolom berikut.

Jenis data tanggal dan waktu meliputi:

  • DATETIME , TIMESTAMP
  • DATE
  • TIME
  • YEAR

DATETIME, TIMESTAMP

Untuk menyimpan nilai tanggal dan waktu, gunakan DATETIME atau TIMESTAMP . Kedua tipe data menyimpan informasi di YYYY-MM-DD HH:MM:SS format. Ini mencakup y telinga, m seterusnya, d ay, h kami, m inutes, dan s detik.

Perbedaan utama antara keduanya adalah jangkauannya:

  • DATETIME nilai berkisar dari 1000-01-01 00:00:00 ke 9999-12-31 23:59:59 .
  • TIMESTAMP nilai berkisar dari 1970-01-01 00:00:01 ke 2038-01-19 03:14:07 .

Anda dapat memasukkan pecahan detik untuk kedua opsi. Untuk melakukannya, tentukan presisi dengan mengikuti sintaks DATETIME(p) /TIMESTAMP(p) .

Misalnya, untuk menyimpan stempel waktu 22:53 pada 1 Maret 2021 , dengan tiga pecahan detik, tentukan tipe data TIMESTAMP(3) . Entri disimpan sebagai:2020-03-01 22:53:35.346 .

TANGGAL

DATE digunakan untuk menyimpan nilai tanggal dalam format YYYY-MM-DD (tahun, bulan, tanggal).

Jenis data mendukung rentang 1000-01-01 hingga 9999-12-31 .

WAKTU

TIME digunakan untuk menyimpan nilai waktu sebagai HH-MM-SS (jam, menit, detik) atau HHH-MM-SS . Entri yang menunjukkan waktu berlalu atau perbedaan waktu disimpan dan diambil dalam format yang lebih panjang (jika memerlukan lebih banyak digit untuk jam).

Jenis data mendukung rentang 1000-01-01 hingga 9999-12-31 .

TAHUN

YEAR menyimpan nilai tahun dalam format YYYY . Ini mendukung nilai dalam rentang 1901-2155 .

Sementara versi yang lebih lama dari MySQL 5.7.5 mendukung entri 2 dan 4 digit untuk YEAR , tidak ada dukungan 2 digit sejak rilis 5.7.5.

Tipe Data String

Saat menyimpan string data, gunakan salah satu tipe data string. Mereka dapat berisi huruf, angka, gambar, atau file.

Dengan demikian, ada beberapa tipe data string yang berbeda:

  • CHAR dan VARCHAR
  • BINARY dan VARBINARY
  • BLOB dan TEXT
  • ENUM
  • SET

CHAR dan VARCHAR

CHAR dan VARCHAR adalah tipe data yang digunakan untuk menyimpan string non-biner. Perbedaan utama antara keduanya adalah cara mereka menyimpan data.

CHAR menyimpan string dengan panjang tetap (hingga 255 karakter). Saat membuat CHAR kolom, Anda menentukan panjangnya menggunakan CHAR(N) sintaksis. N adalah jumlah karakter yang ingin Anda ambil. Jika Anda tidak menentukan panjangnya, ini menggunakan nilai default 1 .

Nilai-nilai ini disimpan dengan bantalan kanan dengan panjang yang ditentukan. Oleh karena itu, jika Anda menyiapkan CHAR(5) kolom dan menyimpan entri tiga karakter ke dalamnya, masih membutuhkan lima karakter.

VARCHAR menyimpan string dengan panjang variabel. Meskipun panjangnya harus ditentukan saat membuat kolom, nilainya tidak diisi dengan benar. Mereka memiliki batas maksimum, tetapi panjangnya tidak tetap dan bervariasi tergantung pada data.

Sebelumnya, rentang entri adalah dari 0 hingga 255 . Setelah rilis MySQL 5.0.3 , VARCHAR rentang hingga 65.535 karakter .

BINARY dan VARBINARY

BINARY dan VARBINARY tipe data mirip dengan CHAR yang disebutkan sebelumnya dan VARCHAR . Perbedaan utama antara kedua grup ini adalah BINARY dan VARBINARY digunakan untuk string biner.

BINARY digunakan untuk string biner dengan panjang tetap, hingga 255 byte . Sintaks utama untuk mendefinisikan kolom seperti itu adalah BINARY(N) , di mana N adalah jumlah byte.

VARBINARY menyimpan string biner dengan panjang variabel. MySQL versi 5.0.3 dan yang lebih baru menyimpan hingga 65 535 byte .

BLOB dan TEKS

Keduanya BLOB dan TEXT digunakan untuk menyimpan data dalam jumlah besar.

BLOB menangani B inary L arge O objek (yaitu, kumpulan besar data biner seperti gambar, audio, atau file PDF).

Ada 4 jenis tipe data BLOB untuk digunakan, tergantung pada ukuran yang dibutuhkan data Anda:

  • TINYBLOB (0 – 255; 255 byte)
  • BLOB (0 – 65.535; 16 KB)
  • MEDIUMBLOB (0 – 16.777.215; 16 MB)
  • LONGBLOB (0 – 4.294.967.295; 4 GB)

TEXT tipe data untuk menyimpan string teks yang lebih panjang. Menurut jumlah data yang dibutuhkan, ada:

  • TINYTEXT (0 – 255; 255 byte)
  • TEXT (0 – 65.535; 16 KB)
  • MEDIUMTEXT (0 – 16.777.215; 16 MB)
  • LONGTEXT (0 – 4.294.967.295; 4 GB)

ENUM

ENUM tipe data digunakan untuk menyimpan salah satu nilai yang mungkin telah ditentukan sebelumnya dalam kolom. Kolom dapat memiliki hingga 65535 nilai yang berbeda.

Saat membuat ENUM kolom tabel di MySQL, Anda menentukan daftar semua nilai yang diizinkan.

SETEL

Seperti ENUM , SET tipe data memiliki daftar nilai yang mungkin disimpan di kolom.

Perbedaan utama antara keduanya adalah SET memungkinkan entri memiliki lebih dari satu nilai.

Misalnya, jika kolom didefinisikan sebagai SET('Red','Orange','Yellow','Green') dan memiliki empat kemungkinan nilai dalam daftar, satu entri dapat memiliki nilai 'Merah' , sementara yang lain dapat memiliki nilai 'Merah','Kuning' .

Jumlah maksimum nilai yang diizinkan adalah 64 .

Tipe Data Spasial

Saat menyimpan data spasial, Anda dapat menggunakan salah satu dari banyak tipe data spasial berbeda yang didukung MySQL. Mereka digunakan untuk mewakili informasi tentang bentuk geometris dan lokasi fisik.

Kita dapat membaginya menjadi dua kelompok:

  • Nilai geometri tunggal
  • Koleksi nilai

Nilai Geometri Tunggal

Tipe data geometri tunggal mencakup GEOMETRY , POINT , LINESTRING , dan POLYGON .

  • GEOMETRY menyimpan semua jenis nilai geometri/spasial.
  • POINT digunakan untuk satu nilai poin.
  • LINESTRING menyimpan kumpulan beberapa titik yang membentuk garis.
  • POLYGON adalah tipe data yang digunakan untuk menyimpan kumpulan beberapa titik yang membentuk permukaan poligonal.

Koleksi Nilai

Kumpulan tipe data nilai termasuk GEOMETRYCOLLECTION , MULTIPOINT , MULTILINE , dan MULTIPOLYGON .

  • GEOMETRYCOLLECTION menyimpan koleksi nilai geometri/spasial.
  • MULTIPOINT digunakan untuk menyimpan kumpulan beberapa nilai titik.
  • MULTILINE menyimpan kumpulan beberapa baris.
  • MULTIPOLYGON digunakan untuk kumpulan beberapa poligon.

Jenis Data JSON

Sejak versi 5.7.8, MySQL menyertakan dukungan untuk JSON native asli tipe data, memungkinkan pengguna untuk menyimpan dan mengelola dokumen JSON melalui database.

MySQL memastikan bahwa dokumen JSON valid dan menyimpannya ke dalam kolom JSON.


Cent OS
  1. MySQL – Mengonversi ke Data Per Tabel untuk InnoDB

  2. meningkatkan kecepatan impor mysql

  3. Komit data dalam wadah mysql

  1. Tampilkan tipe database MySQL di bash

  2. Bagaimana Memindahkan Direktori Data Mysql?

  3. Pencadangan MySQL 1.1

  1. Tipe Data Cassandra:Built-in, Collection, &User-defined

  2. Tidak dapat menampilkan data MySQL ke file

  3. Mengaktifkan LOAD DATA LOCAL INFILE di mysql