|
Data Types in SQL Server 2005
-
10-03-2006, 9:53 PM |
-
SorinT
-
-
-
Joined on 07-04-2006
-
Romania
-
db_owner
-
-
|
Data Types in SQL Server 2005
Daca ma ajutati si pe mine cu explicatii pe scurt pentru cele mai folosite tipuri de date din cele suportate de sql server 2005.Adica ma intereseaza o explicatie in limba romana doar a celor foarte utilizate.Multumesc.
Data Type |
Type |
Byte Size |
|
bigint |
Exact numeric |
8 bytes |
|
binary |
Binary string |
1 byte per character |
|
bit |
Exact numeric |
1 byte per 8 or less in table |
|
char |
Character |
1 byte per character |
|
cursor |
Transact SQL cursor |
N/A |
|
datetime |
Date and time |
8 bytes |
|
decimal |
Exact numeric |
|
|
float |
Approximate |
4 or 8 bytes (depending numeric on the precision) |
|
image |
Binary string |
2TB maximum |
|
int |
Exact numeric |
4 bytes |
|
money |
Exact numeric |
8 bytes |
|
nchar |
Unicode character |
2 bytes per character |
|
ntext |
Unicode character |
2 bytes per character and 1TB maximum |
|
numeric |
Exact numeric |
5, 9, 13, or 17 bytes (depending on the precision) |
|
nvarchar |
Unicode character |
2 bytes per character |
|
real |
Approximate numeric |
4 bytes |
|
smalldatetime |
Date and time |
4 bytes |
|
smallint |
Exact numeric |
2 bytes |
|
smallmoney |
Exact numeric |
4 bytes |
|
sql_variant |
Undetermined/any |
Varies with content |
|
table |
SQL Server table |
N/A |
|
text |
Character |
1 byte per character and 2TB maximum |
|
timestamp |
Auto-generated |
8 bytes |
|
tinyint |
Exact numeric |
1 byte |
|
varbinary |
Binary string |
1 byte per character |
|
varchar |
Character |
1 byte per character |
|
uniqueidentifier |
GUID |
16 bytes |
|
xml |
XML document |
2GB maximum |
|
Sorin Titu MCITP Database Administrator MCITP Enterprise Administrator
|
|
-
10-03-2006, 9:59 PM |
-
xmldeveloper
-
-
-
Joined on 01-18-2006
-
Bucharest, Romania
-
Rank NA
-
-
|
Re: Data Types in SQL Server 2005
Sa le luam pe rand! Pe masura ce le explicam le voi sublinia pentru a fi evidente cele ramase.
Numerele intregi pot fi:
Tip de data |
Interval |
Stocare |
bigint |
-2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) |
8 Bytes |
int |
-2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647) |
4 Bytes |
smallint |
-2^15 (-32,768) to 2^15-1 (32,767) |
2 Bytes |
tinyint |
0 to 255 |
1 Byte |
bit este un tip mai special de numar intreg, si poate lua urmatoarele valori: 1, 0, sau NULL. Stocarea coloanelor de tip bit este optimizata - in cazul existentei intr-un tabel a 8 sau mai putin de 8 coloane avand tipul bit, coloanele sunt stocate pe un byte (octet). Intre 9 si 16 coloane de tip bit vor fi ocupati 2 octeti si tot asa. Sirurile de caractere TRUE si FALSE pot fi convertite la tipul bit dupa cum urmeaza: TRUE este convertit la valoarea 1 iar FALSE la valoarea 0.
Cristian Andrei Lefter, SQL Server MVP MCT, MCSA, MCDBA, MCAD, MCSD .NET, MCTS, MCITP - Database Administrator SQL Server 2005 http://sqlserver.ro
|
|
-
10-03-2006, 10:49 PM |
-
ggciubuc
-
-
-
Joined on 03-18-2006
-
Bucharest
-
sysadmin
-
-
|
Re: Data Types in SQL Server 2005
Atentie la caracteristica "unicode" (acel "n" din denumire tip de data): aceasta atrage dublarea spatiului necesar stocarii si implicit reduce dimensiunea datei de stocat. De exemplu diferenta dintre varchar(n) si nvarchar(m) este ca n - nr. de bytes- este cel mult 8000 iar m cel mult 4000.
Gheorghe Ciubuc,SQL Server Influencer, MCP(SQL 2000), MCTS (SQL Server 2005) , OCA(Oracle 9i), Sybase(Brainbench)
|
|
-
10-03-2006, 11:00 PM |
-
ggciubuc
-
-
-
Joined on 03-18-2006
-
Bucharest
-
sysadmin
-
-
|
Re: Data Types in SQL Server 2005
Aceste lucruri legate de spatiul de stocare al tipurilor de date au greutate cand proiectati o baza de date: daca estimati ca intr-un tabel numarul de linii va deveni foarte mare, dimensionarea potrivita a datelor atrage o viteza optima (de exemplu campul Gen cu valorile "Masculin" si "Feminin" daca il pui pe un tip de data char(8) inseamna 8 bytes insa daca folosesti bit cu 1 pentru M si 0 pt F asta inseamna o reducere semnificativa de spatiu de memorie.
Gheorghe Ciubuc,SQL Server Influencer, MCP(SQL 2000), MCTS (SQL Server 2005) , OCA(Oracle 9i), Sybase(Brainbench)
|
|
-
10-07-2006, 6:56 PM |
-
xmldeveloper
-
-
-
Joined on 01-18-2006
-
Bucharest, Romania
-
Rank NA
-
-
|
Re: Data Types in SQL Server 2005
Tipuri de date caracter sunt: char,varchar,nchar,nvarchar, text, ntext.
- char si nchar sunt de dimensiune fixa
- varchar si nvarchar sunt de dimensiune variabila
- nchar si nvarchar sunt folosite pentru stocarea caracterelor UNICODE, fiecare caracter ocupand 2 octeti (spre deosebire de char si varchar unde fiecare caracter ocupa 1 octet).
- un tip de date varchar ocupa nr de caractere + 2 octeti.
- pot fi folosite specificand lungimea ca de exemplu char(8) - 8 octeti vor fi ocupati etc. Daca nu este specificata lungimea, implicit lungimea sirului de caractere va fi 1. Pentru operatii ce folosesc functiile CAST si CONVERT, daca lungimea nu este specificata, implicit se va folosi valoarea 30 ca lungime.
- in SQL Server 2005 un sir de caractere poate ocupa maxim 2^31-1 octeti. Pentru aceasta dimensiune se foloseste cuvantul cheie MAX - de exemplu varchar(MAX).
- un tip special este sysname folosit pentru referirea numelor obiectelor unei baze de date. Tipul sysname este echivalent cu nvarchar(128).
- In locul tipurilor de date text si ntext este recomandata folosirea varchar(MAX),nvarchar(MAX).
Exemplul 1:
DECLARE @v1 AS varchar DECLARE @v2 AS char SET @v1 = '0123' SET @v2 = '2345'
-- Output 0,2 SELECT @v1,@v2
-- Output 1,1 SELECT DATALENGTH(@v1), DATALENGTH(@v1);
Exemplul 2:
DECLARE @v1 AS varchar(40); SET @v1 = '0123456789012345678901234567890123456789' -- Output 012345678901234567890123456789 SELECT CAST(@v1 AS varchar);
-- Output 40 30 SELECT DATALENGTH(@v1) AS 'Lungime @v1', DATALENGTH(CAST(@v1 AS varchar)) AS 'Lungime conversie';
Cristian Andrei Lefter, SQL Server MVP MCT, MCSA, MCDBA, MCAD, MCSD .NET, MCTS, MCITP - Database Administrator SQL Server 2005 http://sqlserver.ro
|
|
-
10-07-2006, 7:03 PM |
-
xmldeveloper
-
-
-
Joined on 01-18-2006
-
Bucharest, Romania
-
Rank NA
-
-
|
Re: Data Types in SQL Server 2005
Cum zicea si Gigi, este foarte importanta estimarea spatiului ocupat de o baza de date. Cateva reguli aveti aici: Estimating the Size of a Database.
Cristian Andrei Lefter, SQL Server MVP MCT, MCSA, MCDBA, MCAD, MCSD .NET, MCTS, MCITP - Database Administrator SQL Server 2005 http://sqlserver.ro
|
|
-
10-07-2006, 9:05 PM |
-
SorinT
-
-
-
Joined on 07-04-2006
-
Romania
-
db_owner
-
-
|
Re: Data Types in SQL Server 2005
Multumesc pt. explicatii o sa le aplic in practica.
Sorin Titu MCITP Database Administrator MCITP Enterprise Administrator
|
|
-
10-08-2006, 5:18 PM |
-
xmldeveloper
-
-
-
Joined on 01-18-2006
-
Bucharest, Romania
-
Rank NA
-
-
|
Re: Data Types in SQL Server 2005
Pentru valori monetare se folosesc tipurile de date money si smallmoney:
- money - poate reprezenta valori intre -922,337,203,685,477.5808 si 922,337,203,685,477.5807 (ocupa 8 octeti).
- smallmoney - intre - 214,748.3648 si 214,748.3647 (ocupa 4 octeti).
Personal prefer sa folosesc tipul decimal.
Cristian Andrei Lefter, SQL Server MVP MCT, MCSA, MCDBA, MCAD, MCSD .NET, MCTS, MCITP - Database Administrator SQL Server 2005 http://sqlserver.ro
|
|
-
10-10-2006, 1:00 PM |
-
xmldeveloper
-
-
-
Joined on 01-18-2006
-
Bucharest, Romania
-
Rank NA
-
-
|
Re: Data Types in SQL Server 2005
Tipul de date table reprezinta dupa cum spune si numele un tabel. Poate fi folosit ca un tabel temporar: DECLARE @MyTable TABLE (ID INT PRIMARY KEY, VAL VARCHAR(64)) INSERT INTO @MyTable VALUES (1, 'Cristian') INSERT INTO @MyTable VALUES (2, 'Sorin')
SELECT * FROM @MyTable ORDER BY ID DESC GO
-- Output ID VAL 2 Sorin 1 Cristian
Cristian Andrei Lefter, SQL Server MVP MCT, MCSA, MCDBA, MCAD, MCSD .NET, MCTS, MCITP - Database Administrator SQL Server 2005 http://sqlserver.ro
|
|
-
10-12-2006, 1:12 PM |
-
xmldeveloper
-
-
-
Joined on 01-18-2006
-
Bucharest, Romania
-
Rank NA
-
-
|
Re: Data Types in SQL Server 2005
Simiar cu tipul de date Variant din Visual Basic, tipul de date sql_variant poate fi folosit pentru stocarea de valori avand orice tip de date cu exceptia urmatoarelor: text, ntext, image, timestamp, and sql_variant. Personal nu va recomand sa folositi acest tip din motive de performanta si compatibiliatea.
Cristian Andrei Lefter, SQL Server MVP MCT, MCSA, MCDBA, MCAD, MCSD .NET, MCTS, MCITP - Database Administrator SQL Server 2005 http://sqlserver.ro
|
|
|
|
|