Welcome to Sign in | Help
in Search

Data Types in SQL Server 2005

Last post 10-12-2006, 1:12 PM by xmldeveloper. 9 replies.
Sort Posts: Previous Next
  •  10-03-2006, 9:53 PM 240

    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
    Filed under:
  •  10-03-2006, 9:59 PM 241 in reply to 240

    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 242 in reply to 241

    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 243 in reply to 242

    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 274 in reply to 243

    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 275 in reply to 274

    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 276 in reply to 240

    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 280 in reply to 276

    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 296 in reply to 280

    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 330 in reply to 296

    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
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems