Sunteți pe pagina 1din 17

Seminarul 2

Tipuri de date 1) Numeric exact Tip Bigint Bit1 Decimal[(p[,s])

Valori -2^63 (-9,223,372,036,854,775,808) -> 2^63-1 (9,223,372,036,854,775,807) 1/0/NULL Precizie (p) iniial=18 0<=scar<=precizie http://msdn.microsoft.com/en-us/library/ms187746.aspx -2^31 (-2,147,483,648) -> 2^31-1 (2,147,483,647) -922,337,203,685,477.5808 -> 922,337,203,685,477.5807 http://msdn.microsoft.com/en-us/library/ms179882.aspx La fel ca Decimal -2^15 (-32,768) -> 2^15-1 (32,767) - 214,748.3648 -> 214,748.3647 http://msdn.microsoft.com/en-us/library/ms179882.aspx 0 to 255

Spaiu ocupat 8 octei

Int Money Numeric Smallint Smallmoney Tinyint 2) Numeric real Tip Float Real 3) Dat/Or Tip Date

4 octei 8 octei

2 octei 4 octei 1 octet

Valori Spaiu ocupat -1.79E+308 -> -2.23E-308, 0 i 2.23E-308 -> 1.79E+308 n funcie de n - 3.40E + 38 -> -1.18E - 38, 0 i 1.18E - 38 -> 3.40E + 38 4 octei Valori 01/01/0001 -> 31/12/9999 zz/[l]l/[aa]aa z=zi l=lun a=an http://msdn.microsoft.com/en-us/library/bb630352.aspx 1/1/1753 -> 31/12/9999 i 00:00:00 -> 23:59:59.997 AAAA-LL-ZZ hh:mm:ss[.mmm] http://msdn.microsoft.com/en-us/library/ms187819.aspx La fel ca Datetime, doar c este un tip de dat mai mare 1/1/0001 -> 31/12/9999 i 00:00:00 -> 23:59:59.997 http://msdn.microsoft.com/en-us/library/bb677335.aspx Spaiu ocupat

Datetime

8 octei

Datetime2

Vezi link-ul

Algebra boolean se bazeaz pe principiul aristotelic al terului exclus, desemnnd una dintre cele 2 valori de adevr (adevrat/fals) unei propoziii. Jan ukasiewicz a propus renunarea la acest principiu i a pus astfel bazele logicii trivalente prin care unei propoziii i este desemnat una dintre urmtoarele valori de adevr: adevrat, fals sau necunoscut. SQL implementeaz acest principiu prin valorile de tip bit care pot lua una dintre urmtoarele valori: 1/True, 0/False sau NULL. Valoarea NULL reprezint, de fapt, valoarea lips/necunoscut.

Smalldatetime Time Numeric 4) Caractere Tip Char (n) Varchar (n)

1/1/1900 -> 6/6/2079 i i 00:00:00 -> 23:59:59 00:00:00.0000000 -> 23:59:59.9999999 La fel ca Decimal Valori 1<= n <= 8000 Pentru diferenele dintre char i varchar vezi: http://msdn.microsoft.com/en-us/library/ms176089.aspx

5 octei

Spaiu ocupat n octei

5) Caractere Unicode Tip Valori nChar (n) nVarchar (n) 6) iruri binare Tip Binary (n) VarBinary 1<= n <= 4000 Pentru diferenele dintre nchar i nvarchar vezi: http://msdn.microsoft.com/en-us/library/ms186939.aspx

Spaiu ocupat 2*n octei

Valori 1<= n <= 8000 Pentru diferenele dintre Binary i VarBinary vezi: http://msdn.microsoft.com/en-us/library/ms188362.aspx

Spaiu ocupat n octei

7) Alte tipuri Cursor -> http://msdn.microsoft.com/en-us/library/ms190498.aspx Hierarchyid -> http://msdn.microsoft.com/en-us/library/bb677290.aspx Sql_variant -> http://msdn.microsoft.com/en-us/library/ms173829.aspx Table -> http://msdn.microsoft.com/en-us/library/ms175010.aspx Timestamp -> http://msdn.microsoft.com/en-us/library/ms182776.aspx Uniqueidentifier -> http://msdn.microsoft.com/en-us/library/ms187942.aspx Xml -> http://msdn.microsoft.com/en-us/library/ms187339.aspx

Conversii ntre tipurile de date -> http://msdn.microsoft.com/en-us/library/ms187928.aspx

Funcii predefinite 1) Agregate a. AVG b. COUNT c. MAX d. MIN e. SUM f. STDEV g. VAR 2) Lucru cu data/ora a. Day(date) b. Month(date) c. Year(date) d. Datepart(datepart,date), mai multe detalii aici: http://msdn.microsoft.com/enus/library/ms174420.aspx e. datename(datepart,date) f. dateadd(datepart,number,date) g. datediff(datepart,number,date) h. Datefromparts(year,month,day) i. Datetimefromparts ( year, month, day, hour, minute, seconds, milliseconds )

Select SELECT [TOP n] [DISTINCT] cmp1,cmp2, FROM tabela1 *Tip de JOIN+ tabela2 ON tabela1.coloanX=tabela2.coloanY *Tip de JOIN+ tabela3 WHERE condiie1 *OPERATOR LOGIC+ condiie2 GROUP BY cmp1,cmp2, ORDER BY cmp1 [ASC/DESC],cmp2[ASC/DESC],... [OFFSET x ROW/ROWS FETCH FIRST/FIRST y ROW/ROWS ONLY] 1) Selectarea tuturor cmpurilor dintr-o tabel SELECT * FROM tabel 2) Selectarea primelor 5 cmpuri dintr-o tabel SELECT TOP 5 * FROM tabel 3) Selectarea cmpurilor din 3 tabele SELECT * FROM tabela1 INNER JOIN tabela2 ON tabela1.coloanaA=tabela2.coloanaB INNER JOIN tabela3 ON tabela2.coloanaC=tabela3.coloanaD Tipuri explicite de JOIN a) INNER JOIN

b) OUTER JOIN b.1) LEFT OUTER JOIN

b.2) RIGHT OUTER JOIN

b.3) FULL OUTER JOIN

c) CROSS JOIN -> Realizeaz produsul cartezian al celor dou mulimi de elemente

Tipuri speciale de join a) LEFT OUTER JOIN WHERE NULL

b) RIGHT OUTER JOIN WHERE NULL

c) FULL OUTER JOIN WHERE NULL

4) Selectarea cmpurilor dintr-o tabel folosind o condiie SELECT * FROM tabel WHERE condiie Operatori: a) AND b) OR c) NOT d) IN (element1,element2,) e) BETWEEN x AND y f) EXISTS g) LIKE (citete mai multe aici: http://msdn.microsoft.com/en-us/library/ms179859.aspx )

5) Gruparea cmpurilor unei selecii SELECT * FROM tabel GROUP BY cmp1, cmp2, 6) Ordonarea cmpurilor unei selecii SELECT * FROM tabel ORDER BY cmp1, cmp2 ASC,cmp3 DESC Dac nu este precizat o ordine, vor fi grupate ascendent n funcie de acel cmp. 7) Afiarea anumitor rnduri din selecie SELECT * FROM tabel ORDER BY cmp1 *ASC/DESC+, cmp2 *ASC/DESC+, OFFSET 2 ROWS FETCH NEXT 40 ROWS ONLY 8) Afiarea unor nregistrri distincte SELECT DISTINCT * FROM tabel

Generarea script-urilor de back-up Pasul 1) Ecranul introductiv

Pasul 2) Alegem ce vrem s conin script-urile (n cazul nostru selectm tot).

Pasul 3) Alegem Save to new query window, apoi apsm butonul Advanced

Pasul 4) Alegem ce vrem s conin script-ul (n cazul nostru adugm Schema and data).

Pasul 5) Apsm Next

Pasul 6) Script-ul a fost publicat ntr-un nou tab. Apsm Finish.

!!!IMPORTANT!!! Pentru a folosi script-ul, s-ar putea s fie nevoie de modificarea numelui bazei de date. VECHI NOU
USE [Seminar2] GO CREATE DATABASE [NumarulGrupei_NumeleMeu] GO USE [NumarulGrupei_NumeleMeu] GO

Tips & Tricks 1) New query tab

2) Permite efectuarea schimbrilor care presupun re-crearea tabelei Tools -> Options -> Designers -------------> Debifai Prevent saving changes that requre table re-creation -> Apsai OK

3) Numerotarea liniilor, descompunerea unei linii pe mai multe rnduri i marcarea descompunerii cu o pictogram Tools -> Options -> Text Editor -> Transact-SQL ------------> Bifai Word wrap, Show visual glyphs for word wrap i Line numbers

4) Utilizarea ghilimelelor pentru iruri de caractere


SET QUOTED_IDENTIFIER OFF;

5) Utilizarea formatului zi/lun/an.


SET DATEFORMAT dmy;

6) Punct i virgul vs. GO http://lextonr.wordpress.com/2012/09/26/gos-and-semicolons/

Cerine 1) Selectai toate nregistrrile din tabela Angajai. 2) Selectai toate nregistrrile din tabela Clieni. 3) Listai codul angajatului,numele, filiala, data pontajului i tariful pentru toi angajaii care au realizat pontaje 4) Aranjai rezultatele de la 3) n ordine descresctoare n funcie de tarif 5) Adugai seleciei 4) codul, respectiv numele clientului pentru care a fost realizat pontajul 6) Afiai toi angajaii ale cror nume ncep cu litera C i conin literele anu 7) Listai angajaii din filialele Bucureti i Giurgiu 8) Ordonai rezultatele de la 7) n ordine descresctoare n funcie de salariu 9) Ordonai rezultatele de la 7) n ordine cresctoare n funcie de nume 10) Listai angajaii din filialele Bucureti i Giurgiu n ordine cresctoare n funcie de nume i, apoi, n ordine descresctoare n funcie de salariu 11) Listai clienii externi care nu au domeniul de activitate turismul sau it 12) Listai n ordine alfabetic toi angajaii care au pontaje n luna ianuarie 13) Calculai totalul ncasrilor pe fiecare ar pn la 1 ianuarie 2008 14) Ordonai rezultatul de la 13) descresctor n funcie de totalul ncasrilor 15) Afiai top 3 ri cu cele mai mari ncasri 16) Folosind rezultatele de la 14), afiai rile ncepnd de pe locul 2 pn pe locul 4 17) Afiai tariful minim pe fiecare ar n intervalul 1/1/2007 i 1/20/2007 18) Afiai media i abaterea medie ptratic pe fiecare ar n ntervalul 1/1/2007 i 1/20/2007 19) Afiai toate posibilitile de alocare ale angajailor pentru fiecare client.

S-ar putea să vă placă și