Jan Riedel: Unterschied nchar / varchar / nvarchar ?

Hallo Leute,
kann mir jemand den Unterschied zwischen den drei oben genannten datentypen (MS SQL-Server) nennen? bzw. wann man was am besten verwendet?
Und was ist memo oder text ???
Ich verwende derzeit immer nur nvarchar ... ist das schlecht?
Hat jemand einen guten Link, der mit eine schöne Übersicht über die Datentypen gibt?

Viele Grüße,
Jan

  1. Hallo Jan,
    In SQL-Datenbanke gibts 'char' und 'varchar' als Standard-Datentypen f. Strings.
    Der UNterschied zwischen den beiden ist der, das der erste Strings mit fester Länge speichert, wobei er kürzere am ende mit Leerzeichen auffüllt.
    Der zweite speichert Strings mit variabler Länge. Daher auch der Name 'varchar' ;-)
    Standardmäßig können beide max. 255 Zeichen aufnehmen, neuere Datenbanken lassen mehr zu.
    Der SQL-Server 6.6 läßt nur 255 zu, die VErsion 7 dagegen bis zu 8000.

    'text' steht für große Textfelder bis zu 2 GByte Text und ist meist nicht indizierbar und man kann sie nicht in Where-klauseln verwenden. Ob das beim der Version 7 auch der Fall ist, hab ich auf die schnelle nicht rausgefunden

    wenn dies Datentypen ein 'n' vroangestellt bekommen, dann speichern sie die Daten in Unicode ab (16 Bit pro Zeichen). Dadurch halbieren sich die max. von Zeichen je Feld, wobei der speicherbedarf jedoch gleich bleibt.
    also wenn Du nvarchar(2000) verwendest, dann brauchst Du 4000 Bytes Speciherplatz. Dafür hast Du keinen Streß mit Sonderzeichen mehr, wenn Du multilinguale Tabellen erstellen willst, oder diese Daten weltweit austauschen mußt.

    Zum Thema Übersicht über die Datentypen:
    In der Onlinedoku des SQL-Servers findest Du alles, was gebraucht wird. Einfach nach 'Datentypen,Beschreibung' suchen und dann den Verweis auf T-SQL nehmen. Wirst schon finden, ansonsten mail ich Dir den ganzen text.

    Grüße
    Klaus