sql >> Databasteknik >  >> RDS >> Sqlserver

Skillnad mellan numerisk, float och decimal i SQL Server

använd floaten eller riktigt datatyper endast om precisionen som tillhandahålls av decimal (upp till 38 siffror) är otillräckligt

  • Ungefärliga numeriska datatyper (se tabell 3.3) lagrar inte de exakta värdena som anges för många tal; de lagrar en extremt nära uppskattning av värdet.(Technet)

  • Undvik att använda flytande eller riktiga kolumner i sökvillkoren för WHERE-satser, särskilt operatorerna =och <>. Det är bäst att begränsa flytande och verkliga kolumner till> eller

så att generellt välja Decimal som din datatyp är det bästa alternativet om

  • ditt nummer får plats i den. Decimalprecision är 10E38[~ 38 siffror]
  • mindre lagringsutrymme (och kanske beräkningshastighet) för Float är inte viktigt för dig
  • exakt numeriskt beteende krävs, t.ex. i finansiella tillämpningar, i operationer som involverar avrundning eller i jämställdhetskontroller. (Technet)
  1. Exakt Numeriska datatyper decimala och numeriska - MSDN
  • numerisk =decimal (5 till 17 byte)
    • mappar till decimal i .NET
    • båda har (18, 0) som standardparametrar (precision, skala) i SQL-servern
    • skala =maximalt antal decimalsiffror som kan lagras till höger om decimaltecknet.
    • money(8 byte) och smallmoney(4 byte) är också Exact Data Type och kommer att mappas till Decimal In .NET och har 4 decimaler (MSDN)
  1. Ungefärlig Numerisk datatyp flytande och verklig - MSDN
  • riktig (4 byte)
    • kommer att mappas till singel i .NET
    • ISO-synonymen för verklig är float(24)
  • flytande (8 byte)
    • kommer att mappas till Double i .NET

  • Alla exakta numeriska typer ger alltid samma resultat, oavsett vilken typ av processorarkitektur som används eller storleken på siffrorna
  • Parametern som levereras till flytdatatypen definierar antalet bitar som används för att lagra mantissan för flyttalsnumret .
  • Ungefärlig numerisk datatyp använder vanligtvis mindre lagringsutrymme och har bättre hastighet (upp till 20x) och du bör också tänka på när de konverterades i .NET
  • Vad är skillnaden mellan Decimal, Float och Double i C#
  • Decimal vs dubbel hastighet
  • SQL-server - .NET-datatypmappningar (från MSDN)

huvudkälla :MCTS träningspaket i egen takt (examen 70-433):Microsoft® SQL Server® 2008 Databasutveckling - Kapitel 3 - Tabeller, datatyper och deklarativ dataintegritet Lektion 1 - Välja datatyper (riktlinjer) - Sida 93



  1. Automatisk radering av glömda transaktioner i MS SQL Server

  2. Hur använder jag på delete cascade i mysql?

  3. Parallella utförandeplaner – grenar och trådar

  4. Omvandling av rad till kolumn i MySQL