Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DATE AND TIME
- 1) Utwórz tabelę przechowującą w oddzielnych kolumnach datę, czas oraz datę i czas ze strefą czasową.
- Wstaw do tabeli bieżącą datę i czas ze strefą czasową o wysokiej precyzji. Pobierz dane z tabeli.
- 2) Pobierz bieżącą datę i czas ze strefą czasową.
- 3) Pobierz z bieżącej daty i czasu(czas uniwersalny) rok, miesiąc i dzień. Zastosuj odpowiednie funkcje.
- 4) Za pomocą odpowiedniej funkcji pobierz nazwę dnia tygodnia i miesiąca w postaci łańcucha znakowego
- z bieżącej daty.
- 5) Pobierz datę w postaci ostatniego dnia miesiąca na podstawie bieżącej daty, zastosuj
- odpowiednią funkcję.
- 6) Podaj za pomocą odpowiedniej funkcji różnicę w postaci miesięcy między datami:
- 2015-03-22 oraz 2016/05/08
- 7) Podaj datę, po dodaniu 23 dni do daty 2015-10-25, zastosuj odpowiednią funkcję.
- SEQUENCE
- 1) Stwórz najprostszą sekwencję o nazwie basicSeq, która zaczyna się wartością jeden oraz zwiększa się
- o jeden.
- 2) Wypisz kolejną wartość z basicSeq (użyj NEXT VALUE FOR).
- 3) Utwórz tablicę o nazwie Alfa, przechowującą literę oraz liczbę. Wprowadź rekord do tablicy Alfa
- używając kolejnej wartości basicSeq dla kolumny liczba oraz dowolnej litery. Sprawdź zawartość tablicy
- Alfa.
- 4) Sprawdź systemowe właściwości stworzonej sekwencji (użyj sys.sequences).
- 5) Stwórz kolejną sekwencję advanceSeq, która będzie typem danych BIGINT, zaczynać się od wartości 5
- oraz zwiększać się o 7. Warunkiem jest, aby najmniejszą wartością BYło 5, a maksymalną 6000.
- VIEW
- 1) Stwórz widok o nazwie basicView, który będzie zawierał pierwsze 3 rekordy osób o najwyższej sumie
- zarobków. Sprawdź działanie widoku.
- 2) Zmień widok o nazwie basicView, tak żeby zwracał 10 rekordów o najniższej sumie zarobków.
- 3) Stwórz widok o nazwie moreBasicView, który będzie wyświetlał 20 pierwszych nazwisk, imion i dat
- urodzenia z tablicy Osoby (uporządkowane wg nazwiska alfabetycznie).
- 4) Zaktualizuj rekord w widoku moreBasicView poprzez zmienienie nazwiska BARDEN na CAT. Sprawdź
- wynik w widoku oraz w bazowej tablicy.
- 5) Utwórz widok o nazwie KlienciMiastaFaktury przechowujący nazwisko i imię klienta wraz z nazwą
- miasta, z którego pochodzi oraz liczbą faktur(kolumnę nazwij liczba_faktur). Nazwisko i imię klienta
- powinno znajdować w jednej kolumnie o nazwie nazwisko_imie. Pobierz dane z widoku sortując rekordy
- malejąco wg liczby faktur.
- 6) Utwórz widok o nazwie LiczbaTowarowProducenta, przechowujący nazwę producenta oraz liczbę
- towarów, które sprzedaje.
- 7) Za pomocą CTE utwórz zbiór danych przechowujących nazwisko, imię, rok urodzenia oraz wzrost osoby
- i SUMę jego wynagrodzeń, a następnie za pomocą polecenia SELECT pobierz średnie wynagrodzenie tych
- osób.
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ----- DATE TIME
- Ćw 1
- CREATE TABLE daty
- (
- d DATE,
- t TIME,
- dt datetimeoffset
- );
- INSERT INTO daty VALUES( sysdatetimeoffset(),sysdatetimeoffset(),sysdatetimeoffset());
- SELECT * FROM daty
- Ćw 2
- SELECT sysdatetimeoffset();
- Ćw 3
- SELECT YEAR(SYSUTCDATETIME()), MONTH(SYSUTCDATETIME()), DAY(SYSUTCDATETIME());
- Ćw 4
- SELECT datename(MONTH, getdate()), datename(weekday, getdate());
- ćw5
- SELECT eomonth(CURRENT_TIMESTAMP)
- Ćw 6
- SELECT datediff (MONTH, '2015-03-22', '2016-05-08');
- Ćw 7
- SELECT dateadd (DAY, 23, '2015-10-25')
- ----- SEQUENCE
- Ćw 1
- CREATE SEQUENCE basicSeq
- START WITH 1
- INCREMENT BY 1;
- Ćw 2
- SELECT NEXT VALUE FOR basicSeq;
- ćw 3
- CREATE TABLE Alfa
- (
- nr INT,
- litera VARCHAR(2)
- )
- INSERT INTO Alfa VALUES ( NEXT VALUE FOR basicSeq, 'A')
- SELECT * FROM Alfa
- Ćw 4
- SELECT * FROM sys.sequences
- WHERE name='basicSeq';
- ćw 5
- CREATE SEQUENCE advancedSeq AS BIGINT
- START WITH 5
- INCREMENT BY 7
- minvalue 5
- maxvalue 6000
- SELECT * FROM sys.sequences
- WHERE name='advancedSeq';
- ----- VIEW
- Ćw 1
- CREATE VIEW basicView
- AS
- SELECT top 3 Nazwisko, Imie, SUM(Brutto) wynagrodzenie
- FROM Osoby o
- JOIN Zarobki z ON o.IdOsoby=z.IdOsoby
- GROUP BY Nazwisko, Imie
- ORDER BY wynagrodzenie DESC
- SELECT * FROM basicView
- Ćw 2
- ALTER VIEW basicView AS
- SELECT top 10 Nazwisko, Imie, SUM(Brutto) wynagrodzenie
- FROM Osoby o
- JOIN Zarobki z ON o.IdOsoby=z.IdOsoby
- GROUP BY Nazwisko, Imie
- ORDER BY wynagrodzenie ASC
- SELECT * FROM basicView
- Ćw 3
- CREATE VIEW moreBasicView AS
- SELECT top 20 Nazwisko, Imie, RokUrodz FROM Osoby
- ORDER BY Nazwisko ASC
- SELECT * FROM moreBasicView;
- Ćw 4
- UPDATE moreBasicView
- SET Nazwisko = 'BARDEN' WHERE Nazwisko = 'CAT'
- Ćw 5
- CREATE VIEW KlienciMiastaFaktury AS
- SELECT k.Nazwisko + ' ' + k.Imie AS [nazwisko_imie], m.Miasto, COUNT(f.IdFaktury) [liczba_faktur] FROM Klienci k
- JOIN Miasta m ON m.IdMiasta = k.IdMiasta
- JOIN Faktury f ON f.IdKlienta = k.IdKlienta
- GROUP BY k.Nazwisko, k.Imie, m.Miasto;
- SELECT * FROM KlienciMiastaFaktury;
- Ćw 6
- CREATE VIEW LiczbaTowarowProducenta
- AS
- SELECT p.NazwaProducenta, COUNT(t.IdTowaru) liczba_towarow FROM Producenci p
- JOIN Towar t ON t.IdProducenta=p.IdProducenta
- GROUP BY p.NazwaProducenta;
- SELECT * FROM LiczbaTowarowProducenta
- Ćw 7
- WITH Zbior AS (
- SELECT o.Nazwisko, o.Imie, o.RokUrodz, o.Wzrost, SUM(z.Brutto) suma
- FROM Osoby o
- JOIN Zarobki z ON z.IdOsoby= o.IdOsoby
- GROUP BY o.Nazwisko, o.Imie, o.RokUrodz, o.Wzrost
- )
- SELECT avg(suma) FROM Zbior z;
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- CREATE TABLE dataiczas
- (
- d DATE,
- t TIME,
- dts smalldatetime,
- dt datetime2
- );
- INSERT INTO dataiczas VALUES(getdate(), getdate(), getdate(), getdate() );
- SELECT *FROM dataiczas;
- SELECT YEAR(getdate()), MONTH(getdate()), DAY(getdate());
- SELECT datename(YEAR, getdate()),
- datename(MONTH, getdate()),
- datename(DAY, getdate()),
- datename(dayofyear, getdate()),
- datename(weekday, getdate());
- SELECT datepart(YEAR, getdate()),
- datepart(MONTH, getdate()),
- datepart(DAY, getdate()),
- datepart(dayofyear, getdate()),
- datepart(weekday, getdate());
- SELECT datediff (MONTH, '2016-04-17', getdate()), datediff (DAY, '2016-04-24', getdate());
- SELECT dateadd (MONTH, 1, '2016-05-13'),
- dateadd (DAY, 11, getdate() );
- SELECT datefromparts(2016, 2, 4)
- SELECT eomonth (getdate(), 3);
- SELECT @@servername AS 'Server Name',
- @@servicename AS 'service name',
- @@version AS 'sql version',
- @@LANGUAGE AS 'lengłydż';
- /*identity (seed, increment) */
- CREATE TABLE test_ident(
- nr INT IDENTITY,
- nazwa VARCHAR(50)
- );
- INSERT INTO test_ident(nazwa) VALUES ('ksiazka');
- SET identity_insert Studia.dbo.test_ident ON
- INSERT INTO test_ident(nr, nazwa) VALUES (5, 'cd');
- SET identity_insert Studia.dbo.test_ident OFF
- SELECT * FROM test_ident;
- SELECT ident_current('test_ident');
- ///////////////////////////////////////////////////////
- USE BazaRelacyjna;
- CREATE SEQUENCE seq_test1
- START WITH 1
- INCREMENT BY 1;
- CREATE SEQUENCE seq_test2 AS SMALLINT
- START WITH 1
- INCREMENT BY 1;
- SELECT * FROM sys.sequences
- WHERE name='seq_test2';
- SELECT NEXT VALUE FOR seq_test1;
- CREATE TABLE t1 (nr INT, nazwa VARCHAR(50));
- CREATE TABLE t2 (nr INT, nazwa VARCHAR(50));
- INSERT INTO t1 VALUES ( NEXT VALUE FOR seq_test1, 'val1'), (NEXT VALUE FOR seq_test1, 'val2');
- INSERT INTO t2 VALUES ( NEXT VALUE FOR seq_test1, 'elem');
- SELECT * FROM t1;
- SELECT *FROM t2;
- ALTER SEQUENCE seq_test1
- restart WITH 0;
- ALTER SEQUENCE seq_test2
- restart WITH 122
- INCREMENT BY 2
- minvalue 122
- maxvalue 2000
- SELECT * FROM sys.sequences
- WHERE name='seq_test2';
- DROP SEQUENCE seq_test1, seq_test2;
- /////////////////////////////////////////////////////////////
- WITH Zbior AS (
- SELECT d.Opis, o.Nazwisko, o.Imie
- FROM Osoby o
- JOIN Dzialy d ON d.idDzialu = o.idDzialu
- )
- SELECT Zbior.Opis, Zbior.Nazwisko, Zbior.Imie FROM Zbior
- JOIN Klienci k ON k.Nazwisko = Zbior.Nazwisko
- WITH Poziomy AS
- (
- SELECT idOsoby, idSzefa, Nazwisko, Imie, 0 AS lev
- FROM Osoby WHERE idSzefa IS NULL
- UNION ALL
- SELECT o.IdOsoby, o.IdSzefa, o.Nazwisko, o.Imie, lev + 1 FROM Osoby o
- INNER JOIN poziomy p ON o.IdSzefa = p.IdOsoby
- )
- SELECT lev, Nazwisko, Imie FROM Poziomy;
- ////////////////////////////////////////////////////////
- CREATE VIEW osoby_dzialy AS
- SELECT d.Opis, o.IdOsoby, o.Nazwisko, o.Imie
- FROM Osoby o
- JOIN Dzialy d ON d.IdDzialu = o.IdDzialu
- ALTER VIEW osoby_dzialy AS
- SELECT d.Opis, o.Nazwisko
- FROM Osoby o
- JOIN Dzialy d ON d.IdDzialu = o.IdDzialu
- SELECT * FROM osoby_dzialy
- UPDATE osoby_dzialy
- SET Opis = 'Nowy dzial' WHERE Opis = 'Inny'
- CREATE VIEW widok1
- AS
- SELECT Nazwisko FROM Osoby;
- INSERT INTO widok1 VALUES('Kowalska');
- SELECT * FROM widok1;
- DELETE FROM widok1
- WHERE Nazwisko = 'Kowalska';
- DROP VIEW widok1;
Add Comment
Please, Sign In to add comment