Einführung in SQL-Datentypen

Datentypen in SQL definieren wie in jeder anderen Programmiersprache, welchen Datentyp die Spalte oder die Variable enthalten kann. Die Art der Daten kann von einem Zeichen über eine Reihe von Zeichen, Zahlen bis hin zu Datum und Uhrzeit reichen. Ein Datentyp ist ein sehr wichtiges Konzept für eine eng gekoppelte Programmierung. Es hilft, die meisten Typkompatibilitätsfehler während der Programmkompilierung selbst zu beheben.

Wir würden die SQL-Datentypen grob kategorisieren und dann verschiedene Typen und Beispiele unter diesen Kategorien untersuchen.

Hinweis - Nicht alle Datenbankverwaltungssysteme unterstützen alle Datentypen. Beispielsweise unterstützt Oracle DateTime nicht. Diese Einzelheiten werden zusammen mit der Beschreibung des Datentyps im Artikel angegeben. Es wird empfohlen, dies beim Entwerfen der Datenbank zu berücksichtigen. Ebenso gibt es viele andere Datentypen, die für ein bestimmtes Datenbankverwaltungssystem spezifisch sind. Beispielsweise hat MS SQL einen Gelddatentyp. Solche Typen sind nicht generisch und liegen außerhalb des Geltungsbereichs dieses Artikels.

Arten von SQL-Daten

1. Binär

Der binäre Datentyp enthält eine Folge von binären Bytefolgen. Im Gegensatz zu den üblichen Zeichenfolgen werden in den Binärzeichenfolgen unkonventionelle Daten wie Bilder gespeichert.

Binär (Größe): Speichert binäre Bytefolgen mit der durch den Größenparameter angegebenen Spaltenlänge. Die Größe der Spalte ist festgelegt. Wenn die Größe als 10 Bytes definiert ist und die gespeicherten Daten 5 Bytes betragen, werden die verbleibenden 5 Bytes weiterhin von der Spalte im Speicher belegt. Diese verbleibenden Bytes werden von den meisten SQL-Parsern mit Nullen nach rechts aufgefüllt. Die maximal mögliche Größe beträgt 8000 Bytes.

Varbinary (Größe): Speichert binäre Byte-Zeichenfolgen mit der im Parameter size angegebenen Spaltenlänge. Die Größe der Spalte ist nicht festgelegt. Wenn die Größe als 10 Bytes definiert ist und die gespeicherten Daten 5 Bytes betragen, belegt die Spalte nur 5 Bytes im Speicher. Die maximal mögliche Größe beträgt 8000 Bytes.

Varbinary (max): Durch Angabe des Schlüsselworts max im Parameter size wird die maximal mögliche Größe auf 2 GB erhöht und den Spalten basierend auf den gespeicherten Daten eine variable Größe zugewiesen. Dieser Datentyp wird von MySQL nicht unterstützt.

Beispiel:

create table BinaryDataTypes (col_binary BINARY(5), col_varbinary VARBINARY(5));
insert into BinaryDataTypes values (101, 121);
select * from BinaryDataTypes;

insert into BinaryDataTypes values (12345, 123456);
insert into BinaryDataTypes values (123456, 123456);

Der Fehler tritt auf, weil die Größe der Spalten nur 5 Byte beträgt.

2. Zeichen / Zeichenkette

Diese Datentypen speichern entweder ein einzelnes Zeichen oder eine Reihe von Zeichen, die eine Zeichenfolge bilden. Dazu gehören Zeichen, Zahlen und Sonderzeichen. Die Art der Zeichen ist jedoch nur auf Nicht-Unicode-Zeichen beschränkt.

Zeichen (Größe): Speichert Zeichenfolgen fester Länge mit der im Parameter size angegebenen Länge. Die Größe der Spalte funktioniert ähnlich wie beim Datentyp BINARY. Die Standardgröße ist 1 Zeichen. In den meisten Datenbankverwaltungssystemen beträgt das Maximum 255.

Varchar (Größe): Speichert Zeichenfolgen variabler Länge. Die im Parameter size angegebene Länge definiert jedoch die maximale Länge der Spalte. Die maximal mögliche Länge beträgt 65535 Zeichen.

