SQL Server Datové Typy Tutorial

V SQL sloupce tabulky jsou definovány pro ukládání konkrétní druh hodnoty, například čísla, data nebo text; jedná se o tzv. datové typy. S více než třiceti typy datových typů SQL server z čeho vybírat, datové typy se mohou zdát zastrašující, ale ve skutečnosti, existuje jen několik běžně používaných v databázích.

jakmile pochopíte datové typy obecně, není to složitý předmět. Také pochopíte, proč je potřeba datových typů a důvod, proč existuje tolik odrůd.,

v tomto článku se podíváme na nejběžnější datové typy a osvědčené postupy pro jejich použití.

všechny příklady této lekce jsou založeny na Microsoft SQL Server Management Studio A databázi AdventureWorks2012. Začněte používat tyto bezplatné nástroje s mým průvodcem Začínáme používat SQL Server.

jaké jsou datové typy SQL Serveru?

než se dostaneme do datových typů používaných v SQL serveru, myslím, že je důležité, aby každý pochopil, co je datový typ a proč jsou potřebné pro použití v počítačích.

pro náš příklad budeme hovořit o osobě., Pokud jste si mysleli o informace, které byste mohli použít k popisu osoby může si vybírat své jméno, datum narození, hmotnost, a počet dětí. Pro každý z těchto atributů data obecně spadají do několika kategorií.

jména jsou uložena jako text, datum narození jako kalendářní data a hmotnost jako desetinné hodnoty a Počet dětí jako celá čísla. Každá z těchto kategorií hodnot je datový typ.

Jak typy SQL pomáhají

datové typy definují vlastnosti dat, která mohou být uložena v místě, jako je sloupec databáze., Datový typ definuje možnou sadu přijatých hodnot. Například typ INT, který znamená celé číslo v SQL Serveru, může přijímat pouze celá čísla, desetinné hodnoty nejsou povoleny.

Zde je výpis některých lidí a jejich věk,

Věk – Jen Textové Hodnoty

Můžete vidět problém s těmito věkových kategorií? Všechny jsou v nekonzistentním formátu. Nejen, že jsou těžko čitelné, ale třídění a výpočet dat je obtížné., Pomocí datových typů SQL Server, které vynucují očekávaný typ dat, která mají být uložena, můžeme dosáhnout mnohem lepšího výsledku. Zde je stejná tabulka s věky zobrazeny jako celá čísla

Věkových kategorií podle INT typ dat

Když věk je definován jako celé číslo očekává se, data se zadávají jako celá čísla.

Také, aniž by se do technických detailů, můžete vidět ukládání věku jako integer zabírá mnohem méně místa, než je věk v první tabulce., To se nemusí zdát jako obrovská úvaha s malými databázemi, ale při práci s daty na chytrých telefonech nebo scénářích „velkých dat“ se tyto úvahy sčítají.

jakmile systém rozumí datovému typu, může data třídit v pořadí, které má smysl, stejně jako provádět výpočty.

Důvody použití datových typů SQL Server

zde jsou některé důvody, proč jsou důležité datové typy:

  1. Data jsou uložena v konzistentním a známém formátu.
  2. Znalost datového typu Vám umožňuje zjistit, které výpočty a formulace můžete použít ve sloupci.,
  3. datové typy ovlivňují ukládání. Některé hodnoty zabírají více místa, když jsou uloženy v jednom datovém typu oproti jinému. Vezměte si například naše věkové tabulky výše.
  4. datové typy ovlivňují výkon. Čím méně času musí databáze odvodit hodnoty nebo je převést, tím lépe. „Je 32. prosince 2015 Datum?“

běžně používané datové typy SQL Serveru

v SQL definujete, jaký druh dat chcete uložit do sloupců. Některé příklady zahrnují textová nebo číselná data.,

jedná se o datový typ sloupce a jedna z jeho nejdůležitějších vlastností, protože sama určuje, zda je hodnota platná pro uložení ve sloupci.

Existuje více než třicet různých datových typů, můžete si vybrat z při definování sloupců, některé mají specifické použití, jako je ukládání snímků.

v tomto článku se budeme zabývat sedmi typy dat, se kterými se nejčastěji setkáte při každodenním používání SQL., Jsou to:

  • INT
  • VARCHAR, NVARCHAR
  • DATETIME
  • DESETINNÉ, FLOAT
  • TROCHU

INT – Integer Typ Dat

integer typ dat ukládá celá čísla. Příklady zahrnují -23, 0, 5 a 10045. Celá čísla nezahrnují desetinná místa. Vzhledem k tomu, SQL server používá řadu počítačových slov reprezentovat celé číslo existují maximální a minimální hodnoty, které může představovat. Datový typ INT může ukládat hodnotu od -2,147,483,648 do 2,147,483,647.,

praktické použití datového typu INT zahrnuje jeho použití k počítání hodnot, ukládání věku osoby nebo použití jako ID klíč k tabulce.

ale INT by nebylo tak dobré sledovat adresní prostor terabajtu na pevném disku, protože datový typ INT jde pouze na 2 miliardy a my bychom museli sledovat do bilionů. K tomu můžete použít BIGINT.

datový typ INT se používá v rámci výpočtů., Od DaysToManufacture je definována jako INT můžeme snadno spočítat hodiny tak, že se vynásobí 24:

VYBRAT Jméno, DaysToManufacture, DaysToManufacture * 24 jako HoursToManufactureFROM Výroby.Produkt
/* Answer */SELECT Name, DaysToManufacture, DaysToManufacture * 24 as HoursToManufactureFROM Production.Product

Zde můžete vidět výsledky,

Výsledky INT výpočty

Existuje mnoho operací a funkcí, které můžete použít s celá čísla, která budeme pokrývat jednou jsme kopat do funkce.,

VARCHAR a nvarchar – textové hodnoty

použijte VARCHAR a NVARCHAR pro ukládání hodnot textu s proměnnou délkou. „VARCHAR“znamená znak s proměnnou délkou.

zadejte počet znaků, které chcete uložit do VARCHARU nebo nvarcharu, jak je sloupec definován. Všimněte si, jak Jméno je definována držet padesát znaků:

VARCHAR definice uvedeny v SSMS Průzkumník Objektů

to, Co dělá VARCHAR populární, je, že hodnoty menší než padesát znaků, zabere méně prostoru. Prostor je přidělen podle potřeby., To se liší od datového typu CHAR, který vždy přiděluje zadanou délku, bez ohledu na délku skutečných uložených dat.

datový typ VARCHAR může obvykle ukládat maximálně 8 000 znaků. Pro ukládání textu Unicode použijte datový typ NVARCHAR. Vzhledem k tomu, že znaky UNICODE zabírají dvojnásobek místa, sloupce NVARCHAR mohou ukládat maximálně 4 000 znaků.

výhoda NVARCHAR má přes VARCHAR je to může ukládat znaky Unicode. Díky tomu je užitečné ukládat rozšířené znakové sady, jako jsou ty, které se používají pro jazyky, jako je Kanji.,

databáze navržené před SQL 2008 obvykle používají VARCHAR; nicméně, modernější databáze nebo ty globální povahy mají tendenci používat NVARCHAR.

DATETIME-datum a čas

použijte datový typ DATETIME pro uložení data a času. Příklad hodnoty DATATIME je

1968-10-23 1:45:37.123

toto je hodnota pro 23. října 1968 v 1: 45 hodin. Ve skutečnosti je čas přesnější než to. Čas je opravdu 45 minut, 37.123 sekund.

v mnoha případech stačí Datum uložit. V těchto případech je časová složka vynulována., Tak, 5. listopadu 1972 je

1972-11-05 00:00:00.000

DATETIME může ukládat data od 1. ledna 1753 do 31.Prosince 9999. To dělá DATETIME dobré pro nahrávání dat v dnešním světě, ale ne tak moc, v Williama Shakespeara.

Jak jste si získat více seznámit s různými SQL vestavěné funkce budete moci manipulovat data. Abychom vám mohli nahlédnout, použijeme funkci rok k počítání zaměstnanců najatých každý rok. Když je dána hodnota DATETIME, funkce rok vrátí rok.,

dotaz, který použijeme, je

