Heim > Datenbank > MySQL-Tutorial > Was ist der Unterschied zwischen MySQL tinyint(1) und tinyint(4)

Was ist der Unterschied zwischen MySQL tinyint(1) und tinyint(4)

WBOY
Freigeben: 2023-06-01 08:31:32
nach vorne
1209 Leute haben es durchsucht

Was ist tinyint(M)?

Lassen Sie uns zunächst den Unterschied zwischen dem String-Typ varchar(M) und dem numerischen Typ tinyint(M) in MySQL verstehen?
String-Spaltentyp: In Bezug auf varchar(M) ist M die maximale Zeichenlänge, die im Feld gespeichert werden kann, also die Feldlänge. Abhängig von den Einstellungen erhalten Sie wahrscheinlich eine Fehlermeldung, wenn Sie Daten eingeben, die die Feldlänge überschreiten, und selbst wenn Sie keine Fehlermeldung erhalten, werden die von Ihnen eingegebenen Daten automatisch gekürzt, um sie an die vordefinierte Länge des Felds anzupassen. Daher sind varchar(20) und varchar(40) unterschiedlich, was wirklich die Länge der Daten widerspiegelt, die das Feld speichern kann .
Numerischer Spaltentyp: Sein Längenmodifikator stellt die maximale Anzeigebreite dar und hat nichts mit der physischen Speicherung des Feldes zu tun. Mit anderen Worten, der numerische Bereich, den tinyint(1) und tinyint(4) speichern können, ist -128...127 (oder für vorzeichenlose Werte 0...255). Natürlich sind sie derselbe , es gibt immer noch einen kleinen Unterschied. Nachfolgend finden Sie Anweisungen. Für den Datentyp tinyint
belegt er nur 1 Byte:

- ohne Vorzeichen (ohne Vorzeichen), der Bereich liegt zwischen 0 und 255, die Standardlänge beträgt 3.
- signiert, der Bereich liegt zwischen -128 und 127, die Standardlänge ist 4.


Bereichsalgorithmus

: tinyint belegt 1 Byte, und ein Byte besteht aus 8 Bits, also 1*8=8. Die Anzahl der darstellbaren Zahlen beträgt 2 hoch 8 (2^8 = 256 Zahlen). ).

Unterschied

: Wenn Zerofill verwendet wird und die tatsächliche Länge die angegebene Anzeigelänge nicht erreicht, wird sie mit 0 vorne aufgefüllt. (Kurz gesagt besteht die Funktion von Zerofill darin, Nullen einzugeben)Test

Erstellen Sie zunächst eine Testtabelle und verwenden Sie Zerofill für alle Tinyint-Typen.

CREATE TABLE `pre_demo` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `unsigned_t` tinyint(3) unsigned zerofill NOT NULL DEFAULT '000',
  `signed_t` tinyint(4) unsigned zerofill NOT NULL DEFAULT '0000',
  `t1` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0',
  `t2` tinyint(2) unsigned zerofill NOT NULL DEFAULT '00',
  `t3` tinyint(3) unsigned zerofill NOT NULL DEFAULT '000',
  `t4` tinyint(4) unsigned zerofill NOT NULL DEFAULT '0000',
  `t5` tinyint(5) unsigned zerofill NOT NULL DEFAULT '00000',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Nach dem Login kopieren

Dann geben Sie die Testdaten ein.

NSERT INTO pre_demo VALUES(NULL,8,8,8,8,8,8,8);
INSERT INTO pre_demo VALUES(NULL,123,123,123,123,123,123,123);
Nach dem Login kopieren

Abschließend fragen Sie die Daten in der Datentabelle ab.

mysql> SELECT * FROM pre_demo;
+----+------------+----------+-----+-----+-----+------+-------+
| id | unsigned_t | signed_t | t1  | t2  | t3  | t4   | t5    |
+----+------------+----------+-----+-----+-----+------+-------+
|  1 |        008 |     0008 |   8 |  08 | 008 | 0008 | 00008 |
|  2 |        123 |     0123 | 123 | 123 | 123 | 0123 | 00123 |
+----+------------+----------+-----+-----+-----+------+-------+
2 rows in set (0.00 sec)
Nach dem Login kopieren
rrree

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen MySQL tinyint(1) und tinyint(4). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage