Archiwa tagu: database

db HOTELS 11. Wyświetl wszystkie rezerwacje (z informacją czy zrealizowane)

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 11

Treść: Wyświetl wszystkie rezerwacje (z informacją czy zrealizowane)

Polecenia/funkcje w zapytaniu: SELECT, CASE, FROM, JOIN, WHERE


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

SELECT
     Klient.client_last_name AS Nazwisko
    ,Klient.client_first_name AS [Imie]
    ,Kraj.country_name AS [Kraj (hotel)]
    ,Miasto.city_name AS [Miasto (hotel)]
    ,reservation_starting_date AS [Data rozpoczecia rezerwacji]
    ,reservation_final_date AS [Data zakończenia rezerwacji]
    ,CASE
        WHEN Rezerwacja.reservation_realized = 1 THEN 'Zrealizowana'
        ELSE 'NIE zrealizowana'
     END AS [Stan realizacji]
FROM
    reservations Rezerwacja
    JOIN clients Klient ON Rezerwacja.reservation_client_id = Klient.client_id
    JOIN rooms Pokoj ON Rezerwacja.reservation_room_id = Pokoj.room_id
    JOIN hotels Hotel ON Pokoj.room_hotel_id = Hotel.hotel_id
    JOIN countries Kraj ON Hotel.hotel_country_id = Kraj.country_id
    JOIN cities Miasto ON Hotel.hotel_city_id = Miasto.city_id
WHERE
    Klient.client_last_name = 'Banko'

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER


 

db HOTELS 10. Oblicz udział procentowy hoteli w danym kraju względem wszystkich hoteli w bazie

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 10

Treść: Oblicz udział procentowy hoteli w danym kraju względem wszystkich hoteli w bazie

Polecenia/funkcje w zapytaniu: DECLARE, SELECT, COUNT, FROM, WHERE, CAST(), JOIN, GROUP BY, ORDER BY


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

DECLARE @ile_hoteli numeric =
    (
        SELECT
            COUNT(*)
        FROM    
            hotels
    )   
SELECT
     C.country_name AS Kraj
    ,CAST(COUNT(*)*100/@ile_hoteli AS NUMERIC(6,2)) AS [%]
FROM
    hotels H
    JOIN countries C ON H.hotel_country_id = C.country_id    
GROUP BY
    C.country_name
ORDER BY
    2 DESC   

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


 

db HOTELS 9. Jakie było obłożenie wszystkich hoteli (%) w dniu 2016-10-10

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 9

Treść: Jakie było obłożenie wszystkich hoteli (%) w dniu 2016-10-10

Polecenia/funkcje w zapytaniu: DECLARE, SELECT, COUNT, FROM, WHERE, BETWEEN, CAST(), ROUND()


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

DECLARE @dataSprawdzenia date = '2016-10-10'
DECLARE @ilePokoi int =
    (
        SELECT
            COUNT(*)
        FROM
            rooms
    )
DECLARE @ilePokoiZajetych int =
    (    
        SELECT
            COUNT(*)    
        FROM    
            reservations R    
        WHERE
            @dataSprawdzenia BETWEEN R.reservation_starting_date AND R.reservation_final_date
    )    
DECLARE @oblozenie REAL = 100*@ilePokoiZajetych/@ilePokoi;
SELECT
     'Wszystkich pokoi: '+CAST(@ilePokoi AS NVARCHAR) AS Pokoi
    ,'Zajętych pokoi: '+CAST(@ilePokoiZajetych AS NVARCHAR) AS Zajętych
    ,'Obłożenie pokoi w dn. 2016-10-10 wynosi: '
        +CAST(CAST(ROUND((100*CAST(@ilePokoiZajetych AS NUMERIC)/CAST(@ilePokoi AS NUMERIC)),2) AS NUMERIC(6,2)) AS NVARCHAR)
        +'%' AS Obłożenie

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


 

db HOTELS 8. W jakim hotelu złożono najwięcej rezerwacji które zostały zrealizowane.

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 8

Treść:  W jakim hotelu złożono najwięcej rezerwacji które zostały zrealizowane.

Polecenia/funkcje w zapytaniu: SELECT TOP, Aliasy, COUNT(), FROM, JOIN, WHERE, GROUP BY, ORDER BY


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

SELECT TOP 1
     CO.country_name AS Kraj
    ,CI.city_name AS Miasto
    ,H.hotel_id AS [Nazwa hotelu]
    ,COUNT(*) AS [Ilość złożonych rezerwacji]
FROM
    reservations RE
    JOIN rooms RO ON RE.reservation_room_id = RO.room_id
    JOIN hotels H ON RO.room_hotel_id = H.hotel_id
    JOIN countries CO ON H.hotel_country_id = CO.country_id
    JOIN cities CI ON H.hotel_city_id = CI.city_id
WHERE
    RE.reservation_realized = 1
GROUP BY
    CO.country_name , CI.city_name , H.hotel_id        
ORDER BY
    COUNT(*) DESC

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


 

db HOTELS 7. W jakim hotelu złożono najwięcej rezerwacji.

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 7

Treść:  W jakim hotelu złożono najwięcej rezerwacji.

Polecenia/funkcje w zapytaniu: SELECT TOP, Aliasy, COUNT(), FROM, JOIN, GROUP BY, ORDER BY


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

SELECT TOP 1
     CO.country_name AS Kraj
    ,CI.city_name AS Miasto
    ,H.hotel_id AS [Nazwa hotelu]
    ,COUNT(*) AS [Ilość złożonych rezerwacji]
FROM
    reservations RE
    JOIN rooms RO ON RE.reservation_room_id = RO.room_id
    JOIN hotels H ON RO.room_hotel_id = H.hotel_id
    JOIN countries CO ON H.hotel_country_id = CO.country_id
    JOIN cities CI ON H.hotel_city_id = CI.city_id
GROUP BY
    H.hotel_id , CO.country_name , CI.city_name
ORDER BY
    COUNT(*) DESC

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


 

db HOTELS 6. Który hotel ma najwięcej miejsc parkingowych

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 6

Treść:  Który hotel ma najwięcej miejsc parkingowych

Polecenia/funkcje w zapytaniu: DECLARE, SELECT TOP, COUNT(), GROUP BY, FROM, ORDER BY, WHERE, HAVING


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

DECLARE @max_parking_places int = (
SELECT TOP 1
    COUNT(P.parking_hotel_id)
FROM
    parking P    
GROUP BY
    P.parking_hotel_id
ORDER BY
    1 DESC
);
SELECT
     H.hotel_name AS [Nazwa hotelu]
    ,COUNT(P.parking_hotel_id) AS [Ilość miejsc parkingowych]
FROM
    parking P    
    JOIN hotels H ON P.parking_hotel_id = H.hotel_id
GROUP BY
    P.parking_hotel_id, H.hotel_name
HAVING    
    COUNT(P.parking_hotel_id) = @max_parking_places   

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


 

db HOTELS 5. Znajdź i wyświetl informacje o najdłuższej rezerwacji

SQL tutorial. db Hotels exercises. SQL SERVER.

Baza: Hotele/Hotels

Zadanie nr: 5

Treść:  Znajdź i wyświetl informacje o najdłuższej rezerwacji

Polecenia/funkcje w zapytaniu: DECLARE, SELECT TOP, DATEDIFF(), FROM, ORDER BY, WHERE


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


Rozwiązanie:

Zapytanie:

DECLARE @ilosc_dni int =
    (
        SELECT TOP 1
            DATEDIFF(day,reservation_starting_date,reservation_final_date) AS Dni
        FROM
            reservations R    
        ORDER BY
            1 DESC            
    )    
    
SELECT
     *
FROM
    reservations R        
WHERE
    DATEDIFF(day,reservation_starting_date,reservation_final_date) = @ilosc_dni

Wynik:

SQL tutorial. db Hotels exercises. SQL SERVER.

Pobierz skrypt sql


SQL tutorial. AdventureWorks exercises SQL SERVER  SQL tutorial. AdventureWorks exercises SQL SERVER SQL tutorial. AdventureWorks exercises SQL SERVER


 

AdventureWorks jak zainstalować? AdventureWorks how to install?

AdventureWorks jak zainstalować? AdventureWorks how to install?

Jak ściągnąć plik bazy AdventureWorks dowiesz się tutaj.

Po pobraniu pliku bazy AdventureWorks możemy przystąpić do instalacji tej bazy w środowisku SQL Server (u nas w wersji 2008 R2 express).

1.     W pliku (archiwum) które ściągnąłeś z Internetu znajdują sie dwa pliki o rozszerzeniach .MDF i .LDF. Rozpakowujemy plik i oba pliki kopiujemy do katalogu C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA (to jest lokalizacja domyśla jeśli przy instalacji wybrałeś inna posługuj się nią dalej).
2.   Teraz uruchom Management Studio i połącz się z odpowiednim serwerem przyciskiem "connect" (jeżeli nic nie zmieniałeś to w polu server name masz wybrany Twój domyślny wystarczy tylko kliknąć w connect).
3.   W oknie "Object Explorer" (jeśli go nie masz wciśnij F8) na gałęzi "Databases" kliknij prawym przyciskiem myszy i z menu kontekstowego wybierz opcję "Attach…".
4.   Pojawi się nowe okno "Attach Database".  Mniej więcej w połowie okna jest przycisk "Add…". Kliknij w niego.
5   W nowym oknie "Locate Database File" musisz wskazać lokalizację pliku bazy AdventureWorks, czyli pliku o nazwie AdventureWorks2008R2_Data.mdf. W tym celu odnaleź na gałęzi lokalizację z pkt.1, czyli C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA (lub Twoja jeśli jest inna niż domyślna), wskaż plik AdventureWorks2008R2_Data.mdf i potwierdź przyciskiem "OK.
6.   W tym momencie powinieneś wrócić do okna o nazwie "Attach Database". W części "Database to attach:" powinnieneś widzieć ścieżkę do pliku który przed chwilą wskazałeś. Potwierdź swój wybór przyciskiem "OK".
7.   Powinieneś wrócić do okna głównego Management Studio. W oknie "Object Explorer" rozwiń gałąź "Databases" (plusikiem). Jeśli nie zobaczy tam bazy AdventureWorks2008R2 odśwież tą gałąź klikając prawym przyciskiem myszy na "Databases" i wybierz opcję "Refresh". W tym momencie na pewno baza danych AdventureWorks2008R2 powinna się pojawić.

 

Adventureworks skąd pobrać? Adventureworks database download.

Adventureworks skąd pobrać? Adventureworks database download.

Baza Adventureworks jest treningową bazą danych firmy Microsoft dla środowiska SQL Server. Link do bazy znajdziesz na naszym portalu tutaj. Informacje jak zainstalować SQL Server w wersji express znajdziesz tutaj: skąd pobrać i jak zainstalować. Możesz też skorzystać z bezpośredniego linku tutaj.

Dzięki bazie Adventureworks możesz szlifować swoje umiejętności w programowaniu w języku SQL.

1.     W pole adres w przeglądarce wpisujemy adres http://msftdbprodsamples.codeplex.com/downloads/get/478216
2.   Po wyświetleniu strony po ok. 3 sekundach otworzy się kolejne okienku  o nazwie "Otwieranie AdventureWorks2008R2_Database.zip" i będziesz miał możliwość zapisać plik bazy danych na twardy dysk Twojego komputera.
3.   W tym celu zaznaczamy radiobutton przy opcji "Zapisz Plik" i klikamy na OK.
4.   Kolejny krok to wskazanie gdzie system na zapisać plik na Twoim twardym dysku. W oknie które się otworzyło wskazujesz lokalizację pliku (gdzie plik ma się zapisać) i potwierdzasz przyciskiem "Zapisz".
5.   W tym momecie nastąpi pobieranie pliku bazy danych adventureworks z Internetu. Plik ma ok 35 MB więc zostanie pobrany w czasie zależnym od łącza jakim dysponjesz.
6.   Po ściągnięciu pliku w lokalizacji którą wskazałeś pojawi się plik o nazwie AdventureWorks2008R2_Database.zip