výhodou je typ DATETIME, který zajišťuje, že hodnoty jsou platná data. Jakmile je to zajištěno, jsme schopni použít řadu funkcí pro výpočet počtu dní mezi daty, měsícem data a tak dále.

tyto různé funkce podrobně prozkoumáme v jiném článku blogu.

desetinné a plovoucí desetinné body

pro práci s desetinnými hodnotami, jako je 10.3, použijte jak desetinné, tak plovoucí datové typy.,

koncentrovaný DESETINNÉ číslo, FLOAT do stejné kategorie, protože oba mohou zvládnout hodnoty s desetinnými místy; nicméně, oni oba tak jinak:

Pokud potřebujete přesné hodnoty, jako při práci s finanční nebo účetní údaje, pak použijte DESETINNÉ číslo. Důvodem je desetinný datový typ, který umožňuje definovat počet desetinných bodů, které chcete zachovat.

desetinné

desetinné datové typy jsou definovány přesností a měřítkem. Přesnost určuje počet celkových číslic pro uložení; vzhledem k tomu, měřítko určuje počet číslic napravo od desetinné čárky.,

desetinný datový typ je zadán jako desetinný (přesnost, měřítko).

desetinný datový typ nesmí být větší než 38 číslic. Přesnost a měřítko musí při výrobě dodržovat následující vztah

0 <= scale <= precision <= 38 digits

.Tabulka produktů, datový typ sloupce hmotnosti je definován jako desetinný (8,2). První číslice je přesnost, druhá stupnice.

hmotnost je definována tak, aby měla osm celkových číslic, z nichž dvě jsou vpravo od desetinného místa. Budeme následující ukázkový dotaz pro ilustraci toho, jak tento typ dat.,

vyberte zřetelnou Hmotnostz výroby.ProductWHERE Hmotnosti MEZI 29.00, a 189.00 ORDER BY Hmotnost DESC
/* Answer */SELECT DISTINCT WeightFROM Production.ProductWHERE Weight BETWEEN 29.00 and 189.00ORDER BY Weight DESC

FLOAT

Kde DESETINNÉ datové typy jsou skvělé pro přesná čísla, Plováků jsou opravdu dobré pro dlouhé číselné hodnoty. I když desetinná hodnota může mít celkem 38 číslic, v mnoha technických a vědeckých aplikacích je to nedostatečné. FLOAT stoupá na vrchol v rámci vědeckých aplikací, kde se vyskytují extrémní číselné hodnoty!

plováky mají rozsah od – 1.,79E+308 na 1.79 E + 308. To znamená, že největší hodnota může být 179 následovaná 306 nulami (skutečně velkými!).

vzhledem ke způsobu ukládání plovákových dat v počítači (viz specifikace IEEE 754 s plovoucí desetinnou čárkou) je uložené číslo velmi blízké aproximaci. Pro mnoho aplikací je to dost dobré.

Protože o přibližné chování, vyhnout se používání <> a = operátory v klauzuli where. Toto prohlášení spálilo May DBAs!

jejich očekávání se přerušuje, když se hmotnost má rovnat 2.,5, ale ve skutečnosti je v počítači uložen jako 2.499999999999999999; proto se nerovná 2.5000000000000000!

to je povaha plovoucích bodů a počítačů. Ty a já vidíme 2.499999999999999 a myslím, že pro praktické účely je to 2.5, ale k počítači, byly trochu vypnuté. J

bit – Boolean nebo hodnoty ano / ne

jsou chvíle, kdy stačí uložit, zda něco „je“ nebo „není.“Například, zda je zaměstnanec aktivní. V těchto případech je bitový datový typ vlastní. Tento datový typ je jedním ze tří stavů: 1, 0 nebo NULL.,

hodnota 1 znamená TRUE a 0 FALSE.

V tomto dotazu jsme výpis všechny placené pozici v práci tituly,

SELECT DISTINCT JobTitleFROM lidských zdrojů.EmployeeWHERE SalariedFlag = 1
SELECT DISTINCT JobTitleFROM HumanResources.EmployeeWHERE SalariedFlag = 1

Můžeme také použít „True“ místo 1. Zde je stejný příklad s použitím ‚True‘

Leave a Comment