Sql Marcin Szeliga

16
SQL Tips & Tricks SQL Tips & Tricks UPDATE dbo.Sequence UPDATE dbo.Sequence SET @invoiceid = val = val + 1 SET @invoiceid = val = val + 1 OUTPUT inserted.val, @custid, OUTPUT inserted.val, @custid, @invdate, @amt @invdate, @amt INTO dbo.Invoices INTO dbo.Invoices

description

rady i sztuczki w SQLu

Transcript of Sql Marcin Szeliga

Page 1: Sql   Marcin Szeliga

SQL Tips & TricksSQL Tips & TricksSQL Tips & TricksSQL Tips & TricksUPDATE dbo.SequenceUPDATE dbo.SequenceSET @invoiceid = val = val + 1SET @invoiceid = val = val + 1OUTPUT inserted.val, @custid, @invdate, @amtOUTPUT inserted.val, @custid, @invdate, @amtINTO dbo.InvoicesINTO dbo.Invoices

Page 2: Sql   Marcin Szeliga

MarcinSzeliga:Bio.ToString()MarcinSzeliga:Bio.ToString() Nauczyciel i wykładowcaNauczyciel i wykładowca

www.abramowski.edu.plwww.abramowski.edu.pl www.wit.edu.plwww.wit.edu.pl

Trener i konsultantTrener i konsultant www.betacom.com.plwww.betacom.com.pl

Autor książek i artykułówAutor książek i artykułów www.helion.plwww.helion.pl www.wip.pl , http://www.microsoft.com/poland/technet/articlewww.wip.pl , http://www.microsoft.com/poland/technet/article

Opiekun działu SQL ServerOpiekun działu SQL Server www.wss.plwww.wss.pl

Microsoft Most Valuable Professional Microsoft Most Valuable Professional mvp.support.microsoft.com mvp.support.microsoft.com

Specjalista MicrosoftSpecjalista Microsoft Microsoft Certified IT Professional (Database Admin + Dev + BI)Microsoft Certified IT Professional (Database Admin + Dev + BI) Microsoft Certified Systems Engineer: SecurityMicrosoft Certified Systems Engineer: Security (Win 2000 + 2003) (Win 2000 + 2003) Microsoft Certified Solution Developer (For Microsoft .NET + VS 6.0)Microsoft Certified Solution Developer (For Microsoft .NET + VS 6.0) Microsoft Certified Systems Engineer (Win NT 4.0)Microsoft Certified Systems Engineer (Win NT 4.0)

Page 3: Sql   Marcin Szeliga

Tabele jako zbiory danychTabele jako zbiory danych

Liczba kolumn tabeli jest stałaLiczba kolumn tabeli jest stała

W poszczególnych kolumnach znajdują W poszczególnych kolumnach znajdują się zawsze dane tego samego typu się zawsze dane tego samego typu

Nazwy kolumn tej samej tabeli muszą być Nazwy kolumn tej samej tabeli muszą być niepowtarzalneniepowtarzalne

Zbiory nie zawierają kilku kopii tego Zbiory nie zawierają kilku kopii tego samego elementu samego elementu w tabeli może w tabeli może wielokrotnie powtórzyć się ten sam wiersz wielokrotnie powtórzyć się ten sam wiersz stosuje się identyfikatory wierszy stosuje się identyfikatory wierszy (klucze podstawowe)(klucze podstawowe)

Page 4: Sql   Marcin Szeliga

Tabele jako zbiory danychTabele jako zbiory danych

Kolejność kolumn jest bez znaczenia Kolejność kolumn jest bez znaczenia Kolejność kolumn wyniku zapytania definiuje Kolejność kolumn wyniku zapytania definiuje się w klauzuli SELECTsię w klauzuli SELECT

Kolejność wierszy jest bez znaczenia Kolejność wierszy jest bez znaczenia Kolejność kolumn wyniku zapytania definiuje Kolejność kolumn wyniku zapytania definiuje się w klauzuli ORDER BY (się w klauzuli ORDER BY (DEMODEMO))

Trzy modele baz danych: Trzy modele baz danych: Relacyjny (postulaty Codda)Relacyjny (postulaty Codda)

Obiektowy (niesprawdzony)Obiektowy (niesprawdzony)

Jednorodny (duplikaty, szybki i łatwy odczyt)Jednorodny (duplikaty, szybki i łatwy odczyt)

Page 5: Sql   Marcin Szeliga

101 języka SQL101 języka SQLPrzetwarzanie zbiorów a nie pojedynczych Przetwarzanie zbiorów a nie pojedynczych danychdanych

DeklaratywnośćDeklaratywność

Interpretowanie a nie kompilowanie instrukcjiInterpretowanie a nie kompilowanie instrukcji

Wartość NULL i logika trójwartościowa Wartość NULL i logika trójwartościowa ((DEMODEMO))

Standardy ANSIStandardy ANSI

SQL1 (1986)SQL1 (1986)

SQL2 (1992)SQL2 (1992)

SQL3 (1993)SQL3 (1993)

SQL3+ (2003)SQL3+ (2003)

Page 6: Sql   Marcin Szeliga

101 języka SQL101 języka SQL

FROM (źródło danych)

Kolejność wykonywania klauzul instrukcji Kolejność wykonywania klauzul instrukcji SELECT:SELECT:

Page 7: Sql   Marcin Szeliga

101 języka SQL101 języka SQL

FROM (źródło danych)WHERE (warunek logiczny)

Kolejność wykonywania klauzul instrukcji Kolejność wykonywania klauzul instrukcji SELECT:SELECT:

Page 8: Sql   Marcin Szeliga

101 języka SQL101 języka SQL

FROM (źródło danych)WHERE (warunek logiczny)GROUP BY (wyrażenie grupujące)

Kolejność wykonywania klauzul instrukcji Kolejność wykonywania klauzul instrukcji SELECT:SELECT:

Page 9: Sql   Marcin Szeliga

101 języka SQL101 języka SQL

FROM (źródło danych)WHERE (warunek logiczny)GROUP BY (wyrażenie grupujące)HAVING (warunek logiczny)

Kolejność wykonywania klauzul instrukcji Kolejność wykonywania klauzul instrukcji SELECT:SELECT:

Page 10: Sql   Marcin Szeliga

101 języka SQL101 języka SQL

SELECT (lista kolumn, wyrażeń)FROM (źródło danych)WHERE (warunek logiczny)GROUP BY (wyrażenie grupujące)HAVING (warunek logiczny)

Kolejność wykonywania klauzul instrukcji Kolejność wykonywania klauzul instrukcji SELECT:SELECT:

Page 11: Sql   Marcin Szeliga

101 języka SQL101 języka SQL

SELECT (lista kolumn, wyrażeń)FROM (źródło danych)WHERE (warunek logiczny)GROUP BY (wyrażenie grupujące)HAVING (warunek logiczny)ORDER BY (lista kolumn, wyrażeń)

Kolejność wykonywania klauzul instrukcji Kolejność wykonywania klauzul instrukcji SELECT:SELECT:

Page 12: Sql   Marcin Szeliga

101 języka SQL101 języka SQL

SELECT TOP(lista kolumn, wyrażeń)FROM (źródło danych)WHERE (warunek logiczny)GROUP BY (wyrażenie grupujące)HAVING (warunek logiczny)ORDER BY (lista kolumn, wyrażeń)

Kolejność wykonywania klauzul instrukcji Kolejność wykonywania klauzul instrukcji SELECT (SELECT (DEMODEMO):):

Page 13: Sql   Marcin Szeliga

101 pobierania danych101 pobierania danych

Dane mogą być odczytane:Dane mogą być odczytane:z tabelz tabel

Z indeksówZ indeksów

Do odczytania obiekt może być:Do odczytania obiekt może być:ZeskanowanyZeskanowany

PrzeszukanyPrzeszukany

Argumenty SARG (Argumenty SARG (DEMODEMO))

Selektywność zapytańSelektywność zapytań

Page 14: Sql   Marcin Szeliga

Grupowanie wierszyGrupowanie wierszy

Funkcje grupujące (w serwerze SQL jest Funkcje grupujące (w serwerze SQL jest ich tylko 11, w serwerze Oracle prawie ich tylko 11, w serwerze Oracle prawie 200)200)

Grupy i podgrupyGrupy i podgrupy

Operator GROUPING SETSOperator GROUPING SETS

Klauzula OVER i partycje Klauzula OVER i partycje

Funkcje rankingu (Funkcje rankingu (DEMODEMO))

Page 15: Sql   Marcin Szeliga

PodzapytaniaPodzapytania

Podzapytania jako zmiennePodzapytania jako zmienne

Podzapytania jako źródła danychPodzapytania jako źródła danychTabele pochodneTabele pochodne

CTECTE

Wyznaczanie trendów (Wyznaczanie trendów (DEMODEMO))

Page 16: Sql   Marcin Szeliga

SQL Tips & TricksSQL Tips & Tricks

Tabele to zbiory danychTabele to zbiory danych

Serwery relacyjnych baz danych wydajnie Serwery relacyjnych baz danych wydajnie przetwarzają duże zbiory danychprzetwarzają duże zbiory danych

Język SQL nie został stworzony z myślą o Język SQL nie został stworzony z myślą o odczytywaniu i modyfikowaniu danych odczytywaniu i modyfikowaniu danych skalarnychskalarnych

Pytania ?Pytania ?

[email protected]@wss.pl