sql >> Database >  >> RDS >> Sqlserver

Verschil tussen numeriek, zwevend en decimaal in SQL Server

gebruik de float of echt gegevenstypen alleen als de precisie geleverd door decimaal (tot 38 cijfers) is onvoldoende

  • Geschatte numerieke gegevenstypen (zie tabel 3.3) slaan niet de exacte waarden op die voor veel zijn opgegeven nummers; ze bewaren een extreem close benadering van de waarde.(Technet)

  • Vermijd het gebruik van float- of real-kolommen in zoekvoorwaarden van de WHERE-clausule, met name de operatoren =en <>. Het is het beste om float en echte kolommen te beperken tot> of

dus over het algemeen is het kiezen van Decimaal als uw gegevenstype de beste keuze als

  • je nummer past erin. Decimale precisie is 10E38[~ 38 cijfers]
  • kleinere opslagruimte (en misschien rekensnelheid) van Float is niet belangrijk voor u
  • exact numeriek gedrag is vereist, zoals bij financiële toepassingen, bij bewerkingen met afronding of bij gelijkheidscontroles. (Technet)
  1. Exact Numerieke gegevenstypen decimaal en numeriek - MSDN
  • numeriek =decimaal (5 tot 17 bytes)
    • wordt toegewezen aan Decimaal in .NET
    • beide hebben (18, 0) als standaard (precisie,schaal) parameters in SQL server
    • schaal =maximum aantal decimale cijfers dat rechts van de komma kan worden opgeslagen.
    • money (8 byte) en smallmoney (4 byte) zijn ook Exact Data Type en worden toegewezen aan Decimal In .NET en hebben 4 decimalen (MSDN)
  1. Bij benadering Numeriek gegevenstype zwevend en echt - MSDN
  • echt (4 bytes)
    • wordt toegewezen aan Single in .NET
    • Het ISO-synoniem voor echt is float(24)
  • float (8 byte)
    • wordt toegewezen aan Double in .NET

  • Allemaal exact numerieke typen geven altijd hetzelfde resultaat, ongeacht de soort processorarchitectuur die wordt gebruikt of de grootte van de getallen
  • De parameter die aan het gegevenstype float wordt geleverd, definieert het aantal bits dat wordt gebruikt om de mantisse van het drijvende-kommagetal op te slaan .
  • Geschat numeriek gegevenstype gebruikt meestal minder opslagruimte en heeft een betere snelheid (tot 20x) en u moet ook overwegen wanneer ze zijn geconverteerd in .NET
  • Wat is het verschil tussen Decimal, Float en Double in C#
  • Decimaal versus dubbele snelheid
  • SQL Server - .NET-gegevenstypetoewijzingen (van MSDN)

hoofdbron :MCTS-trainingspakket op eigen tempo (examen 70-433):Microsoft® SQL Server® 2008-databaseontwikkeling - Hoofdstuk 3 - Tabellen, gegevenstypen en declaratieve gegevensintegriteit Les 1 - Gegevenstypen kiezen (richtlijnen) - pagina 93



  1. CONCAT() Functie in Oracle

  2. Aantal SQL(*) prestaties

  3. Barman gebruiken voor PostgreSQL Disaster Recovery

  4. SQL-query traag in .NET-toepassing maar onmiddellijk in SQL Server Management Studio