Ich bin etwas verwirrt, da es viele Variablentypen in sql server gibt (ntext, varchar, nvarchar usw.). Wenn Sie mir also die Datentypen geben, die Sie für die folgenden Felder verwenden, verstehe ich das ein wenig besser . Wenn ich einen gemeinsamen Feldtyp vermisse, lass es mich wissen.
ID
Telefonnummer
E-Mail-Adresse
Beschreibung (ein Absatz des Textes)
Name
SSN
Preisschild
Lieferdatum
Sex (m / w)
Eingestellt (ja / nein)
Menge
Postleitzahl
Eine kurze Empfehlung:
TEXT, NTEXT, IMAGE
: Alle diese Typen sind veraltet und werden in einer zukünftigen Version von SQL Server entfernt. Verwenden Sie diese nicht! p>
CHAR
vs. VARCHAR
: CHAR
hat eine feste Länge und füllt die Eingaben mit Leerzeichen auf die definierte Länge auf. Funktioniert am besten für kurze Strings (& lt; 5 Zeichen), z.B. Codes, wie Währung (fast immer 3 Zeichen), US-Status (2 Zeichen) usw. VARCHAR
hingegen funktioniert am besten für längere Strings und speichert nur so viele Zeichen wie eingefügt / aktualisiert werden. Wenn Sie ein VARCHAR(200)
definieren und nur Christmas
in das Feld einfügen, belegt Ihr Feld 9 Zeichen (und ein wenig Overhead)
NCHAR/NVARCHAR
: Unicode-Versionen von oben; speichert immer 2 Bytes pro Zeichen, also speichert Ihr Feld mit Christmas
9 Zeichen und verwendet dafür 18 Bytes. Diese werden benötigt, wenn Sie nicht westeuropäische Zeichen haben - wie kyrillische, arabische, hebräische, asiatische oder andere Alphabete.
VARCHAR(MAX) / NVARCHAR(MAX)
sind die Ersetzungen für TEXT
und NTEXT
- das Speichern von bis zu 2 GByte (2 Milliarden Bytes) Daten - das ist mehr als das 300-fache von Tolstois War and Peace
- sollte ausreichen große Mehrheit der Fälle: -)
So könnte Ihr Entscheidungsbaum so aussehen:
Brauche ich nicht westeuropäische Charaktere? Wenn ja - & gt; Verwenden Sie NCHAR/NVARCHAR
types, andernfalls CHAR/VARCHAR
Ist meine Zeichenkette sehr kurz (& lt; 5 Zeichen) und typischerweise immer gleich lang? Wenn ja: Verwenden Sie CHAR, andernfalls VARCHAR
Brauche ich wirklich sehr große Textmengen? Wenn dies der Fall ist, verwenden Sie VARCHAR (MAX), andernfalls passen Sie es an Ihre Bedürfnisse an.
Viele Leute werden nvarchar in allen Fällen anstelle von varchar empfehlen, aber da ich meine Websites / Zielgruppe kenne, muss ich keine internationalen Zeichensätze zulassen und möchte den Speicherplatz / die Geschwindigkeit / Ressourcen nicht verschwenden (minimal ich weiß). Wenn es nötig ist, ersetzen Sie gegebenenfalls nvarchar
Tags und Links sql sql-server