Mysql mengonversi bigint ke int

Pada artikel ini, Anda akan belajar tentang tipe data integer SIGNED dan UNSIGNED di MySQL. Artikel ini memberikan informasi tentang tipe integer dengan atribut ZEROFILL, AUTO_INCREMENT, dan display_width, serta menjelaskan contoh kapan dan bagaimana menggunakan tipe data integer

Mysql mengonversi bigint ke int

Isi

Apa itu MySQL INTEGER

Di MySQL, INTEGER (INT) adalah nilai numerik tanpa desimal. Ini mendefinisikan bilangan bulat yang dapat disimpan dalam bidang atau kolom. Selain itu, MySQL mendukung atribut display_width (misalnya, INT(1)) dan atribut ZEROFILL, yang secara otomatis menambahkan nol ke nilai tergantung pada lebar tampilan

Kecuali untuk tipe data standar INT dan SMALLINT, MySQL mendukung tipe data numerik TINYINT, MEDIUMINT, dan BIGINT yang dapat DITANDA dan DITANDATANGANI

Tabel menampilkan penyimpanan yang diizinkan dalam byte, nilai maksimum dan minimum dari tipe data integer SIGNED dan UNSIGNED

Lapeng (byte) Nilai minimum menandatangani nilai minimum unsignedmaMaxiMum nilai tandatangan nilainya unsignedTinyInt1-1280127255.83860888888607167777726462860808388888607167777777726264628628826

Biasanya, tipe data INTEGER digunakan untuk merepresentasikan ID, tanggal dan waktu (misalnya, DATETIME, DATE, YEAR, TIMESTAMP), atribut lebar dan tinggi, dll.

DITANDATANGANI vs TIDAK DITANDATANGANI

Seperti yang disebutkan sebelumnya, tipe data INTEGER dapat UNSIGNED dan SIGNED. UNSIGNED hanya dapat menyimpan nol dan angka positif dalam kolom. Jika nilai dalam kolom tidak pernah menggunakan angka negatif atau jika perlu menggunakan rentang angka atas yang lebih besar untuk kolom, Anda dapat menyetel UNSIGNED, yang pada gilirannya dapat menghasilkan indeks yang lebih cepat

SIGNED dapat mengizinkan angka nol, positif, dan negatif. Dengan nilai MySQL sebagai SIGNED, satu bit diambil untuk simbol tanda dibandingkan dengan yang tidak ditandatangani, ketika mereka tidak memiliki tanda sebelum nilai

Di MySQL, INT biasanya dipilih sebagai kunci utama dan dapat memiliki atribut AUTO_INCREMENT di kolom. Misalnya, saat Anda menambahkan NULL atau 0 ke atribut INT AUTO_INCREMENT, nilai kolom secara otomatis bertambah dan diubah ke nilai berurutan berikutnya yang dihasilkan dalam urutan menaik. Saat Anda menambahkan nilai bukan nol ke atribut INT AUTO_INCREMENT, nilai diterima dan urutannya disetel ulang yang berarti bahwa nilai yang dimasukkan mendahului nilai berurutan yang dihasilkan secara otomatis (i. e. nilai+1). Perlu diingat bahwa kolom dengan AUTO_INCREMENT tidak menyimpan nilai negatif, yang berarti kolom dengan AUTO_INCREMENT tidak ditandatangani secara default

Apa itu Tipe Data UNSIGNED INT?

Ketika kita mengatur kolom MySQL INT UNSIGNED, itu berarti nilai negatif tidak dapat dimasukkan ke dalam kolom ini. Nilai rentang maksimum dengan tipe data UNSIGNED adalah 4294967295, sedangkan minimumnya adalah 0. Jadi, jika Anda memasukkan nilai negatif atau yang melebihi nilai maksimum, Anda akan mendapatkan kesalahan karena itu akan menjadi nilai di luar jangkauan. Mari kita lihat contoh cara membuat tabel dengan kolom INT UNSIGNED. Karena ID biasanya merupakan tipe data numerik, kami akan menggunakannya sebagai kunci primer INT UNSIGNED

Buat tabel dengan contoh data UNSIGNED

Sebagai contoh demo, kami akan menggunakan dbForge Studio untuk MySQL

Untuk memulainya, buat tabel produk dengan total_amount sebagai tipe data INT UNSIGNED. Untuk ini, pada bilah alat standar, klik New SQL, ketik kueri, dan klik Jalankan atau tekan F5

Mysql mengonversi bigint ke int

Kemudian, sisipkan baris baru – VALUES – di tabel MySQL dan jalankan kueri

Mysql mengonversi bigint ke int

