Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ćwiczenie 1.
- Utwórz i uruchom procedurę o nazwie daneKlientow wyświetlającą dane klientów z bazy BazaRelacyjna. Za pomocą
- odpowiedniego polecenia usuń tą procedurę.
- Ćwiczenie 2.
- Utwórz procedurę o nazwie wyszukajKlientow, wyszukującą klientów o nazwisku rozpoczynającym się na daną literę
- podaną jako parametr procedury. Utwórz analogiczną procedurę, ale pozwalającą na przekazanie zamiast litery
- dowolnego łańcucha znakowego, od którego powinno zaczynać się nazwisko klienta.
- Ćwiczenie 3.
- Zmodyfikuj procedurę o nazwie wyszukajKlientow, utworzoną w ćwiczeniu 2 tak, aby wyszukiwała klientów o nazwisku
- rozpoczynającym się na daną literę podaną jako parametr procedury, wyświetlającą tylko imię, nazwisko i nazwę miasta,
- z którego pochodzi klient.
- Ćwiczenie 4.
- Utwórz procedurę o nazwie nowiPracownicy, za pomocą której będzie tworzona tabela o nazwie Pracownicy. Procedura po
- utworzeniu tabeli powinna umieścić w niej dane pracowników: imie i nazwisko pracownika oraz nazwę działu, w jakim
- pracuje. Na koniec procedura ta wyświetli 20 pierwszych rekordów z nowoutworzonej tabeli, ostatnią kolumnę
- wyświetlając jako nazwa działu(Jak powinien wyglądać alias dla tej nazwy kolumny?).
- Ćwiczenie 5.
- Utwórz procedurę, która wyliczy i zwróci w postaci parametru wyjściowego maksymalny zarobek pracowników( należy
- zadeklarować parametr wyjściowy w procedurze). Wykorzystaj utworzoną procedurę do wyświetlenia łańcucha
- znakowego ‘Maksymalny zarobek TO ‘, wraz z wartością zadeklarowanej zmiennej. (Przed wywołaniem procedury
- zadeklaruj zmienną wyjściową, wykorzystaj funkcję PRINT do wyświetlenia łańcucha znakowego wraz z wartością
- zmiennej, CAST wykorzystaj do zmiany typu wartości zmiennej na VARCHAR).
- Ćwiczenie 6.
- Utwórz procedurę, która obliczy liczbę osób o wzroście powyżej wartości przekazanej jako parametr do procedury,
- utwórz zmienną o nazwie liczbaOsob, przekaż do niej wyliczoną przez procedurę liczbę i wyświetl jej wartość.
- Ćwiczenie 7.
- Utwórz procedurę, która pobierze bieżącą datę i czas i zwróci wartości w postaci roku, miesiąca i dnia. Za pomocą
- zmiennych wyświetl datę w postaci: dzień miesiąc rok(np. 20 kwiecień 2015). Miesiąc powinien BYć wyświetlony w
- postaci nazwy miesiąca w języku polskim(wykorzystaj do ustawienia nazwy miesiąca CASE WHEN … THEN …ELSE)
- Ćwiczenie 8.
- Utwórz tabelę o nazwie Pracownik z kolumnami: imie, nazwisko, dzial. Utwórz procedurę o nazwie wstawPracownika,
- która pozwoli na wstawianie danych do tej tabeli. Za jej pomocą wstaw kilka rekordów do nowej tabeli. Sprawdź, czy za
- pomocą procedury rekord został dodany do tabeli Pracownik(SELECT). Usuń nową tabelę.
- Ćwiczenie 9.
- Utwórz tabelę o nazwie Pracownik. Za pomocą procedury przenieś do niej dane pracowników zatrudnionych w dziale
- Handlowy zarabiających powyżej 3500: imię, nazwisko, nazwę działu i wysokość wynagrodzenia. Pobierz dane z nowej
- tabeli Pracownik.
- Ćwiczenie 10.
- Utwórz tabelę n_Zarobki przenosząc do niej za pomocą polecenia SELECT INTO dane z tabeli Zarobki. Utwórz procedurę,
- która pobierze średnie wynagrodzenie oraz podniesie wynagrodzenia wszystkim pracownikom o 20%, jeśli średnie
- zarobki są niższe niż 3000 lub obniży o 20%, jeśli są wyższe lub równe 3000. (wykorzystaj funkcję AVG oraz dane z tabeli
- n_Zarobki, a także instrukcję IF - ELSE)
- CREATE PROCEDURE pobierzOsoby AS
- SELECT * FROM Osoby;
- GO
- EXEC pobierzOsoby
- GO
- CREATE PROCEDURE pobierzOsobe @id INT AS
- SELECT * FROM Osoby WHERE idOsoby = @id;
- GO
- EXEC pobierzOsobe 5;
- GO
- CREATE PROCEDURE pobierzOsobe2 @imie VARCHAR(20), @rok INT AS
- SELECT * FROM Osoby WHERE Imie = @imie AND RokUrodz = @rok;
- GO
- EXEC pobierzOsobe2 'XENIA', 1974;
- GO
- ALTER PROCEDURE pobierzOsobe2 @iddzial INT, @rok INT AS
- SELECT * FROM Osoby WHERE idDzialu = @iddzial AND RokUrodz = @rok;
- GO
- EXEC pobierzOsobe2 4, 1947
- DROP PROCEDURE pobierzOsobe
- CREATE PROCEDURE #pobierz10OSob AS
- SELECT top 10 * FROM BAzaRelacyjna.dbo.Osoby;
- GO
- EXEC #pobierz10Osob
- GO
- ALTER PROCEDURE #pobierz10Osob
- AS
- SELECT top 10 Nazwisko, Imie FROM BazaRelacyjna.dbo.Osoby;
- GO
- DROP PROCEDURE #pobierz10Osob
- CREATE PROCEDURE pobierzMaxZarobek @rokWyplaty INT, @wynik money OUTPUT
- AS
- SELECT @wynik = MAX(brutto) FROM Zarobki
- WHERE YEAR(DataWyplaty) = @rokWyplaty;
- GO
- DECLARE @wynik money;
- EXEC pobierzMaxZarobek 2003, @wynik OUTPUT
- print @wynik;
- ALTER PROCEDURE pobierzWartosc @nazwa VARCHAR(30), @wynik money OUTPUT
- AS
- BEGIN
- DECLARE @cena money;
- SELECT @cena = MAX(Cena) FROM Towar
- WHERE NazwaTowaru LIKE @nazwa;
- SET @wynik = @cena+100;
- END
- print @wynik;
- GO
- DECLARE @wynik INT;
- EXEC pobierzWartosc 'W%', @wynik output;
- SELECT CAST(14.85 AS INT); /* i tak dalej */
- SELECT CONVERT(VARCHAR(19), getdate())
- SELECT CONVERT(VARCHAR(10), getdate(), 10)
- SELECT CONVERT(VARCHAR(10), getdate(), 110)
- SELECT CONVERT(VARCHAR(10), getdate(), 6)
- DECLARE @liczba INT;
- SET @liczba = 4;
- IF @liczba > 5
- BEGIN
- print 'da'
- END
- ELSE
- print 'niet';
- Ćw 1
- CREATE PROCEDURE daneKlientow
- AS
- SELECT * FROM Klienci;
- GO
- EXEC daneKlientow
- GO
- DROP PROCEDURE daneKlientow
- Ćw 2
- CREATE PROCEDURE wyszukajKlientow @nazw CHAR
- AS
- SELECT * FROM Klienci
- WHERE Nazwisko LIKE @nazw+'%';
- GO
- EXEC wyszukajKlientow 'P%';
- GO
- Ćw 3
- ALTER PROCEDURE wyszukajKlientow @nazw CHAR
- AS
- SELECT k.Nazwisko, k.Imie, m.Miasto FROM Klienci k
- JOIN Miasta m ON m.IdMiasta = k.IdMiasta
- WHERE Nazwisko LIKE @nazw+'%';
- GO
- Ćw 4
- CREATE PROCEDURE nowiPracownicy AS
- BEGIN
- DECLARE @Pracownicy TABLE(
- imie VARCHAR(20),
- nazwisko VARCHAR(20),
- nazwaDzialu VARCHAR(30)
- )
- INSERT INTO @Pracownicy
- SELECT o.Nazwisko, o.Imie, d.Opis FROM Osoby o
- JOIN Dzialy d ON d.IdDzialu = o.IdDzialu;
- SELECT top 20 imie, nazwisko, nazwaDzialu [nazwa dzialu] FROM @Pracownicy;
- END
- GO
- EXEC nowiPracownicy
- GO
- Ćw 5
- CREATE PROCEDURE wyliczZarobek @wynik money OUTPUT AS
- SELECT @wynik = MAX(Brutto) FROM Zarobki
- GO
- DECLARE @wynik money;
- EXEC wyliczZarobek @wynik OUTPUT
- print 'Maksymalny zarobek to ' + CAST(@wynik AS VARCHAR);
- GO
- Ćw 6
- CREATE PROCEDURE podajIleWzrost @maxWzrost DECIMAL(3,2), @liczbaOsob INT OUTPUT AS
- SELECT @liczbaOsob = COUNT(Wzrost) FROM Osoby WHERE Wzrost > @maxWzrost;
- GO
- DECLARE @liczba INT;
- EXEC podajIleWzrost 1.80, @liczba OUTPUT;
- print @liczba;
- GO
- Ćw 7
- CREATE PROCEDURE pobierzDate @mc VARCHAR(20) OUTPUT, @dzien INT OUTPUT, @rok INT OUTPUT
- AS
- BEGIN
- DECLARE @mcint INT;
- SELECT @dzien = DAY(getdate()),
- @mcint = MONTH(getdate()),
- @rok = YEAR(getdate());
- SET @mc = CASE @mcint
- WHEN 1 THEN 'styczeń'
- WHEN 2 THEN 'luty'
- WHEN 3 THEN 'marzec'
- WHEN 4 THEN 'kwiecień'
- WHEN 5 THEN 'maj'
- WHEN 6 THEN 'czerwiec'
- WHEN 7 THEN 'lipiec'
- WHEN 8 THEN 'sierpien'
- WHEN 9 THEN 'wrzesień'
- WHEN 10 THEN 'październik'
- WHEN 11 THEN 'listopad'
- WHEN 12 THEN 'grudzień'
- ELSE 'neiznany'
- END;
- END
- GO
- DECLARE @mc VARCHAR(20);
- DECLARE @dzien INT;
- DECLARE @rok INT;
- EXEC pobierzDate @mc OUTPUT, @dzien OUTPUT, @rok OUTPUT
- print CAST(@dzien AS VARCHAR) + ' ' + @mc + ' ' +CAST(@rok AS VARCHAR)
- GO
- Ćw 8
- CREATE TABLE Pracownik
- (
- imie VARCHAR(20),
- nazwisko VARCHAR(20),
- dzial VARCHAR(20)
- )
- CREATE PROCEDURE wstawPracownika @imie VARCHAR(20), @nazwisko VARCHAR(20), @dzial VARCHAR(20) AS
- INSERT INTO Pracownik VALUES (@imie, @nazwisko, @dzial);
- GO
- EXEC wstawPracownika 'anyszka', 'michal', 'cycuszki'
- GO
- SELECT * FROM Pracownik
- Ćw. 9
- CREATE TABLE Pracownik
- (
- imie VARCHAR(40),
- nazwisko VARCHAR(40),
- dzial VARCHAR(40),
- zaorbki money
- )
- CREATE PROCEDURE wstawPracownikow AS
- INSERT INTO Pracownik
- SELECT o.Imie, o.Nazwisko, d.Opis, z.Brutto
- FROM Osoby o
- JOIN Dzialy d ON d.IdDzialu = o.IdDzialu
- JOIN Zarobki z ON z.IdOsoby = o.IdOsoby
- WHERE d.Opis ='Handlowy' AND z.Brutto > 3500;
- GO
- EXEC wstawPracownikow
- GO
- SELECT *FROM Pracownik;
- DROP TABLE Pracownik;
- DROP PROCEDURE wstawPracownikow;
- Ćw. 10
- SELECT * INTO n_Zarobki FROM Zarobki;
- SELECT * FROM n_Zarobki;
- CREATE PROCEDURE aktualizujZarobki
- AS
- IF (SELECT avg(z.Brutto) AS 'Średnia zarobków' FROM n_zarobki z) < 3000
- BEGIN
- UPDATE n_Zarobki SET Brutto=Brutto*1.2;
- END;
- ELSE
- BEGIN
- UPDATE n_Zarobki SET Brutto=Brutto*0.8;
- END;
- GO
- EXEC aktualizujZarobki
- GO
- SELECT avg(z.Brutto) AS 'Średnia zarobków' FROM n_Zarobki z
Add Comment
Please, Sign In to add comment