SQL Server Data Types Tutorial

In SQL worden de kolommen van een tabel gedefinieerd om een specifiek soort waarde op te slaan, zoals getallen, datums of tekst; Dit worden gegevenstypen genoemd. Met meer dan dertig soorten SQL server data types om uit te kiezen, data types kunnen intimiderend lijken, maar in werkelijkheid, er zijn slechts een paar vaak gebruikt in databases.

zodra u gegevenstypen in het algemeen begrijpt, is het geen ingewikkeld onderwerp. U zult ook begrijpen waarom er behoefte is aan gegevenstypen en waarom er zoveel variëteiten zijn.,

in dit artikel gaan we de meest voorkomende datatypes en de best practices voor het gebruik ervan bespreken.

alle voorbeelden voor deze les zijn gebaseerd op Microsoft SQL Server Management Studio en de AdventureWorks2012 database. Aan de slag met deze gratis tools met my guide Aan de slag met SQL Server.

Wat zijn gegevenstypen van SQL Server?

voordat we ingaan op de gegevenstypen die in SQL server worden gebruikt, denk ik dat het belangrijk is voor iedereen om te begrijpen wat een gegevenstype is, en waarom ze nodig zijn voor gebruik in computers.

in ons voorbeeld zullen we het hebben over een persoon., Als je na te denken over de informatie die u kunt gebruiken om een persoon te beschrijven kunt u denken om hun naam te verzamelen, geboortedatum, gewicht, en het aantal kinderen. Voor elk van deze kenmerken vallen de gegevens over het algemeen in verschillende categorieën.

namen worden opgeslagen als tekst, geboortedata als kalenderdata, en gewicht als decimale waarden, en een aantal kinderen als gehele getallen. Elk van deze categorieën van waarden is een gegevenstype.

hoe SQL-typen helpen

gegevenstypen definiëren de kenmerken van de gegevens die kunnen worden opgeslagen op een locatie zoals een databasekolom., Een gegevenstype definieert de mogelijke reeks waarden die worden geaccepteerd. Bijvoorbeeld, een type int dat staat voor integer in SQL server kan alleen hele getallen accepteren, decimale waarden zijn niet toegestaan.

Hier is een lijst van enkele personen en hun leeftijden

Age – Just Text Values

kunt u het probleem met deze leeftijden zien? Ze zijn allemaal in een inconsistent formaat. Niet alleen zijn ze moeilijk te lezen, maar het sorteren en berekenen van de gegevens is moeilijk., Door gebruik te maken van SQL Server Data types, die het verwachte type data afdwingen dat opgeslagen moet worden, kunnen we een veel beter resultaat bereiken. Hier is dezelfde tabel met de leeftijden weergegeven als gehele getallen

leeftijden conform INT gegevenstype

wanneer leeftijd is gedefinieerd als een geheel getal worden de verwachting dat de gegevens als gehele getallen worden ingevoerd.

zonder in technische details te treden, kunt u ook zien dat het opslaan van de leeftijd als een geheel getal veel minder ruimte in beslag neemt dan de leeftijd in de eerste tabel., Dit lijkt misschien niet een enorme overweging met kleine databases, maar bij het werken met gegevens op smartphones of “big data” scenario ‘ s, deze overwegingen optellen.

zodra het systeem het gegevenstype begrijpt, kan het de gegevens sorteren in een logische volgorde en berekeningen uitvoeren.

redenen om gegevenstypen van SQL Server te gebruiken

Hier zijn enkele redenen waarom gegevenstypen belangrijk zijn:

  1. gegevens worden opgeslagen in een consistent en bekend formaat.
  2. Als u het gegevenstype kent, kunt u weten welke berekeningen en formuleringen u in de kolom kunt gebruiken.,
  3. gegevenstypen beïnvloeden opslag. Sommige waarden nemen meer ruimte in beslag wanneer ze worden opgeslagen in het ene gegevenstype ten opzichte van een ander. Neem bijvoorbeeld onze leeftijdstabellen hierboven.
  4. gegevenstypen beïnvloeden de prestaties. Hoe minder tijd de database heeft om waarden af te leiden of te converteren, hoe beter. “Is 32 December 2015 een datum?”

veelgebruikte SQL Server Data Types

in SQL definieert u wat voor soort data u binnen kolommen moet opslaan. Een voorbeeld bevat tekst of numerieke gegevens.,

Dit is het gegevenstype van de kolom, en een van de belangrijkste eigenschappen omdat alleen dit bepaalt of een waarde geldig is voor opslag in een kolom.

er zijn meer dan dertig verschillende gegevenstypen waaruit u kunt kiezen bij het definiëren van kolommen, sommige hebben specifieke toepassingen, zoals het opslaan van afbeeldingen.

in dit artikel gaan we de zeven gegevenstypen behandelen die u het vaakst tegenkomt in uw dagelijks gebruik van SQL., Dit zijn:

  • INT
  • VARCHAR, NVARCHAR
  • DATETIME
  • decimaal, FLOAT
  • BIT

INT – Integer gegevenstype

Het integer gegevenstype slaat hele getallen op. Voorbeelden zijn -23, 0, 5 en 10045. Hele getallen bevatten geen decimalen. Aangezien de SQL server een aantal computerwoorden gebruikt om een geheel getal te vertegenwoordigen, zijn er maximum-en minimumwaarden die het kan vertegenwoordigen. Een INT datatype kan een waarde opslaan van -2,147,483,648 tot 2,147,483,647.,

praktisch gebruik van het INT-gegevenstype omvat het gebruik ervan om waarden te tellen, de leeftijd van een persoon op te slaan of te gebruiken als een ID-sleutel voor een tabel.

maar INT zou niet zo goed zijn om een terabyte-adresruimte op de harde schijf bij te houden, omdat het INT-gegevenstype slechts 2 miljard bedraagt en we de biljoenen moeten volgen. Hiervoor kun je BIGINT gebruiken.

Het int-gegevenstype wordt binnen berekeningen gebruikt., Aangezien de productie van Daystomen wordt gedefinieerd als INT, kunnen we eenvoudig uren berekenen door deze te vermenigvuldigen met 24:

SELECT Name, Daystom Manufacture, Daystom Manufacture * 24 as Hourstom manufacture from Production.Product
/* Answer */SELECT Name, DaysToManufacture, DaysToManufacture * 24 as HoursToManufactureFROM Production.Product

Hier zie je de resultaten

Resultaten van INT berekeningen

Er zijn veel activiteiten en functies die u kunt gebruiken met gehele getallen die we zullen behandelen zodra we dieper in op functies.,

VARCHAR en nvarchar-tekstwaarden

gebruik VARCHAR en NVARCHAR om tekstwaarden met variabele lengte op te slaan. “VARCHAR” staat voor variabele lengte karakter.

specificeer het aantal tekens dat moet worden opgeslagen in een VARCHAR of NVARCHAR als de kolom is gedefinieerd. Merk op hoe naam gedefinieerd wordt om vijftig tekens te bevatten:

VARCHAR definitie getoond in SSMS Object Explorer

wat VARCHAR populair maakt is dat waarden van minder dan vijftig tekens minder ruimte innemen. Ruimte wordt toegewezen indien nodig., Dit verschilt van het Char-gegevenstype dat altijd de opgegeven Lengte toewijst, ongeacht de lengte van de daadwerkelijk opgeslagen gegevens.

het VARCHAR-datatype kan doorgaans maximaal 8.000 tekens opslaan. Gebruik het nvarchar datatype om Unicode-tekst op te slaan. Omdat UNICODE-tekens twee keer zoveel ruimte innemen, kunnen nvarchar-kolommen maximaal 4.000 tekens opslaan.

het voordeel dat NVARCHAR heeft ten opzichte van VARCHAR is dat het Unicode-tekens kan opslaan. Dit maakt het handig om uitgebreide tekensets op te slaan zoals die gebruikt worden voor talen zoals Kanji.,

Databases ontworpen voor SQL 2008 gebruiken meestal VARCHAR; echter, meer moderne databases of databases van globale aard hebben de neiging om NVARCHAR te gebruiken.

DATETIME – datum en tijd

gebruik het datetime-gegevenstype om de datum en tijd op te slaan. Een voorbeeld van een datatime waarde is

1968-10-23 1:45:37.123

Dit is de waarde voor 23 oktober 1968 om 01: 45. Eigenlijk is de tijd preciezer dan dat. De tijd is echt 45 minuten, 37,123 seconden.

in veel gevallen hoeft u alleen de datum op te slaan. In deze gevallen wordt de tijdcomponent op nul gezet., Zo is 5 November 1972

1972-11-05 00:00:00.000

een DATETIME kan data opslaan van 1 januari 1753 tot 31 December 9999. Dit maakt de DATETIME goed voor het opnemen van datums in de wereld van vandaag, maar niet zozeer in William Shakespeare ‘ s.

