SQL Server Datatyper Opplæringen

I SQL kolonnene i en tabell som er definert til å lagre en bestemt type verdi, for eksempel tall, datoer, eller teksten, og disse kalles data-typer. Med over tretti typer av SQL server data typer å velge mellom, datatyper kan virke skremmende, men i virkeligheten, det er bare noen få som vanligvis brukes i databaser.

Når du forstår typer data, generelt, det er ikke et komplisert emne. Du vil også komme til å forstå hvorfor det er behov for data typer og grunn er det så mange varianter.,

I denne artikkelen skal vi gå gjennom de mest vanlige datatyper og beste praksis for deres bruk.

Alle eksempler for denne leksjonen er basert på Microsoft SQL Server Management Studio og AdventureWorks2012 database. Kom i gang ved å bruke disse gratis verktøy med min guide Komme i Gang ved Hjelp av SQL Server.

Hva er SQL Server Datatyper?

Før vi kommer inn i typer data som brukes i SQL server, jeg tror det er viktig for alle å forstå hva en datatype er, og hvorfor de er nødvendige for bruk i datamaskiner.

For eksempel, vår, vil vi snakke om en person., Hvis du tenker om den informasjon du kan bruke til å beskrive en person du kan tenke på å samle inn deres navn, fødselsdato, vekt og antall barn. For hver av disse egenskapene, data generelt faller i flere kategorier.

Navn er lagret som tekst, fødselsdager som kalender datoer og vekt som desimalverdier, og en rekke barn som heltall. Hver av disse kategoriene av verdier er en datatype.

Hvordan SQL Typer Hjelp

typer Data, angi egenskaper av data som kan være lagret i en plassering, for eksempel en database kolonne., En datatype angir mulige sett av verdier som er akseptert. For eksempel, en type INT som står for heltall i SQL server kan godtar bare hele tall, desimaltall verdier er ikke tillatt.

Her er en liste over noen mennesker og deres alder

Alder – Bare Tekst-Verdier

Kan du se problemet med disse tidene? De er alle i en ustabil format. Ikke bare er de vanskelig å lese, men sortering og beregning av data er vanskelig., Ved hjelp av SQL Server datatyper, som håndheve forventet type data som skal lagres, kan vi oppnå et mye bedre resultat. Her er den samme tabellen med alle tider vises som heltall

Aldre samsvar med INT datatype

Når alder er definert som et heltall forventningen er data er lagt inn som hele tall.

Også, uten å komme inn i tekniske detaljer, kan du se lagre den alder som et heltall tar opp mye mindre plass enn den alder i den første tabellen., Dette kan ikke virke som en stor vederlag med små databaser, men når du arbeider med data på smarttelefoner eller «big data» – scenarier, disse hensynene legge opp.

Når systemet forstår datatype, det kan da sortere data i en rekkefølge som gir mening samt utføre beregninger.

Grunner til å bruke SQL Server Datatyper

Her er noen grunner til hvorfor du datatyper som er viktig:

  1. Data som er lagret på en konsistent og kjent format.
  2. å Vite datatype gir deg mulighet til å vite hvilke beregninger og formuleringer du kan bruke på kolonnen.,
  3. typer Data, påvirker lagring. Noen verdier ta opp mer plass når de er lagret i en datatype kontra en annen. Ta vår alder tabellene ovenfor, for eksempel.
  4. typer Data påvirke ytelsen. Jo mindre tid databasen har til å utlede verdier eller konvertere dem bedre. «Er desember 32, 2015 en dato?»

brukte SQL Server Datatyper

I SQL kan du definere hva slags data til å lagre i kolonner. Noen eksempel inneholder tekst eller numeriske data.,

Dette er kolonnen datatype, og en av dens viktigste egenskaper som alene avgjør om en verdi er gyldig for lagring i en kolonne.

Det er over tretti forskjellige typer data, kan du velge fra når du definerer kolonnene, noen har spesifikke bruksområder, som for eksempel lagring av bilder.

I denne artikkelen kommer vi til å dekke de syv typer data, vil du oftest møter i din daglige bruk av SQL., Disse er:

  • INT
  • VARCHAR, NVARCHAR
  • DATETIME
  • DESIMAL, FLYTE
  • BIT

INT Heltall – datatype

heltall-datatype som lagrer hele tall. Eksempler inkluderer -23, 0, 5, og 10045. Hele tallene inkluderer ikke desimaler. Siden SQL server bruker en rekke datamaskinen ord til å representere et heltall det er maksimum og minimum verdier som det kan representere. En INT datatype kan lagre en verdi fra -2,147,483,648 å 2,147,483,647.,

Praktisk bruk av INT datatype inkluderer bruke den til å telle verdier, lagre en persons alder, eller bruke som en ID-tasten til en tabell.

Men INT ikke ville være så god å holde styr på en terabyte harddisk adresseområde, som INT datatype bare går til 2 milliarder kroner, og vi trenger å spore i de billioner. For dette, kan du bruke BIGINT.

INT datatype er å bruke i beregninger., Siden DaysToManufacture er definert som INT, kan vi enkelt beregne timer ved å multiplisere det ved 24:

VELG Navn, DaysToManufacture, DaysToManufacture * 24 som HoursToManufactureFROM Produksjon.Produktet
/* Answer */SELECT Name, DaysToManufacture, DaysToManufacture * 24 as HoursToManufactureFROM Production.Product

Her kan du se resultatene

Resultater av INT beregninger

Det er mange operasjoner og funksjoner du kan bruke med heltall som vi kommer tilbake når vi grave i funksjoner.,

VARCHAR og NVARCHAR – Tekst-Verdier

Bruk VARCHAR og NVARCHAR til å lagre variabel lengde tekst verdier. «VARCHAR» står for variabel lengde karakter.

Angi antallet tegn til å lagre i en VARCHAR eller NVARCHAR som kolonne er definert. Legg merke til hvordan Navnet er definert til å holde femti tegn:

VARCHAR definisjon vist i SSMS Object Explorer

Hva gjør VARCHAR populært er at verdier som er mindre enn femti tegn ta mindre plass. Plassen er tildelt etter behov., Dette skiller seg fra CHAR data type som alltid tildeler den angitte lengde, uavhengig av lengden av den faktiske data som er lagret.

VARCHAR datatype kan vanligvis lagre maksimalt av 8000 tegn. Bruk NVARCHAR datatype for å lagre Unicode-tekst. Siden UNICODE-tegn okkupere to ganger på plass, NVARCHAR kolonner kan lagre maksimalt 4000 tegn.

fordelen NVARCHAR har over VARCHAR er at den kan lagre Unicode-tegn. Dette gjør det praktisk å lagre utvidet tegnsett som de som brukes for språk som Kanji.,

Databaser utviklet før SQL 2008 vanligvis bruker VARCHAR, men mer moderne databaser eller de som er global i sin natur har en tendens til å bruke NVARCHAR.

DATETIME – Dato og Tid

Bruk DATETIME data type for å lagre dato og klokkeslett. Et eksempel på en DATATIME verdien er

1968-10-23 1:45:37.123

Dette er verdien for 23. oktober, 1968 på 1:45 AM. Faktisk tiden er mer presis enn det. Tiden er virkelig 45 minutter, 37.123 sekunder.

I mange tilfeller, du trenger bare å lagre dato. I disse tilfeller er den komponenten er zeroed ut., Dermed, November 5th, 1972 er

1972-11-05 00:00:00.000

EN DATETIME kan lagre datoer fra 1. januar 1753, til og med 31. desember 9999. Dette gjør DATETIME god for opptak datoer i dagens verden, men ikke så mye i William Shakespeares.

Som du blir mer fortrolig med de ulike SQL innebygde funksjoner vil du være i stand til å manipulere data. For å gi deg et glimt, vil vi bruke ÅRET funksjon for å telle ansatte ansatt hvert år. Når det er gitt en DATETIME-verdi, ÅRET funksjonen returnerer året.,

spørringen vi vil bruke er

fordelen er DATETIME type sikrer verdier er gyldige datoer. Når dette er trygg, vi er i stand til å bruke massevis av funksjoner for å beregne antall dager mellom datoer, måned for en date, og så videre.

Vi vil se nærmere på disse ulike funksjonene i detalj i en annen blogg artikkelen.

DECIMAL og FLOAT – Desimaler

Bruk både DECIMAL og FLOAT datatyper til å arbeide med desimalverdier for eksempel 10.3.,

jeg samlet DECIMAL og FLOAT i samme kategori, siden de både kan håndtere verdier med desimaler; men de begge gjør dette på en annen måte:

Hvis du trenger presise verdier, for eksempel når du arbeider med økonomiske eller regnskapsmessige data, og deretter bruke DESIMAL. Årsaken er den DESIMAL datatype, kan du angi antall desimaler for å opprettholde.

DESIMAL

DESIMAL datatyper er definert av presisjon og omfang. Presisjonen bestemmer antall sifre til butikken, mens skalaen bestemmer antall sifre til høyre for desimaltegnet.,

EN DESIMAL datatype er angitt som DESIMAL(presisjon,skala).

EN DESIMAL datatype kan ikke være mer enn 38 sifre. Presisjonen og skala må forholde seg til følgende forhold

0 <= scale <= precision <= 38 digits

I Produksjon.Produktet bordet, vekt kolonnen datatype er definert som DESIMAL(8,2). Det første sifferet er presisjonen, den andre skalaen.

Vekt er definert til å ha totalt åtte sifre, to av dem til høyre for desimaltegnet sted. Vi vil følgende eksempel spørringen for å illustrere hvordan denne datatypen.,

VELG DISTINKTE WeightFROM Produksjon.ProductWHERE Vekt MELLOM 29.00 og 189.00 ORDRE MED Vekt DESC
/* Answer */SELECT DISTINCT WeightFROM Production.ProductWHERE Weight BETWEEN 29.00 and 189.00ORDER BY Weight DESC

FLOAT

Hvor DESIMAL datatyper er stor for eksakte tall, Flyter er veldig bra for lange numeriske verdier. Selv om en DESIMAL verdi kan ha 38 sifre totalt, i mange tekniske og vitenskapelige programmer dette er utilstrekkelig. FLOAT stiger til toppen innen vitenskapelige programmer hvor ekstreme numeriske verdier er oppstått!

FLYTER har et utvalg fra – 1.,79E+308 å 1.79 E+308. Det betyr at den største verdien kan være 179 etterfulgt av 306 nuller (stor faktisk!).

på Grunn av den måten flyte data som er lagret i datamaskinen (se IEEE 754 floating point spesifikasjon) antall lagret er en ekstremt nær tilnærming. For mange bruksområder, dette er bra nok.

på Grunn av den omtrentlige atferd, unngå bruk av <> og = operatører i WHERE-setningsdelen. Denne setningen har brent kan DBAs!

WHERE mass = 2.5

Deres forventninger er stiplet når massen er ment å lik 2.,5, men virkelig, på datamaskinen, lagres det som 2.499999999999999, og det er derfor ikke lik for å 2.500000000000000!

Det er arten av flytende poeng og datamaskiner. Du og jeg ser 2.499999999999999 og tenke for praktiske formål er det 2.5, men til datamaskinen, var av bare litt. J

BIT – Boolske eller Ja/Nei-verdier

Det er tider når du trenger bare å lagre om noe «er» eller «er det ikke.»For eksempel, om en ansatt er aktiv. Det er i disse tilfellene at BIT-datatype kommer til sine egne. Denne datatypen er en av tre tilstander: 1, 0, eller NULL.,

Den verdien 1 betyr SANNE og 0 FEIL.

I dette søket, vi er en liste over alle lønnede stilling jobb titler

VELG DISTINKTE JobTitleFROM HumanResources.EmployeeWHERE SalariedFlag = 1
SELECT DISTINCT JobTitleFROM HumanResources.EmployeeWHERE SalariedFlag = 1

Vi kunne også ha brukt «Ekte» i stedet for 1. Her er samme eksempel ved å bruke «Ekte»

Leave a Comment