Untuk memeriksa hasilnya, ambil data. Untuk ini, di Database Explorer, klik kanan tabel produk dan pilih Retrieve Data. Seperti yang Anda lihat, nilainya ditambahkan

Mysql mengonversi bigint ke int

Dan sekarang, masukkan baris baru tetapi dengan angka negatif untuk kolom INT UNSIGNED dan jalankan kueri

INSERT INTO products (product_id, product_item, category, total_amount)
  VALUES (2, 'apples', 'fruits', -5);

Seperti yang Anda lihat, saat menjalankan kueri, kami mendapat kesalahan karena UNSIGNED tidak mendukung nilai negatif

Mysql mengonversi bigint ke int

Lebar Tampilan INTEGER. INT()

Di MySQL, Anda dapat mengatur lebar tampilan untuk tipe data INT. Lebar tampilan adalah angka dalam tanda kurung yang mewakili panjang keluaran, i. e. berapa banyak karakter yang harus ditampilkan di kolom saat mengambil data untuk kolom. Jadi, itu penting hanya saat menampilkan output

Pertimbangkan yang berikut ini. Jika Anda menetapkan 5 sebagai nilai untuk kolom int(1), int(6), int(10), dan int(11), semuanya akan menampilkan nilai yang sama – 5. Sebenarnya, lebar tampilan membuat perbedaan saat Anda menyetel atribut ZEROFILL. Dalam hal ini, hasilnya akan menampilkan masing-masing 5, 000005, 0000000005, dan 00000000005

Perhatikan bahwa lebar tampilan tidak memengaruhi rentang nilai maksimum dan minimum. Nilai minimum dan maksimum kolom dan ukuran penyimpanan (dalam byte) hanya bergantung pada tipe bilangan bulat yang Anda gunakan tetapi tidak pada panjangnya. Nilai int(1), int(6), int(10), dan int(11) akan memiliki nilai maksimum dalam rentang yang sama dengan 2147483647 (untuk INT yang ditandatangani) dan 4294967295 (untuk INT yang tidak ditandatangani)

MySQL INT dengan atribut ZEROFILL

Jika Anda perlu mengganti spasi dengan nol, Anda dapat menggunakan atribut ZEROFILL untuk kolom MySQL INT UNSIGNED. Misalnya, untuk kolom INT(3) ZEROFILL dengan nilai 1, hasil yang Anda ambil adalah 001

Catatan. Ingatlah bahwa UNSIGNED ditambahkan secara otomatis ke kolom numerik

Lihat contohnya. Kami membuat tabel MySQL ProductsNew yang memiliki kolom dengan atribut ZEROFILL

Dalam dokumen SQL baru, jalankan pernyataan CREATE berikut

CREATE TABLE ProductsNew(
  product_id INT AUTO_INCREMENT,
  product_item varchar(255) NOT NULL,
  category varchar(255) NOT NULL,
  weight int(2) ZEROFILL,
  review int(3) ZEROFILL,
  PRIMARY KEY (product_id)
);
_

Kemudian, sisipkan baris baru di tabel ProductsNew menggunakan pernyataan INSERT INTO dan jalankan

INSERT INTO ProductsNew (product_id, product_item, category, weight, review)
  VALUES (3, 'tomatoes', 'vegetables', 5, 7);

Ambil data dan periksa hasilnya

Mysql mengonversi bigint ke int

Perlu diingat bahwa untuk MySQL 8. 0. 17, atribut ZEROFILL telah ditinggalkan untuk tipe data numerik

Jenis INT MySQL

Seperti yang disebutkan sebelumnya, MySQL mendukung tipe data standar SQL INT dan SMALLINT. Selain itu, MySQL mendukung TINYINT, MEDIUMINT, dan BIGINT. Jenis data bilangan bulat apa yang dipilih tergantung pada data yang akan Anda simpan di kolom. Misalnya, jika Anda yakin bahwa nilai di kolom tidak akan melebihi nilai maksimum dalam rentang INT – 255, maka Anda dapat menggunakan tipe data TINYINT, yang pada gilirannya akan meningkatkan kinerja database. Namun, jika Anda perlu menyimpan data yang sangat besar seperti basis klien yang akan terus bertambah, akan lebih baik menggunakan INT atau BIGINT. Selain itu, jika data yang disimpan di kolom tidak akan pernah menggunakan nilai negatif, UNSIGNED harus disetel. Rentang INT akan sama, misalnya untuk INT(5), INT(1), INT(100)

Mari kita lihat masing-masing tipe data integer dan contoh penggunaannya

Contoh TINYINT

TINYINT adalah bilangan bulat yang sangat kecil. Nilai SIGNED minimum dan maksimum masing-masing adalah -128 dan 127, sedangkan untuk nilai UNSIGNED rentang TINYINT adalah dari 0 hingga 255. TINYINT menggunakan 1 byte per baris. Ini adalah pilihan terbaik bila Anda ingin menghemat ruang pada disk Anda dan meningkatkan kinerja

