SQL Server-Datentypen mit Beispielen

⚡ Intelligente Zusammenfassung

SQL-Server-Datentypen definieren, welche Art von Wert eine Spalte oder Variable speichern kann, z. B. Integer, Dezimalzahl, Zeichenkette, Datum oder Binärzahl. Die Wahl des richtigen Typs gewährleistet gültige Daten und eine effiziente Speichernutzung.

  • 🔢 Exakt numerisch: bigint, int, smallint, tinyint, bit, decimal, numeric, money und smallmoney speichern präzise ganze Zahlen und Festkommazahlen.
  • ️ Ungefährer numerischer Wert: float und real speichern Näherungswerte für Gleitkommazahlen, die in wissenschaftlichen Berechnungen verwendet werden.
  • 📅 Datum und Uhrzeit: datetime, smalldatetime, date, time, datetimeoffset und datetime2 speichern Zeitwerte.
  • 🔤 Zeichen und Unicode: char, varchar und text speichern Text; nchar, nvarchar und ntext speichern Unicode-Text.
  • 🖼️ Binär und Sonstiges: Binär-, Varbinary- und Image-Speicher speichern Byte-Daten; Cursor-, XML- und Uniqueidentifier-Speicher decken spezielle Anforderungen ab.
  • 🧠 Die Wahl Wisely: Durch die Zuordnung jeder Spalte zum kleinsten geeigneten Datentyp werden Speichereffizienz und Datenintegrität verbessert.

SQL Server-Datentypen mit Beispielen

Was ist ein Datentyp?

Ein Datentyp in MS SQL Server Der Datentyp wird als der Datentyp definiert, den eine Spalte oder Variable speichern kann. Es handelt sich um die Art der Daten, die ein Objekt enthält, z. B. Integer, Zeichen oder String. Beim Erstellen einer Spalte oder Variable wird der Datentyp definiert. Tabelle or VariableZusätzlich zur Angabe des Namens legen Sie auch den Typ der zu speichernden Daten fest.

So verwenden Sie den MS SQL-Datentyp

Sie müssen im Voraus festlegen, welcher Datentyp eine Spalte oder Variable speichern kann. Die Festlegung des Datentyps verhindert außerdem, dass der Benutzer unerwartete oder ungültige Daten eingibt.

Sie können den Speicher effizient nutzen, indem Sie einer Variablen oder Spalte einen geeigneten Datentyp zuweisen. Dadurch wird nur die für die Daten dieser Spalte benötigte Menge an Systemspeicher reserviert.

MS SQL bietet eine breite Palette an grundlegenden Datentypen an. SQL um den Bedürfnissen der Nutzer gerecht zu werden, wie z. B. Datum, Binärdaten, Bilder und mehr.

Warum DataTypes verwenden?

Betrachten wir als Beispiel eine einfache Anmeldeseite für eine Webanwendung. Die drei Eingabefelder sind Vorname, Nachname und Telefonnummer.

Hierbei ist zu beachten, dass in realen Szenarien Folgendes gilt:

  • „Vor-/Nachname“ wird immer alphabetisch sortiert.
  • „Kontakt“ wird immer numerisch sein.

Das folgende Beispiel veranschaulicht diese Felder auf einem Anmeldeformular.

Beispiel eines Anmeldeformulars, das Vor- und Nachnamen als Zeichenketten und den Kontakt als Ganzzahl definiert.

Aus dem obigen Bild geht hervor, dass es sinnvoll ist, „Vor-/Nachname“ als Zeichenkette und „Kontakt“ als ganze Zahl zu definieren.

Es ist offensichtlich, dass in jeder Anwendung alle Felder Daten unterschiedlicher Art enthalten, zum Beispiel numerische, alphabetische, Datums- und viele weitere Datentypen.

Beachten Sie außerdem, dass unterschiedliche Datentypen unterschiedlichen Speicherbedarf haben. Daher ist es sinnvoller, die Spalte oder Variable mit dem Datentyp zu definieren, den sie enthalten soll, um den Speicher effizient zu nutzen.

In MS SQL Server verfügbarer Datentyp

Hier finden Sie die Liste der Datentypen von MS SQL Server. MS SQL Server unterstützt die folgenden Datentypkategorien:

  • Exakte Zahl
  • Ungefähre Zahl
  • Datum und Uhrzeit
  • Zeichenfolgen
  • Unicode-Zeichenfolgen
  • Binäre Zeichenfolgen
  • Andere Datentypen

Das folgende Diagramm gruppiert die MS SQL Server-Datentypen in diese Kategorien.

Diagrammgruppeping MS SQL Server-Datentypen in ihre sieben Kategorien

Exakte numerische Datentypen in SQL

Der exakte numerische Datentyp verfügt in SQL Server über neun Unterdatentypen. Jeder dieser Typen speichert ganze Zahlen oder Festkommazahlen innerhalb eines definierten Bereichs.

Dateityp Beschreibung Untere Grenze Obergrenze Memory
bigint Es speichert ganze Zahlen im angegebenen Bereich −2^63 (−9,223,372,036,854,775,808) 2^63−1 (9,223,372,036,854,775,807) 8 bytes
int Es speichert ganze Zahlen im angegebenen Bereich −2^31 (−2,147,483,648) 2^31−1 (2,147,483,647) 4 bytes
smallint Es speichert ganze Zahlen im angegebenen Bereich −2^15 (−32,768) 2^15−1 (32,767) 2 bytes
Tinyint Es speichert ganze Zahlen im angegebenen Bereich 0 255 1 Bytes
Bit Es kann 0-, 1- oder NULL-Werte annehmen. 0 1 1 Byte / 8-Bit-Spalte
dezimal Wird für Skalenzahlen und Zahlen mit fester Genauigkeit verwendet −10^38+1 10^38−1 5 bis 17 Byte
numerisch Wird für Skalenzahlen und Zahlen mit fester Genauigkeit verwendet −10^38+1 10^38−1 5 bis 17 Byte
Geld Wird für Gelddaten verwendet -922,337,203,685,477.5808 +922,337,203,685,477.5807 8 bytes
kleines Geld Wird für Gelddaten verwendet -214,478.3648 +214,478.3647 4 bytes

Exakte numerische Datentypen in SQL Server mit Beispielen:

Abfrage:

DECLARE @Datatype_Int INT = 2
PRINT @Datatype_Int

Ausgang:

2

Syntax:

Decimal (P,S)

Hierbei ist P die Genauigkeit und S der Maßstab.

Abfrage:

DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31
PRINT @Datatype_Decimal

Ausgang:

2.31

Ungefähre numerische Datentypen in SQL

Die SQL-Kategorie für approximative numerische Werte umfasst Gleitkomma- und reelle Werte. Diese Datentypen werden hauptsächlich in wissenschaftlichen Berechnungen verwendet.

Dateityp Beschreibung Untere Grenze Obergrenze Memory Präzision
float(n) Wird für eine Zahl mit Gleitkommazahl verwendet −1.79E+308 1.79E + 308 Hängt vom Wert von n ab 15 stelligen
echt Wird für eine Zahl mit Gleitkommazahl verwendet −3.40E+38 3.40E + 38 4 bytes 7 stelligen

Der Datentyp float verwendet folgende Syntax:

Syntax:  FLOAT [(n)]

Hierbei ist n die Anzahl der Bits, die zur Speicherung der Mantisse der Gleitkommazahl in wissenschaftlicher Notation verwendet werden. Standardmäßig ist der Wert von n 53.

Wenn Sie einen Datentyp wie float definieren, sollte n ein Wert zwischen 1 und 53 sein. SQL Server behandelt n als einen von zwei möglichen Werten: Wenn 1<=n<=24, wird n als 24 behandelt; wenn 25<=n<=53, wird n als 53 behandelt.

Beispielabfrage:

DECLARE @Datatype_Float FLOAT(24) = 22.1234
PRINT @Datatype_Float

Ausgang:

22.1234

Datums- und Uhrzeitdatentypen in SQL

In dieser Kategorie werden Daten vom Typ Datum und Uhrzeit gespeichert.

Dateityp Beschreibung Speichergröße Genauigkeit Unterer Bereich Oberer Bereich
Terminzeit Wird zur Angabe eines Datums und einer Uhrzeit vom 1. Januar 1753 bis zum 31. Dezember 9999 verwendet. Die Genauigkeit beträgt 3.33 Millisekunden. 8 bytes Auf Schritte von .000, .003, .007 gerundet 1753-01-01 9999-12-31
smalldatetime Wird verwendet, um ein Datum und eine Uhrzeit vom 1. Januar 1900 bis zum 6. Juni 2079 anzugeben. Es hat eine Genauigkeit von 1 Minute. 4 Bytes, fest 1 Minuten 1900-01-01 2079-06-06
Datum Dient dazu, nur ein Datum vom 1. Januar 0001 bis zum 31. Dezember 9999 zu speichern. 3 Bytes, fest 1 Tag 0001-01-01 9999-12-31
Zeit Wird ausschließlich zur Speicherung von Zeitwerten mit einer Genauigkeit von 100 Nanosekunden verwendet. 5 bytes 100 Nanosekunden 00:00:00.0000000 23:59:59.9999999
datetimeoffset Ähnlich wie datetime, jedoch mit Zeitzonenverschiebung. 10 bytes 100 Nanosekunden 0001-01-01 9999-12-31
Datum/Uhrzeit2 Wird zur Angabe eines Datums und einer Uhrzeit vom 1. Januar 0001 bis 31. Dezember 9999 verwendet 6 bytes 100 Nanosekunden 0001-01-01 9999-12-31

Beispielabfrage:

DECLARE @Datatype_Date DATE = '2030-01-01'
PRINT @Datatype_Date

Ausgang:

'2030-01-01'

Zeichenketten-Datentypen in SQL

Diese Kategorie bezieht sich auf Zeichentypen. Sie ermöglicht die Definition von Zeichendaten fester und variabler Länge. Es gibt vier Arten von Datentypen. Im Folgenden sind die Zeichenketten-Datentypen mit Beispielen aufgeführt.

Dateityp Beschreibung Untere Grenze Obergrenze Memory
verkohlen Es handelt sich um eine Zeichenfolge mit fester Breite. Es speichert maximal 8,000 Zeichen. 0 Zeichen 8000 Zeichen n Byte
varchar Dies ist eine Zeichenkette mit variabler Breite. 0 Zeichen 8000 Zeichen n Bytes + 2 Bytes
Varchar (maximal) Dies ist eine Zeichenfolge mit variabler Breite. Es speichert maximal 1,073,741,824 Zeichen. 0 Zeichen 2^31 Zeichen n Bytes + 2 Bytes
Text Es handelt sich um eine Zeichenkette mit variabler Breite. Sie speichert maximal 2 GB Textdaten. 0 Zeichen 2,147,483,647 Zeichen n Bytes + 4 Bytes

Beispielabfrage:

DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'
PRINT @Datatype_Char

Ausgang:

Dies ist der Zeichendatentyp

Unicode-Zeichenfolgen-Datentypen in SQL

Diese Kategorie speichert den gesamten Zeichensatz von Unicode, der die UTF-16-Zeichenkodierung verwendet.

Dateityp Beschreibung Untere Grenze Obergrenze Memory
nchar Es handelt sich um eine Unicode-Zeichenkette fester Breite. 0 Zeichen 4000 Zeichen 2 mal n Bytes
nvarchar Es handelt sich um eine Unicode-Zeichenkette variabler Breite. 0 Zeichen 4000 Zeichen 2 mal n Bytes + 2 Bytes
ntext Es handelt sich um eine Unicode-Zeichenkette variabler Breite. 0 Zeichen 1,073,741,823 Zeichen 2-fache Saitenlänge

Beispielabfrage:

DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'
PRINT @Datatype_nChar

Ausgang:

Dies ist der nCharacter-Datentyp

Binäre String-Datentypen in SQL

Diese Kategorie enthält Binärzeichenketten fester und variabler Länge.

Dateityp Beschreibung Untere Grenze Obergrenze Memory
binär Es handelt sich um eine Binärzeichenkette fester Breite. Sie speichert maximal 8,000 Bytes. 0 bytes 8000 bytes n Byte
varbinary Es handelt sich um eine Binärzeichenkette variabler Breite. Sie speichert maximal 8,000 Bytes. 0 bytes 8000 bytes Die tatsächliche Länge der eingegebenen Daten + 2 Bytes
Image Es handelt sich um eine Binärzeichenkette variabler Breite. Sie speichert maximal 2 GB. 0 bytes 2,147,483,647 bytes -

Beispielabfrage:

DECLARE @Datatype_Binary BINARY(2) = 12;
PRINT @Datatype_Binary

Ausgang:

0x000C

Andere Datentypen in SQL

Dies sind die weiteren SQL Server-Datentypen mit ihren Beschreibungen im Folgenden:

Dateityp Beschreibung
Cursor Die Ausgabe ist eine Spalte vom Typ sp_cursor_list und sp_describe_cursor. Sie gibt den Namen der Cursor-Variablen zurück.
Rowversion Es versieht Tabellenzeilen mit einem Versionsstempel.
Hierarchieid Dieser Datentyp repräsentiert eine Position in einer Hierarchie.
Eindeutige Kennung Speichert eine GUID, die häufig aus einem Zeichenausdruck umgewandelt wird.
Sql_variant Es speichert Werte von SQL Server-unterstützten Datentypen.
XML Es speichert XML-Daten in einer Spalte.
Räumlicher Geometrietyp Es stellt Daten in einem flachen Koordinatensystem dar.
Typ „Raumgeographie“. Es stellt Daten im runden Erdkoordinatensystem dar.
Tabelle Es speichert einen Ergebnissatz zur späteren Verarbeitung.

Interessante Fakten!

  • Der Datentyp CHAR ist beim Abrufen von Daten schneller als der Datentyp VARCHAR, da seine feste Breite die Längenverwaltung vermeidet.ping.

Häufig gestellte Fragen

VARCHAR speichert Nicht-Unicode-Zeichen mit jeweils einem Byte, während NVARCHAR Unicode-Zeichen mit jeweils zwei Byte speichert. Wählen Sie NVARCHAR, wenn eine Spalte mehrere Sprachen oder Symbole außerhalb einer einzigen Codepage enthalten soll; andernfalls benötigt VARCHAR weniger Speicherplatz.

Verwenden Sie DECIMAL (oder NUMERIC), wenn Werte exakt sein müssen, wie z. B. Geldbeträge oder Maßeinheiten, da diese Datentypen eine feste Genauigkeit speichern. Verwenden Sie FLOAT für Näherungswerte in wissenschaftlichen Studien, bei denen geringfügige Rundungsabweichungen akzeptabel sind und ein großer Wertebereich wichtiger ist als absolute Exaktheit.

Ja. In SQL Server sind DECIMAL und NUMERIC funktional identisch. Beide akzeptieren Genauigkeit und Skalierung und speichern exakte Festkommazahlen, daher sind die beiden Schlüsselwörter austauschbar. Sie können den Namen verwenden, der Ihrem Team aus Gründen der Lesbarkeit am besten gefällt.

CHAR ist ein Datentyp fester Länge, der kürzere Werte mit Leerzeichen auffüllt, sodass jeder Wert die angegebene Breite nutzt. VARCHAR ist ein Datentyp variabler Länge und speichert nur die eingegebenen Zeichen plus zwei Bytes. Verwenden Sie CHAR für einheitliche Codes und VARCHAR für Text variabler Länge.

Ja. ALTER TABELLE Mit dem Befehl `ALTER COLUMN column_name new_type` wird der Datentyp einer Spalte geändert. Die Änderung ist nur erfolgreich, wenn vorhandene Werte problemlos in den neuen Typ konvertiert werden können; andernfalls schlägt sie fehl. Testen Sie daher vorher die Konvertierung und erstellen Sie eine Datensicherung.

Der reguläre Datentyp VARCHAR(n) speichert bis zu 8,000 Zeichen. VARCHAR(max) speichert bis zu etwa 2 GB (2^31-1 Byte) und ist für große Texte mit mehr als 8,000 Zeichen gedacht. Verwenden Sie VARCHAR(max) nur, wenn die Werte tatsächlich so groß sein können.

Ja. GitHub-Copilot Es kann Spaltendatentypen vorschlagen und DECLARE- und CREATE TABLE-Anweisungen anhand von natürlichsprachlichen Eingabeaufforderungen generieren. Überprüfen Sie stets die Genauigkeit, Skalierung, Länge und Unicode-Anforderungen anhand Ihrer Daten, bevor Sie die Vorschläge in der Produktion anwenden.

KI- und Machine-Learning-Tools analysieren Beispieldaten, um geeignete Datentypen, Genauigkeiten und Längen zu empfehlen, überdimensionierte Spalten, die Speicherplatz verschwenden, zu kennzeichnen und Diskrepanzen bei Migrationen zu erkennen. Sie beschleunigen den Schemaentwurf, während der Entwickler die endgültigen Entscheidungen bestätigt.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: