SQL zu verwenden Wenn Die Daten Geben
Hallo, ich Frage mich Wann sollte ich die Verwendung der verschiedenen Datentypen. Wie in meiner Tabelle, wie kann ich entscheiden, welche zu verwenden: nvarchar, nchar -, varchar -, varbinary -, etc.
Beispiele:
Was würde ich für eine ... Spalte:
Phone number,
Address,
First Name, Last Name,
Email,
ID number,
etc.
Vielen Dank für jede Hilfe!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Allgemeine Regel, würde ich nicht definieren, alles, was als "Nummer" - Feld, wenn ich nicht gehen zu tun, arithmetische Operationen auf, auch wenn die Daten selbst war numerisch.
Ihrem "Telefon" - Feld ist ein Beispiel dafür. Ich würde definieren, dass Sie als varchar.
Varchar, Integer und Bit decken 99% von meinem Tag zu Tag verwendet.
Die Frage hängt wirklich von Ihren Anforderungen. Ich weiß, dass das keine besonders befriedigende Antwort, aber es ist wahr.
Den n..char Datentypen für Unicode-Daten, so dass, wenn Sie gehen zu müssen, um die Verwendung der unicode-Zeichensätze, die in Ihren Daten, die Sie verwenden sollten diese Arten, im Gegensatz zu Ihren "nicht-n" - Analoga. die nchar-und char-Typ mit fester Länge, und die vom Datentyp nvarchar und varchar-Datentyp kann eine variable Länge haben, wird die Wirkung der Größe der Spalte auf der Festplatte und im Arbeitsspeicher. Generell würde ich sagen, verwenden Sie den Typ, der verwendet am wenigsten Speicherplatz, aber passend für Ihre Bedürfnisse.
Auf dieser Seite links zu den Microsoft-Beschreibungen für diese Datentypen für SQL Server 2005, von denen viele geben Hinweise für die Verwendung der Art. Möglicherweise werden Sie besonders daran interessiert, auf dieser Seite bezüglich char-und varchar-Typen.
Einen Datentyp beginnend mit n bedeutet, es kann verwendet werden für unicode-Zeichen... z.B. nVarchar.
Auswahl von ganzen zahlen ist auch ganz lustig.
http://www.databasejournal.com/features/mssql/article.phpr/2212141/Choosing-SQL-Server-2000-Data-Types.htm
Den häufigsten Datentyp ich verwenden, ist varchar....
N* Datentypen (NVARCHAR, NCHAR NTEXT) sind für Unicode-Zeichenfolgen. Nehmen Sie zwei mal den Raum, Ihre "normalen" Anhänger (VARCHAR, CHAR, TEXT) benötigen, aber Sie können Sie speichern ohne Unicode-Umstellung und den möglichen Verlust der treue.
Den TEXT-Datentypen speichern können nahezu unbegrenzte Mengen an Daten, Sie führen allerdings nicht so gut wie der CHAR-Datentypen, da Sie gespeichert sind, außerhalb der Aufzeichnung.
VARCHAR-Datentypen von variabler Länge. Sie werden nicht mit Leerzeichen aufgefüllt werden, am Ende aber Ihren CHAR Anhänger (a CHAR(20) ist immer zwanzig Zeichen lang, auch wenn wenn enthält 5 Buchstaben nur. Die restlichen 15 werden Leerzeichen).
Den binary-Datentypen sind für Binärdaten, was auch immer Sie speichern in Sie (die Bilder sind das beste Beispiel).
Andere Leute haben gute Allgemeine Antworten, aber ich möchte hinzufügen, ein wichtiger Punkt: bei der Verwendung von
VARCHAR()
s (was ich empfehlen würde, für diese Art von Feldern), verwenden Sie eine Länge, die groß genug ist für jeden vernünftigen Wert. Zum Beispiel habe ich in der Regel erklärenVARCHAR(100)
für einen Namen, eine e-mail-Adresse, domain-Namen, name der Stadt, etc., undVARCHAR(200)
für eine URL oder Adresse.Dies ist mehr, als man routinemäßig müssen. In der Tat, 30 Zeichen ist genug für fast alle Werte (außer name, aber eine gute Datenbank sollte immer speichern, vor-und Nachname getrennt), aber es ist besser als das ändern der Datentypen eines Tages die Straße hinunter. Es gibt sehr wenig Kosten in der Angabe eines höheren als notwendigen Länge für eine
VARCHAR
, aber beachten Sie, dassVARCHAR(MAX)
undTEXT
tun bedeuten erheblichen Mehraufwand, so verwenden Sie nur, wenn erforderlich.Hier ein Beitrag, welche Punkte aus einem Fall, wo ein mehr-als-nötig
VARCHAR
kann verletzen Leistung: Bedeutung von varchar-Länge in MySQL-Tabelle. Geht zu zeigen, dass alles hat Kosten, aber im Allgemeinen würd ich mir noch gefallen langeVARCHAR
s.