Perhatikan contoh cara menggunakan bilangan bulat TINYINT. Buat tabel StudentGroup dengan pernyataan CREATE

CREATE TABLE StudentGroup(
  id tinyint AUTO_INCREMENT,
  Name varchar(255) NOT NULL,
  Surname varchar(255) NOT NULL,
  Grade tinyint(4) UNSIGNED,
    PRIMARY KEY (id)
);

Kemudian, masukkan data ke dalam kolom menggunakan pernyataan INSERT

INSERT INTO StudentGroup (id, Name, Surname, Grade)
  VALUES (1, 'John', 'Smith', 5); 
_

Setelah mengambil data, kami melihat bahwa kueri berhasil diselesaikan

Mysql mengonversi bigint ke int

Namun jika kita memasukkan nilai yang tidak termasuk dalam rentang dan mencoba mengambil data,

INSERT INTO StudentGroup (id, Name, Surname, Grade)
  VALUES (1, 'John', 'Smith', -5); 

kita akan mendapatkan error 'Out of range value for column' Grade' at row 12′

Perhatikan bahwa dimulai dengan MySQL 8. 0, lebar tampilan tidak digunakan lagi untuk TINYINT dan Anda harus memperhitungkannya saat bermigrasi ke versi baru. Namun, penghentian ini tidak memengaruhi TINYINT(1), tetapi penting bagi TINYINT(4)

Contoh KECIL

SMALLINT adalah bilangan bulat kecil. Kisaran SMALLINT untuk nilai SIGNED adalah dari -32768 hingga 32767. Nilai minimum dan maksimum untuk SMALLINT UNSIGNED masing-masing adalah 0 dan 65535. Ukurannya 2 byte per baris

Contoh cara menggunakan SMALLINT adalah sebagai berikut. Buat tabel SmallintTable menggunakan pernyataan CREATE

CREATE TABLE SmallintTable(
  ID smallint AUTO_INCREMENT,
  value_1 smallint SIGNED,
  value_2 smallint(6) UNSIGNED,
    PRIMARY KEY (id)
);
_

Sisipkan nilai kolom yang sesuai dengan rentang SMALLINT dan jalankan kueri

INSERT INTO SmallintTable (ID, value_1, value_2)
  VALUES (1, -768, 0);

Setelah mengambil data, kueri diselesaikan tanpa kesalahan

Mysql mengonversi bigint ke int

Sekarang, ubah nilainya dengan memasukkan data yang tidak termasuk dalam rentang SMALLINT

INSERT INTO SmallintTable (ID, value_1, value_2)
  VALUES (1, 0, 65536);
_

Akibatnya, Anda akan melihat pesan kesalahan bahwa nilainya di luar kisaran

Perhatikan bahwa dimulai dengan MySQL 8. 0, lebar tampilan tidak digunakan lagi untuk SMALLINT dan Anda harus memperhitungkannya saat bermigrasi ke versi baru. Namun, penghentian ini tidak memengaruhi SMALLINT(1)

Contoh SEDANG

MEDIUMINT adalah bilangan bulat berukuran sedang. Nilai minimum dan maksimum untuk MEDIUMINT SIGNED masing-masing adalah -8388608 dan 8388607. Kisaran untuk nilai UNSIGNED minimum dan maksimum masing-masing sama dengan 0 dan 16777215. Ukurannya 3 byte per baris

Contoh cara menggunakan MEDIUMINT adalah sebagai berikut. Pertama, buat tabel MediumIntTable dengan pernyataan CREATE

CREATE TABLE MediumIntTable(
  ID mediumint AUTO_INCREMENT,
  value_1 mediumint,
  value_2 mediumint(6) UNSIGNED,
    PRIMARY KEY (ID)
);
_

Kemudian, tambahkan nilai yang benar ke kueri, ambil data untuk melihat apakah semuanya berfungsi dengan benar

CREATE TABLE ProductsNew(
  product_id INT AUTO_INCREMENT,
  product_item varchar(255) NOT NULL,
  category varchar(255) NOT NULL,
  weight int(2) ZEROFILL,
  review int(3) ZEROFILL,
  PRIMARY KEY (product_id)
);
0
Mysql mengonversi bigint ke int

Setelah itu, ubah nilainya menjadi nilai yang melebihi rentang yang diperbolehkan.

CREATE TABLE ProductsNew(
  product_id INT AUTO_INCREMENT,
  product_item varchar(255) NOT NULL,
  category varchar(255) NOT NULL,
  weight int(2) ZEROFILL,
  review int(3) ZEROFILL,
  PRIMARY KEY (product_id)
);
_1

Akibatnya, muncul pesan kesalahan yang menginformasikan bahwa nilai_2 berada di luar rentang

Perhatikan bahwa dimulai dengan MySQL 8. 0, lebar tampilan tidak digunakan lagi untuk MEDIUMINT dan Anda harus memperhitungkannya saat bermigrasi ke versi baru. Namun, penghentian ini tidak memengaruhi MEDIUMINT(1)

Contoh BESAR

BIGINT adalah bilangan bulat besar. Nilai minimum dan maksimum untuk SIGNED masing-masing adalah – -263 dan 263-1. Kisaran nilai minimum dan maksimum untuk UNSIGNED masing-masing sama dengan 0 dan 264-1. Ukurannya 8 byte per baris

Contoh cara menggunakan BIGINT adalah sebagai berikut. Mari buat tabel BigIntTable dengan tipe data BIGINT dan atribut AUTO_INCREMENT untuk kolom ID. Kemudian, tambahkan ke kueri angka negatif sebagai nilai_1 dan angka positif sebagai nilai_2 yang termasuk dalam rentang

CREATE TABLE ProductsNew(
  product_id INT AUTO_INCREMENT,
  product_item varchar(255) NOT NULL,
  category varchar(255) NOT NULL,
  weight int(2) ZEROFILL,
  review int(3) ZEROFILL,
  PRIMARY KEY (product_id)
);
_2

Setelah itu, ambil data untuk memastikannya berfungsi dengan benar

Mysql mengonversi bigint ke int

Setelah selesai, ubah nilainya menjadi nilai yang melebihi rentang yang diizinkan

CREATE TABLE ProductsNew(
  product_id INT AUTO_INCREMENT,
  product_item varchar(255) NOT NULL,
  category varchar(255) NOT NULL,
  weight int(2) ZEROFILL,
  review int(3) ZEROFILL,
  PRIMARY KEY (product_id)
);
_3

Akibatnya, muncul pesan kesalahan yang menginformasikan bahwa nilai_2 berada di luar rentang

Kami ingin menyebutkan bahwa menggunakan INT sebagai kunci primer, kunci asing, atau indeks sebagai ganti BIGINT dapat menjadi poin penting dalam meningkatkan kinerja, menghemat ruang disk, dan mengurangi ukuran indeks

Perhatikan bahwa dimulai dengan MySQL 8. 0, lebar tampilan tidak digunakan lagi untuk BIGINT dan Anda harus mempertimbangkannya saat bermigrasi ke versi baru. Namun, penghentian ini tidak memengaruhi BIGINT(1)

Kesimpulan

Pada artikel ini, kami telah meninjau tipe data MySQL INTEGER, nilai SIGNED dan UNSIGNED, atribut AUTO_INCREMENT, ZEROFILL, dan display_width. Bergantung pada proyek Anda, Anda harus memilih tipe data INTEGER mana yang paling cocok untuk Anda. Juga, artikel ini memberikan contoh bagaimana dan kapan tipe data INTEGER di MySQL

Unduh versi uji coba gratis selama 30 hari untuk mencoba dan menilai semua fitur berharga dan canggih dari dbForge Studio untuk MySQL dan alat dbForge MySQL lainnya yang secara drastis meningkatkan kinerja Anda, memaksimalkan produktivitas, dan memungkinkan Anda mengatasi tugas pengembangan dan pengelolaan database dengan cepat dan mudah

Bagaimana cara mengubah Bigint menjadi bilangan bulat?

intValue() mengonversi BigInteger ini menjadi int. Konversi ini analog dengan konversi primitif yang menyempit dari long ke int. Jika BigInteger ini terlalu besar untuk dimasukkan ke dalam int, hanya 32 bit orde rendah yang dikembalikan.

Bagaimana cara mengonversi ke INT di MySQL?

Untuk mentransmisikan VARCHAR ke INT, kita dapat menggunakan fungsi cast() dari MySQL . Berikut adalah sintaks dari fungsi cast(). Sebagai contoh kita akan membuat tabel dengan bantuan perintah create. Tampilkan semua rekaman dengan bantuan pernyataan pilih.

Apa perbedaan antara int dan Bigint di MySQL?

Tipe data int adalah tipe data integer utama di SQL Server. Tipe data bigint dimaksudkan untuk digunakan saat nilai integer mungkin melebihi rentang yang didukung oleh tipe data int . bigint cocok antara smallmoney dan int dalam bagan prioritas tipe data.

Apa itu CAST () di MySQL?

Fungsi CAST() mengonversi nilai (dari jenis apa pun) ke dalam tipe data yang ditentukan .