naarmate je meer vertrouwd raakt met de verschillende SQL ingebouwde functies zul je in staat zijn om de data te manipuleren. Om u een glimp op te vangen, gebruiken we de JAARFUNCTIE om medewerkers die elk jaar worden ingehuurd te tellen. Wanneer een DATETIME-waarde wordt gegeven, retourneert de functie jaar het jaar.,

de query die we gebruiken is

het voordeel is het DATETIME type zorgt ervoor dat de waarden geldige datums zijn. Zodra dit is verzekerd, zijn we in staat om een reeks functies te gebruiken om het aantal dagen tussen datums, de maand van een datum en ga zo maar door te berekenen.

We zullen deze verschillende functies in detail onderzoeken in een ander blogartikel.

decimaal en FLOAT – decimale punten

gebruik zowel decimale als FLOAT datatypes om te werken met decimale waarden zoals 10.3.,

i lumped decimaal en zweven in dezelfde categorie, omdat ze beide kunnen omgaan met waarden met decimale punten; echter, ze doen beide anders:

Als u precieze waarden nodig hebt, zoals bij het werken met financiële of boekhoudkundige gegevens, gebruik dan decimaal. De reden is dat het decimale datatype u toestaat om het aantal decimale punten te handhaven te definiëren.

decimaal

decimale gegevenstypen worden gedefinieerd door precisie en schaal. De precisie bepaalt het aantal totale cijfers op te slaan; terwijl, schaal bepaalt het aantal cijfers rechts van de komma.,

een decimaal datatype wordt gespecificeerd als decimaal (precisie, schaal).

een decimaal datatype mag niet meer dan 38 cijfers zijn. De nauwkeurigheid en schaal moeten in de productie in overeenstemming zijn met de volgende relatie

0 <= scale <= precision <= 38 digits

.Producttabel, het datatype van de kolom gewicht wordt gedefinieerd als decimaal(8,2). Het eerste cijfer is de precisie, het tweede de schaal.

gewicht wordt gedefinieerd als acht cijfers in totaal, waarvan twee rechts van de komma. We zullen de volgende voorbeeldquery om te illustreren hoe dit gegevenstype.,

selecteer verschillend gewicht van de productie.Product met een gewicht tussen 29.00 en 189.00 volgorde van gewicht DESC
/* Answer */SELECT DISTINCT WeightFROM Production.ProductWHERE Weight BETWEEN 29.00 and 189.00ORDER BY Weight DESC

FLOAT

waar decimale datatypes geweldig zijn voor exacte getallen, FLOATs zijn echt goed voor lange numerieke waarden. Hoewel een decimale waarde 38 cijfers totaal kan hebben, is dit in veel technische en wetenschappelijke toepassingen onvoldoende. FLOAT stijgt naar de top binnen wetenschappelijke toepassingen waar extreme numerieke waarden worden aangetroffen!

FLOATS hebben een bereik van – 1.,79E + 308 t / m 1,79 E+308. Dat betekent dat de grootste waarde 179 kan zijn gevolgd door 306 nullen (inderdaad groot!).

vanwege de manier waarop floatgegevens in de computer worden opgeslagen (zie IEEE 754 floating point specificatie) is het opgeslagen getal een zeer nauwe benadering. Voor veel toepassingen is dit goed genoeg.

vanwege het geschatte gedrag, vermijd het gebruik van <> en = operators in de WHERE-clausule. Deze verklaring heeft may DBA ‘ s verbrand!

WHERE mass = 2.5

hun verwachting wordt onderbroken wanneer massa wordt verondersteld gelijk te zijn aan 2.,5, maar echt, op de computer, het is opgeslagen als 2.499999999999999; daarom niet gelijk aan 2.5000000000000!

dat is de aard van drijvende punten en computers. Jij en ik zien 2.49999999999999999 en denken voor praktische doeleinden is het 2,5, maar naar de computer, waren uit slechts een beetje. J

BIT-Boolean or Yes / No values

Er zijn momenten waarop je gewoon moet opslaan of iets ” is “of” is niet.”Bijvoorbeeld of een werknemer actief is. Het is in deze gevallen dat de BIT datatype komt tot zijn eigen. Dit gegevenstype is een van de drie toestanden: 1, 0 Of NULL.,

de waarde van 1 betekent waar en 0 onwaar.

in deze query worden alle betaalde functietitels weergegeven

selecteer afzonderlijke Jobtitlevan HumanResources.EmployeeWHERE SalariedFlag = 1
SELECT DISTINCT JobTitleFROM HumanResources.EmployeeWHERE SalariedFlag = 1

We hadden ook ‘True’ kunnen gebruiken in plaats van 1. Hier is hetzelfde voorbeeld met ‘True’

Leave a Comment