Varchar (max): Durch Angabe des Schlüsselworts max im Parameter size wird die maximal mögliche Größe auf 2 GB erhöht und den Spalten basierend auf den gespeicherten Daten eine variable Größe zugewiesen. Dieser Datentyp wird von MySQL nicht unterstützt.

Text: MySQL unterstützt den Textdatentyp anstelle von varchar (max). Der Text erhöht auch die maximal mögliche Größe auf 2 GB.

Beispiel:

create table CharacterDataTypes (col_char CHAR(300));

create table CharacterDataTypes (col_char CHAR(20), col_varchar VARCHAR(20), col_text TEXT);
insert into CharacterDataTypes values ('Hello World', 'How you doing?', 'This is an incredibly longer text to demonstrate the data type text in MySQL. The data type text makes it possible to store 2GB of data in a column. That\'s equal to 2*1024*1024*1024 = over 2.14 billion characters. Whoa!');

3. Unicode-Zeichen / Zeichenfolge

Diese Datentypen speichern entweder eine einzelne oder eine Zeichenfolge von Unicode-Zeichen.

Nchar (Größe): Dies ähnelt dem Datentyp char und unterstützt auch Unicode-Zeichen. Das maximale Limit ist jedoch auf 4000 Bytes reduziert.

Nvarchar (Größe): Dies ähnelt dem Datentyp nvarchar und unterstützt auch Unicode-Zeichen. Das maximale Limit ist jedoch auf 4000 Bytes reduziert.

Nvarchar (max): Durch Angabe des Schlüsselworts max im Parameter size wird die maximal mögliche Größe auf 1 GB erhöht und den Spalten basierend auf den gespeicherten Daten eine variable Größe zugewiesen. Dieser Datentyp wird von MySQL nicht unterstützt.

Ntext: MySQL unterstützt den Datentyp ntext anstelle von nvarchar (max). Ntext erhöht auch die maximal mögliche Größe auf 1 GB.

Beispiel:

create table UnicodeCharacterDataTypes (col_unicode_char NCHAR(200));
insert into UnicodeCharacterDataTypes values ('局层局层');
select * from UnicodeCharacterDataTypes;

4. Numerisch

Numerische Datentypen unterstützen Ganzzahlen und reelle / gebrochene / dezimale Zahlen.

Bit / Bool / Boolean: Diese Datentypen speichern nur zwei Werte - 0 und 1. 0 bedeutet falsch, während 1 wahr bedeutet. Ein bisschen wird von den meisten Datenbanken unterstützt. Einige erweiterte Datenbanken unterstützen auch Bool und Boolean.

INT: Speichert positive und negative Ganzzahlen mit einer Größe von bis zu 4 Bytes. Dies bedeutet, dass der Wert im Bereich (-2147483648, 2147483647) liegen muss. Wenn Sie das Schlüsselwort ohne Vorzeichen angeben, wird die Spalte so eingeschränkt, dass nur positive Werte im Bereich (0, 4294967295) gespeichert werden.

TINYINT: Speichert positive und negative Ganzzahlen mit einer Größe von bis zu 1 Byte. Dies bedeutet, dass der Wert im Bereich (-128, 127) liegen muss. Wenn Sie das Schlüsselwort ohne Vorzeichen angeben, wird die Spalte so eingeschränkt, dass nur positive Werte im Bereich (0, 255) gespeichert werden.

Smallint: Speichert positive und negative Ganzzahlen mit einer Größe von bis zu 2 Bytes. Dies bedeutet, dass der Wert im Bereich (-32768, 32767) liegen muss. Wenn Sie das Schlüsselwort ohne Vorzeichen angeben, wird die Spalte so eingeschränkt, dass nur positive Werte im Bereich (0, 65535) gespeichert werden.

Bigint: Speichert positive und negative Ganzzahlen mit einer Größe von bis zu 8 Byte . Dies bedeutet, dass der Wert im Bereich (-2 63, 2 63 -1) liegen muss. Wenn Sie das Schlüsselwort ohne Vorzeichen angeben, wird die Spalte so eingeschränkt, dass nur positive Werte im Bereich (0, 2 64 -1) gespeichert werden.

Dezimalzahl (Größe, D): Speichert eine Festkommazahl. Der Parameter size gibt die Gesamtzahl der Stellen an, während d die Anzahl der Nachkommastellen angibt. Standardwerte für Größe und d sind 10 bzw. 0.

Float (Größe, D) / Double (Größe, D): Speichert eine Gleitkommazahl. Float wird für kleinere Zahlen bis zu einer Größe von 4 Byte verwendet. Double speichert größere Zahlen. Double wird jedoch nicht von allen Datenbanken unterstützt.

Out-of-Syllabus-Kenntnisse - Der Unterschied zwischen Festkomma- und Gleitkommazahlen besteht darin, dass der Dezimalpunkt in einem Punkt festgelegt und in einem anderen Punkt festgelegt ist. Festkomma bedeutet, dass die Anzahl der Stellen nach und vor dem Komma festgelegt wird. Gleitkommazahl bedeutet, dass die Anzahl der Stellen vor und nach dem Dezimalpunkt relativ zur Bedeutung der Stellen in der Zahl variieren kann.

Beispiel:

create table NumericDataTypes (col_tinyint_u TINYINT UNSIGNED, col_smallint SMALLINT, col_int INT, col_bigint BIGINT UNSIGNED, col_decimal DECIMAL(5, 2), col_float FLOAT);
insert into NumericDataTypes values (255, -32768, 1234567890, (POWER(2, 63)-1), 987.65, 987.65);

5. Datum und Uhrzeit

  1. Datum: Speichert die Daten im Format JJJJ-MM-TT, begrenzt vom 01.01.1000 bis zum 31.12.9999.
  2. Uhrzeit: Speichert die Uhrzeit im Format hh: mm: ss.
  3. DateTime: Speichert Datum und Uhrzeit.
  4. Zeitstempel: Der Zeitstempel wird verwendet, um einen Zeitstempel zu markieren, wenn eine Zeile in die Tabelle eingegeben oder aktualisiert wird. Dies erfolgt normalerweise über die Schlüsselwörter DEFAULT CURRENT_TIMESTAMP und ON UPDATE CURRENT_TIMESTAMP.

Beispiel:

create table DateTimeDataTypes (col_date DATE, col_time TIME, col_datetime DATETIME, col_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
insert into DateTimeDataTypes(col_date, col_time, col_datetime) values (CURDATE(), '08:50:41', NOW());

6. Verschiedene SQL-Datentypen

  • CLOB: CLOB steht für Character Large Objects. Sie können Zeichendaten für bis zu 2 GB speichern. Wird von MySQL jedoch nicht unterstützt. MySQL verwendet Text, um dasselbe zu erreichen.
  • BLOB: BLOB steht für Binary Large Objects. Sie werden zum Speichern von Binärobjekten mit einer Größe von bis zu 2 GB verwendet. Normalerweise werden Bilder in binäre Objekte konvertiert und in BLOB-Spalten gespeichert.
  • XML: Zum Speichern von XML-Daten.
  • JSON: Wird zum Speichern von JSON-Daten verwendet. Wird von MySQL nicht unterstützt.

Schlussfolgerung - SQL-Datentypen

Die SQL-Datentypen tragen wesentlich zur strategischen Optimierung des Datenbankbereichs bei. In einer digitalen Welt, in der die Daten stetig exponentiell wachsen, muss ein Entwickler den Typ für jedes Datenbit mit Bedacht auswählen. Dies hilft bei der Reduzierung von Kosten, die durch massive Datenspeicherung entstehen.

Empfohlene Artikel

Dies ist eine Anleitung zu SQL-Datentypen. Hier diskutieren wir die Einführung, Arten von SQL-Daten, Zeichen / Zeichenketten, Unicode-Zeichen / Zeichenketten und numerische Zeichen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren.

  1. PostgreSQL-Datentypen
  2. Arten von OLAP
  3. Arten von Malware
  4. SQL WHERE-Klausel
  5. PHP-Schlüsselwörter
  6. C ++ - Schlüsselwörter
  7. Top 3 Datentypen von PHP mit Beispielen
  8. Beispiele zur Implementierung der INSERT-Anweisung