Rumah  >  Artikel  >  pangkalan data  >  Apakah jenis integer panjang mysql?

Apakah jenis integer panjang mysql?

青灯夜游
青灯夜游asal
2022-06-14 16:40:295074semak imbas

Jenis integer panjang mysql ialah "BIGINT". BIGINT ialah bait ab atau nilai integer 64-bit, sangat berguna apabila menyimpan nilai integer yang sangat besar. BIGINT, seperti jenis data integer yang lain, boleh ditandatangani atau tidak ditandatangani bermakna lajur boleh menyimpan nilai integer positif dan negatif, manakala jenis data tidak bertandatangan bermakna lajur hanya boleh menyimpan nilai integer positif. Julat jenis BIGINT yang ditandatangani adalah antara "-9223372036854775808" dan "9223372036854775807".

Apakah jenis integer panjang mysql?

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Jenis integer juga dipanggil data berangka digunakan terutamanya untuk menyimpan nombor.

MySQL menyediakan pelbagai jenis data angka.

Jenis integer utama yang disediakan oleh MySQL ialah TINYINT, SMALLINT, MEDIUMINT, INT dan BIGINT, dan kekangan autoincrement AUTO_INCREMENT boleh ditambahkan pada medan atributnya. Jadual berikut menyenaraikan jenis angka dalam MySQL.

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1个字节 (-128,127) (0,255) 小整数值
SMALLINT 2个字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3个字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4个字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8个字节 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值

Seperti yang anda lihat daripada jadual di atas, jenis integer yang berbeza memerlukan bilangan bait yang berbeza untuk disimpan Jenis TINYINT mengambil bilangan bait terkecil, dan jenis BIGINT mengambil bilangan bait yang paling banyak ia mengambil, lebih banyak bait yang diperlukan Lebih besar julat nilai yang boleh diwakili oleh jenis itu. Oleh itu, jenis integer panjang mysql ialah "BIGINT".

MySQL BIGINT

BIGINT ialah bait ab atau nilai integer 64-bit, berguna apabila menyimpan nilai integer yang besar.

MySQL BIGINT, seperti mana-mana jenis data integer MySQL yang lain, boleh ditandatangani atau tidak ditandatangani. Jenis data yang ditandatangani bermakna lajur boleh menyimpan nilai integer positif dan negatif. Ini ialah jenis lalai untuk kebanyakan jenis integer dalam MySQL. Oleh itu, mana-mana lajur jenis integer boleh menyimpan kedua-dua integer positif dan negatif melainkan dinyatakan secara eksplisit.

Sebaliknya, jenis data yang tidak ditandatangani bermakna lajur hanya boleh menyimpan nilai integer positif.

Jenis MySQL BIGINT yang ditandatangani berjulat antara -9223372036854775808 dan 9223372036854775807

Untuk jenis BIGINT yang tidak ditandatangani, julatnya ialah 0 hingga 18473677.

Satu lagi sifat jenis BIGINT ialah ZEROFILL. Apabila sifat ini dinyatakan pada lajur, lajur ditetapkan secara automatik kepada UNSIGNED.

Atribut zerofill juga mengisi ruang dengan sifar.

Contoh BIGINT:

Mari kita lihat beberapa contoh untuk menggambarkan cara menggunakan jenis BIGINT.

CREATE DATABASE IF NOT EXISTS integers;
USE integers;

Mengikuti , mari buat jadual dan isikannya dengan pelbagai lajur BIGINT seperti yang ditunjukkan dalam pertanyaan berikut:

CREATE TABLE examples(x BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, y BIGINT UNSIGNED, z BIGINT ZEROFILL );

Contoh 1

Mari cuba tambah semua nilai positif ke dalam jadual terlebih dahulu:

INSERT INTO examples(x,y,z) VALUES (1,2,3);

Dalam contoh pertanyaan di atas, nilai ini boleh diterima kerana ia berada di antara julat jenis BIGINT yang ditandatangani, tidak ditandatangani dan zerofill.

SELECT * FROM examples;

Apakah jenis integer panjang mysql?

Contoh 2

Dalam kes seterusnya, mari cuba tambah semua nilai negatif. Contoh pertanyaan adalah seperti berikut:

INSERT INTO examples(x,y,z) VALUES (-1,-2,-3);
ERROR 1264 (22003): Out of range value for column 'y' at row 1

Dalam kes ini, pertanyaan gagal kerana lajur y tidak ditandatangani. Oleh itu, memberikan nilai negatif kepada lajur adalah di luar julat lajur.

Contoh 3

Kita boleh perhatikan perkara yang sama seperti di atas Situasi yang sama dalam lajur ketiga. Atribut zerofill secara automatik menjadikan lajur tidak ditandatangani, menjadikan penambahan nilai negatif di luar julat. Contohnya ialah:

INSERT INTO examples(x,y,z) VALUES (-1,2,-3);
ERROR 1264 (22003): Out of range value for column 'z' at row 1

Contoh 4

Sekarang mari cuba tambah nilai maksimum setiap jenis. Contoh pertanyaan ialah:

INSERT INTO examples(x,y,z) VALUES (-9223372036854775808, 9223372036854775808, 9223372036854775808);

Dalam contoh di atas, pertanyaan itu berjaya dilaksanakan kerana semua nilai berada dalam julat.

Pertimbangkan pertanyaan berikut:

INSERT INTO examples(x,y,z) VALUES (9223372036854775807, 9223372036854775808, 9223372036854775808);

Anda akan perasan bahawa semua nilai Semua pada nilai maksimum. Memandangkan lajur x ditetapkan kepada AUTO_INCREMENT, menambah nilai padanya akan gagal.

INSERT INTO examples(y,z) VALUES (9223372036854775808, 9223372036854775808);
ERROR 1062 (23000): Duplicate entry '9223372036854775807' for key 'examples.PRIMARY'

Walau bagaimanapun, jika mod ketat dilumpuhkan dalam MySQL, anda boleh memasukkan nilai luar julat.

SELECT * FROM examples;

Apakah jenis integer panjang mysql?

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci Apakah jenis integer panjang mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn