Miesięczne archiwum: Październik 2016

SQL INNER JOIN

SQL INNER JOIN


    


DEFINICJA

INNER JOIN służy do łączenia tabel. INNER JOIN to inaczej JOIN czyli złączenie wewnętrzne (zawężające). Parametry do złączenia podajemy w nawiasie po słówku ON. Łączenie następuje wg kolumn które wskazujemy po jednej stronie i po drugiej stronie. Typu danych po obu stronach muszą być takie same. Napisałem wcześniej że łącznie INNER JOIN (JOIN) jest zawężające, dlaczego? Ponieważ przy złączeniu INNER JOIN (JOIN) wybierzemy tylko część wspólną obu zbiorów (tabel). Jeżeli w którejkowiek tabeli do złączenia (w kolumnach złączenia) nie znajdą się identyczne wartości to rekord ten nie będzie brany pod uwagę przy wyniku zapytania. W wynikach znajdą się tylko te rekordy które w kolumnach złączenia w obu tabelach mają identyczne wartości.

SQL INNER JOIN grafika

SQL INNER JOIN składnia

SELECT
    nazwy_kolumy(kolumn)
FROM
    tabela1 INNER JOIN tabela2 ON (tabela1.kolumna2 = tabela2.kolumna1)


Przykład zastosowania INNER JOIN (baza Adventureworks)

Wyświetl wszyskie osoby (tylko kolumny: Nazwisko, Imię, Email) z bazy wraz z ich adresami email.

SELECT
     P.LastName
    ,P.FirstName
    ,E.EmailAddress
FROM
    Person.Person P
        INNER JOIN Person.EmailAddress E ON (P.BusinessEntityID = E.BusinessEntityID)   

 


 Przykład zastosowania INNER JOIN (baza Northwind)

Wyświetl wszystkie produkty (tylko kolumny: ID, Nazwa Produktu, Kategoria Produktu) wraz z ich kategoriami.

SELECT
     P.ProductID
    ,P.ProductName
    ,C.CategoryName
FROM
    Products P INNER JOIN Categories C ON (P.CategoryID = C.CategoryID)


    

SQL BETWEEN

SQL BETWEEN


    


DEFINICJA

BETWEEN (ang. pomiędzy) służy do określania parametrów brzegowych w warunkach w klauzuli WHERE. Jeśli np. chcemy znaleźć pracowników którzy urodzili się pomiędzy 'data1' a 'data2' lub którzy zarabiają w przedziale 'pensjaOd' do 'pensjaDo' to użyjemy właśnie BETWEEN. Oba parametry brzegowe rozdzielamy operatorem AND.

SQL BETWEEN składnia

WHERE
    nazwa_kolumny BETWEEN parametr1 AND parametr2


Przykład zastosowania BETWEEN (baza Adventureworks)

Wyświetl wszystkich pracowników którzy zostali przyjęcie w 2003 r (czyli pomiędzy 1 stycznia 2003 r. i 31 grudnia 2003 r.).

SELECT
     P.LastName
    ,P.FirstName
    ,E.HireDate
FROM
    Person.Person P
    JOIN HumanResources.Employee E ON (P.BusinessEntityID = E.BusinessEntityID)
WHERE
    E.HireDate BETWEEN '2003-01-01' AND '2003-12-31'

 


 Przykład zastosowania BETWEEN (baza Northwind)

Wyświetl wszystkich pracowników (tylko kolumny: Nazwisko , Imię , DataUrodzenia), których data urodzenia zawiera się pomiędzy 1 stycznia 1954 i 1 stycznia 1956.

SELECT
     LastName
    ,FirstName
    ,BirthDate
FROM
    Employees
WHERE
    BirthDate BETWEEN '1954-01-01' AND '1956-01-01'   


    

SQL SELECT DISTINCT

SQL SELECT DISTINCT


    


DEFINICJA

DISTINCT służy do usuwania duplikatów wartości w kolumnach.

SQL SELECT DISTINCT składnia

SELECT DISTINCT
    nazwy_kolumn_wyświetlenia
FROM
    źródło_danych


Przykład zastosowania SELECT DISTINCT (baza Adventureworks)

Wyświetl regiony sprzedaży (kody krajów). Usuń duplikaty.

SELECT DISTINCT
    CountryRegionCode
FROM
    Sales.SalesTerritory

 


 Przykład zastosowania SELECT DISTINCT (baza Northwind)

Wyświetl wszystkie kraje z których pochodzą klienci firmy. Usuń duplikaty.

SELECT DISTINCT
    Country
FROM
    Customers 


   

SQL IN

SQL IN


    


DEFINICJA

Operator IN służy do określenia zbioru dopuszczalnych wartości dla danego pola w warunku w klauzuli WHERE. Zbiór dopuszczalnych wartoścu umieszczamy w nawiasie a poszczególne wartości rozdzielamy przecinkami. Musimy zwrócić takżę uwagę jakie typy danych są wartościami dalej kolumny jeśli np. wartościami w kolumnie są ciągi znaków to każdą wartość musimy ująć w pojedynczy cudzysłów.

SQL IN składnia

SELECT
    wyświetlane_dane(kolumny)
FROM
    źródło_danych
WHERE
    nazwa_kolumny IN (wartość1 , wartość2 , wartość3)


Przykład zastosowania IN (baza Adventureworks)

Wyświetl produkty (tylko kolumny: ID, Nazwa Produktu, Numer Produktu, Kolor) które są w kolorze czarnym i srebrnym.

SELECT
     ProductID
    ,Name
    ,ProductNumber
    ,Color
FROM
    Production.Product
WHERE
    Color IN ('Silver' , 'Black' , 'Silver/Black')       

 


 Przykład zastosowania IN (baza Northwind)

Wyświetl wszystkich klientów (tylko kolumny: NazwaKontaktu, Adres, Miasto, Kraj, Telefon) z Francji i Niemiec.

SELECT
    ContactName
    ,Address
    ,City
    ,Country
    ,Phone
FROM
    Customers
WHERE
    Country IN ('Germany','France')   


    

SQL AND

SQL AND


    


DEFINICJA

Operatora AND używamy przy złączeniach warunków w klauzuli WHERE. Przy złączeniu warunków operatorem AND wszystkie złączone warunki muszą wystąpić jednocześnie. Operator AND możemy wykorzystywać w połączeniu z innymi operatorami np. OR.

SQL AND składnia

WHERE
    warunek1 AND warunek2 AND warunek3


Przykład zastosowania AND (baza Adventureworks)

Wyświetl wszystkie produkty (kolumny: Nazwa Produktu , Numer Produktu) których nazwa zaczyna się na 'A' i kończy na 'd'.

SELECT
     Name AS [Nazwa Produktu]
    ,ProductNumber AS [Numer Produktu]
FROM
    Production.Product
WHERE
    Name LIKE 'A%'
    AND
    Name LIKE '%d'

znak '%' we wzorcu operatoar LIKE oznacza, że w tym miejscu może się pojawić dowolny ciąg znaków


 Przykład zastosowania AND (baza Northwind)

Wyświetl wszystkich pracowników (wyświetl tylko kolumny: Nazwisko , Imię , DataUrodzenia) których imię kończy się na 't' i którzy urodzili się po 1 stycznia 1963 r.

SELECT
     Prac.LastName AS Nazwisko
    ,Prac.FirstName AS Imię
    ,Prac.BirthDate AS [Data Urodzenia]    
FROM
    Employees AS Prac
WHERE
    Prac.FirstName LIKE '%t'
    AND
    Prac.BirthDate > '1963-01-01'


    

SQL LIKE

SQL LIKE


    


DEFINICJA

Operator LIKE służy do filtrowania wyników zapytania tylko do takich rekordów gdzie wartości w danej kolumnie są zgodnie z wzorem podamy przy tym operatorze. Operatora LIKE używamy przy złączeniu z klauzulą WHERE.

SQL LIKE składnia

WHERE
    nazwa_kolumny LIKE wzorzec


Przykład zastosowania LIKE (baza Adventureworks)

Wyświetl wszystkie produkty (kolumny: Nazwa Produktu , Numer Produktu) których nazwa zaczyna się na 'A'.

SELECT
     Name AS [Nazwa Produktu]
    ,ProductNumber AS [Numer Produktu]
FROM
    Production.Product
WHERE
    Name LIKE 'A%'

znak '%' we wzorcu operatoar LIKE oznacza tyle, że w tym miejscu we wzorcu może wystąpić dowolny ciąg znaków


 Przykład zastosowania LIKE (baza Northwind)

Wyświetl wszystkich pracowników (wyświetl tylko kolumny: Nazwisko , Imię , DataUrodzenia) których imię kończy się na 't'.

SELECT
     Prac.LastName AS Nazwisko
    ,Prac.FirstName AS Imię
    ,Prac.BirthDate AS [Data Urodzenia]    
FROM
    Employees AS Prac
WHERE
    Prac.FirstName LIKE '%t'


   

SQL OR

SQL OR


    


DEFINICJA

Operatora OR używamy przy złączeniu z klauzulą WHERE. Oznacza on tyle co 'lub', czyli jeśli w klauzuli WHERE wystąpią dwa warunki i pomiędzy nimi stanie operator OR to do wyniku zapytania zostaną wzięte rekordy któer spełniają warunek 1 LUB warunek 2. Tutaj (inaczej jak przy operatorze AND) wystarczy żeby rekord spełniał tylko jeden z warunków i już będzie brany do wyniku zapytania. Operator OR możemy łączyć bez problemów z innymi operatorami np. AND.

SQL OR składnia

WHERE
    warunek1 OR warunek2


Przykład zastosowania OR (baza Adventureworks)

Wyświetl wszystkie produkty (tylko kolumny: Nazwa Produktu , Numer Produktu) których nazwa zaczyna się na 'A' lub które w numerze produktu mają znaki CA.

SELECT
     Name AS [Nazwa Produktu]
    ,ProductNumber AS [Numer Produktu]
FROM
    Production.Product
WHERE
    Name LIKE 'A%'
    OR
    ProductNumber LIKE '%CA%'

znak '%' we wzorcu operatoar LIKE oznacza tyle, że w tym miejscu we wzorcu może wystąpić dowolny ciąg znaków


 Przykład zastosowania OR (baza Northwind)

Wyświetl wszystkich pracowników (wyświetl tylko kolumny: Nazwisko , Imię , DataUrodzenia) których imię kończy się na 't' lub którzy urodzili się po 1 stycznia 1960 r.

SELECT
     Prac.LastName AS Nazwisko
    ,Prac.FirstName AS Imię
    ,Prac.BirthDate AS [Data Urodzenia]    
FROM
    Employees AS Prac
WHERE
    Prac.FirstName LIKE '%t'
    OR
    Prac.BirthDate > '1960-01-01'


    

SQL Aliasy

SQL Aliasy


    


DEFINICJA

Aliasy to zastępcze lub tymczasowe nazwy nadawane różnym obiektom np. kolumnom, tabelom lub podzapytaniom. Do nadania aliasu wykorzystujemy słówno AS. Jeżeli nasz alias jest dwu (lub więcej) wyrazowy to musimy objąć go w nawias kwadratowy. Z aliasów korzystamy np. w przypadku kiedy nasze dane źródłowe są złączeniem kilku tabel. Wtedy po słówku SELECT wykorzystujemy aliasy do rozróżnienia kolumn z poszczególnych tabel, jeśli ich nazwy się powielają. Alias wstawiamy wtedy przed nazwą kolumny tabeli i obie nazwy przedzielamy kropką np. 'SELECT alias_tab_źr.nazwa_kolumny1 AS alias1'. Aliasów możemy także użyć w przypadku sortowania wyników zapytania po słówku ORDER BY.

SQL Aliasy składnia

SELECT
     nazwa_kolumny1 AS alias1
    ,nazwa_kolumny2 AS [alias dla kol. 2]
    ,nazwa_kolumny3 AS alias3
FROM
    nazwa_tabeli_źródłowej AS alias_tab_źr


Przykład zastosowania Aliasów (baza Adventureworks)

Wyświetl wszystkie produkty, ale tylko kolumny: NazwaProduktu , NumerProduktu. Kolumnom nadaj aliasy (polskie nazwy).
Tabeli źródłówej nadaj alias 'tab_źr'.

SELECT
     Name AS [Nazwa Produktu]
    ,ProductNumber AS [Numer Produktu]
FROM
    Production.Product AS tab_źr

w przypadku kiedy dane źródłowe byłyby złączeniem kilku tabel moglibyśmy użyć aliasów poszczególnych tabel do odróżnienia kolumn po słówku SELECT np.

SELECT
     tab_źr.Name AS [Nazwa Produktu]
    ,tab_źr.ProductNumber AS [Numer Produktu]
FROM
    Production.Product AS tab_źr     


 Przykład zastosowania Aliasów (baza Northwind)

Wyświetl wszystkich pracowników, ale tylko kolumny: Nazwisko , Imię , DataUrodzenia. Kolumnom nadaj aliasy (polskie nazwy).
Tabeli źródłówej nadaj alias 'Prac'.

SELECT
     Prac.LastName AS Nazwisko
    ,Prac.FirstName AS Imię
    ,Prac.BirthDate AS [Data Urodzenia]    
FROM
    Employees AS Prac


 

SQL polecenia/funkcje

SQL Server 2008 R2 (skąd pobrać). SQL

sql Kurs SQL polecenia / funkcje

sql aliasy SQL Aliasy
sql alter table SQL Alter Table
sql and SQL AND
sql between SQL BETWEEN
sql case SQL CASE
sql check SQL CHECK
sql constraints SQL CONSTRAINTS
sql create database SQL CREATE DATABASE
sql create table SQL CREATE TABLE
sql cross join SQL CROSS JOIN
sql delete SQL DELETE
sql drop index SQL DROP INDEX
sql except SQL EXCEPT
sql foreign key SQL FOREIGN KEY
sql from SQL FROM
sql full outer join SQL FULL OUTER JOIN
sql grant SQL GRANT
sql group by SQL GROUP BY
sql having SQL HAVING
sql in SQL IN
sql in SQL IN (CASE,podzapytanie)
sql inner join SQL INNER JOIN
sql insert into SQL INSERT INTO
sql insert into select SQL INSERT INTO SELECT
sql intersect SQL INTERSECT
sql is not null SQL IS NOT NULL
sql is null SQL IS NULL
sql join SQL JOIN
sql left join SQL LEFT JOIN
sql like SQL LIKE
sql not null SQL NOT NULL
sql null wartość SQL NULL wartość
sql or SQL OR
sql order by SQL ORDER BY
sql primary key SQL PRIMARY KEY
sql primary key SQL REVOKE
sql right join SQL RIGHT JOIN
sql select SQL SELECT
sql distinct SQL SELECT DISTINCT
sql select into SQL SELECT INTO
sql select top SQL SELECT TOP
sql symbole wieloznaczne SQL Symbole wieloznaczne
sql update SQL UPDATE
sql union union all SQL UNION
sql union union all SQL UNION ALL
sql unique SQL UNIQUE
sql where SQL WHERE

sql avg function SQL AVG()
sql avg function SQL CAST()
sql avg function SQL CONVERT()
sql count function SQL COUNT()
sql date SQL DATE()
sql datediff function SQL DATEDIFF()
sql datepart function SQL DATEPART()
sql getdate SQL GETDATE()
sql getdate SQL LEN()
sql date SQL MAX()
sql date SQL MID()
sql date SQL MIN()
sql now function SQL NOW()
sql over partition by function SQL OVER(Partition by)
sql now function SQL ROUND()
sql now function SQL SUBSTRING()
sql date SQL SUM()

 

sql declare set sql server DECLARE SET

 

SQL WHERE

SQL WHERE


    


DEFINICJA

Po poleceniu WHERE określamy warunki dotyczące wyświetlanych później wyników. Innymi słowy filtrujemy zestaw otrzymanych ze źródła rekordów tylko do tych które nas interesują. W tej części często korzystamy z operatorów np. AND (łączymy warunki, czyli obydwa warunki muszą wystąpić jednocześnie) , OR (wystarczy że wystąpi tylko jeden z warunków).

SQL WHERE składnia

SELECT nazwa_kolumny1 , nazwa_kolumny2 , nazwa_kolumny3
FROM nazwa_tabeli_źródłowej
WHERE warunek1 AND warunek2


Przykład zastosowania WHERE (baza Adventureworks)

Wyświetl wszystkie dane na temat pruduktu o numerze 'CR-7833'.

SELECT
    *    
FROM
    Production.Product
WHERE
    ProductNumber = 'CR-7833'


 Przykład zastosowania WHERE (baza Northwind)

Wyświetl wszystkie dane na temat pracownika o nazwisku 'King'.

SELECT
     *    
FROM
    Employees    
WHERE
    LastName = 'King'