Heim  >  Artikel  >  Datenbank  >  Numerische Typen in Spaltentypen im MySQL-Tutorial

Numerische Typen in Spaltentypen im MySQL-Tutorial

藏色散人
藏色散人nach vorne
2018-11-22 16:44:372894Durchsuche

Dieser Artikel führt Sie hauptsächlich in die relevanten Wissenspunkte zum numerischen Spaltentyp in MySQL ein. Ich hoffe, dass er Freunden in Not hilfreich sein wird!

Empfohlenes Referenz-Tutorial: „MySQL-Tutorial

Spaltentyp (Datentyp) Typen in Spaltentypen im MySQL-Tutorial>

Der sogenannte Spaltentyp bezieht sich tatsächlich auf Der Datentyp, also eine einheitliche Klassifizierung von Daten, besteht aus Systemsicht darin, sie einheitlich verwalten und den begrenzten Platz besser nutzen zu können.

In SQL werden Datentypen in drei Hauptkategorien unterteilt: Numerischer Typ, Zeichenfolgentyp und Datums- und Uhrzeittyp.

Numerische Typen in Spaltentypen im MySQL-Tutorial

Für numerische Daten können sie weiter in Ganzzahltyp und Dezimaltyp unterteilt werden.

Integer-TypTypen in Spaltentypen im MySQL-Tutorial>

In SQL unterteilt das System den Integer-Typ aus Gründen der Speicherplatzeinsparung in fünf Kategorien, nämlich:

  • tinyint: Mini-Ganzzahl, verwendet Numerische Typen in Spaltentypen im MySQL-Tutorial Byte zum Speichern von Daten (häufig verwendet);

  • smallint: kleine Ganzzahl, verwendet Numerische Typen in Spaltentypen im MySQL-Tutorial Bytes zum Speichern von Daten ;

  • mediumint: mittlerer Ganzzahltyp, verwendet Numerische Typen in Spaltentypen im MySQL-Tutorial Bytes zum Speichern von Daten

  • int: Standard-Ganzzahltyp, verwendet Numerische Typen in Spaltentypen im MySQL-Tutorial Bytes zum Speichern von Daten (häufig verwendet). );

  • bigint: große Ganzzahl, die Numerische Typen in Spaltentypen im MySQL-Tutorial Bytes zum Speichern von Daten verwendet.

Als nächstes geben Sie die folgende SQL-Anweisung zum Testen ein:

-- 创建整型表create table my_int(
    int_Numerische Typen in Spaltentypen im MySQL-Tutorial tinyint,
    int_Numerische Typen in Spaltentypen im MySQL-Tutorial smallint,
    int_Numerische Typen in Spaltentypen im MySQL-Tutorial int,
    int_Numerische Typen in Spaltentypen im MySQL-Tutorial bigint
)charset utfNumerische Typen in Spaltentypen im MySQL-Tutorial;

Numerische Typen in Spaltentypen im MySQL-Tutorial

Wie im Bild oben gezeigt, haben wir erfolgreich Tabelle und dann Daten einfügen: my_int

-- 插入数据insert into my_int values (Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial);insert into my_int values (&#Numerische Typen in Spaltentypen im MySQL-Tutorial9;a&#Numerische Typen in Spaltentypen im MySQL-Tutorial9;,&#Numerische Typen in Spaltentypen im MySQL-Tutorial9;b&#Numerische Typen in Spaltentypen im MySQL-Tutorial9;,&#Numerische Typen in Spaltentypen im MySQL-Tutorial9;c&#Numerische Typen in Spaltentypen im MySQL-Tutorial9;,&#Numerische Typen in Spaltentypen im MySQL-Tutorial9;d&#Numerische Typen in Spaltentypen im MySQL-Tutorial9;);insert into my_int values (Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial);

Numerische Typen in Spaltentypen im MySQL-Tutorial

Wie in der Abbildung oben gezeigt, können wir durch den Spaltentyp den Typ und den Längenbereich der eingefügten Daten einschränken.

Der Grund, warum beim Zuweisen eines Werts zu

ein Fehler außerhalb des Bereichs gemeldet wird, liegt daran, dass der numerische Typ in SQL standardmäßig ein vorzeichenbehaftetes Bit hat, das heißt, er ist in positiv unterteilt und negativ. Wenn wir vorzeichenlose Daten verwenden müssen, müssen wir den Datentyp selbst deklarieren, dh beim Deklarieren des Datentyps das Schlüsselwort int_Numerische Typen in Spaltentypen im MySQL-Tutorial anhängen. Zum Beispiel: unsigned

-- 在 my_int 表中,添加 int_Numerische Typen in Spaltentypen im MySQL-Tutorial 字段,设置其数据类型为 tinyint unsignedalter table my_int add int_Numerische Typen in Spaltentypen im MySQL-Tutorial tinyint unsigned;

Numerische Typen in Spaltentypen im MySQL-Tutorial

Wie im Bild oben gezeigt, wurde das Feld

erfolgreich hinzugefügt und es werden weiterhin Daten eingefügt: int_Numerische Typen in Spaltentypen im MySQL-Tutorial

-- 插入数据insert into my_int values (Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial);

Numerische Typen in Spaltentypen im MySQL-Tutorial

Wie im Bild oben gezeigt, können wir, wenn wir

auf tinyint beschränken, bereits jede ganze Zahl zwischen unsigned einfügen! Schauen wir uns jedoch im Rückblick das folgende Bild genauer an: 0~Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial

Numerische Typen in Spaltentypen im MySQL-Tutorial

Wenn wir das obige Bild betrachten, finden wir:

Die Daten jedes Feldes Auf den Typ folgt ein Klammerpaar mit Zahlen. Diese Zahlen haben eigentlich keine besondere Bedeutung, sie repräsentieren lediglich die Anzeigebreite der Daten. Tatsächlich können wir die Anzeigebreite ändern, aber diese Änderung ändert nicht die Größe der Daten selbst.

Die Bedeutung der Anzeigebreite: Wenn die Daten nicht ausreichen, um die Breite anzuzeigen, werden die Daten automatisch auf die entsprechende Anzeigebreite geändert. Normalerweise muss sie mit einem führenden , um die Breite zu erhöhen, ändern Sie nicht die Größe des Datenwerts. Verwenden Sie also , um eine Nullauffüllung durchzuführen. Durch die Nullauffüllung wird der Wert automatisch vorzeichenlos. 0zerofillFühren Sie als Nächstes die folgende SQL-Anweisung aus:

-- 在 my_int 表中,添加 int_Numerische Typen in Spaltentypen im MySQL-Tutorial 字段,设置其数据类型为 tinyint zerofillalter table my_int add int_Numerische Typen in Spaltentypen im MySQL-Tutorial(Numerische Typen in Spaltentypen im MySQL-Tutorial) tinyint zerofill;

Numerische Typen in Spaltentypen im MySQL-TutorialDaten einfügen und testen:

-- 插入数据insert into my_int values (Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial);

Numerische Typen in Spaltentypen im MySQL-TutorialWie in der Abbildung oben gezeigt, besteht die Bedeutung von

Zero Padding

darin, das Format der Daten sicherzustellen. Dezimaltyp

Dezimaltyp, d. h. Typen in Spaltentypen im MySQL-Tutorial>numerischer Typ mit Dezimalpunkt oder Bereich über den Ganzzahltyp hinaus

. In SQL ist der Dezimaltyp in zwei Typen unterteilt:

Gleitkommatyp

und Festkommatyp, darunter:

    Gleitkommatyp: Gleitkomma, begrenzte Genauigkeit, leicht zu verlierende Präzision
  • Festkommatyp: fester Dezimalpunkt, feste Genauigkeit, kein Präzisionsverlust;
Typ Numerische Typen in Spaltentypen im MySQL-Tutorial

: GleitkommatypGleitkommadaten sind eine Art Präzisionsdaten, da sie nach Überschreiten des angegebenen Bereichs präzise werden geht verloren und die Rundung erfolgt automatisch. Theoretisch werden Gleitkommatypen in zwei Arten von Genauigkeit unterteilt:

  • : einfache Genauigkeit, die Numerische Typen in Spaltentypen im MySQL-Tutorial Bytes zum Speichern von Daten belegt, und der Genauigkeitsbereich beträgt etwa Numerische Typen in Spaltentypen im MySQL-Tutorial Stellen; >
  • double:双精度,占用 Numerische Typen in Spaltentypen im MySQL-Tutorial 个字节存储数据,精度范围大概为 Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial 位左右。

浮点型的使用方式:如果直接用float,则表示没有小数部分;如果用float(M,D),其中M代表总长度,D代表小数部分长度,M-D则为整数部分长度。

执行如下 SQL 语句创建浮点数表,进行测试:

-- 创建浮点数表create table my_float(
    fNumerische Typen in Spaltentypen im MySQL-Tutorial float,
    fNumerische Typen in Spaltentypen im MySQL-Tutorial float(Numerische Typen in Spaltentypen im MySQL-Tutorial0,Numerische Typen in Spaltentypen im MySQL-Tutorial),
    fNumerische Typen in Spaltentypen im MySQL-Tutorial float(Numerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial)
)charset utfNumerische Typen in Spaltentypen im MySQL-Tutorial;

在咱们向浮点数表my_float插入数据的时候,可以直接插入小数,也可以插入用科学计数法表示的数据。此外,插入浮点型数据时,整数部分是不能超出长度范围的,但是小数部分是可以超出长度范围的,系统会自动进行四舍五入的操作。特别是,如果浮点数是因为系统进位(四舍五入)导致整数部分超出指定的长度,那么系统是允许成立的。

-- 插入测试数据insert into my_float values (Numerische Typen in Spaltentypen im MySQL-Tutorial.Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialeNumerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-Tutorial0.Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial,9999.99);insert into my_float values (Numerische Typen in Spaltentypen im MySQL-Tutorial0Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial0,Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial9.99,9999.99);insert into my_float values (Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial,Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial.99,99.99999);

Numerische Typen in Spaltentypen im MySQL-Tutorial

如上图所示,咱们的结论得到了验证。

第 Numerische Typen in Spaltentypen im MySQL-Tutorial 种:定点型

定点型数据,绝对的保证整数部分不会被四舍五入,也就是说不会丢失精度,但小数部分有可能丢失精度,虽然理论上小数部分也不会丢失精度。

执行如下 SQL 语句创建定点数表,以浮点数做对比,进行测试:

-- 创建定点数表create table my_decimal(
    fNumerische Typen in Spaltentypen im MySQL-Tutorial float(Numerische Typen in Spaltentypen im MySQL-Tutorial0,Numerische Typen in Spaltentypen im MySQL-Tutorial),
    dNumerische Typen in Spaltentypen im MySQL-Tutorial decimal(Numerische Typen in Spaltentypen im MySQL-Tutorial0,Numerische Typen in Spaltentypen im MySQL-Tutorial)
)charset utfNumerische Typen in Spaltentypen im MySQL-Tutorial;

当咱们插入数据的时候,定点数的整数部分一定不能超出长度范围(进位也不可以),小数部分的长度则可以随意超出,没有限制,系统会自动进行四舍五入的操作:

-- 插入测试数据insert into my_decimal values (99999999.99,99999999.99);insert into my_decimal values (Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial9.99,Numerische Typen in Spaltentypen im MySQL-Tutorial0Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial.Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial);insert into my_decimal values (Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial.99,Numerische Typen in Spaltentypen im MySQL-Tutorial0Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial.Numerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-TutorialNumerische Typen in Spaltentypen im MySQL-Tutorial);

Numerische Typen in Spaltentypen im MySQL-Tutorial

如上图所示,咱们的结论同样得到了验证。

Das obige ist der detaillierte Inhalt vonNumerische Typen in Spaltentypen im MySQL-Tutorial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen