Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --ZADANIE 1.
- --Napisać program, który wyświetli wszystkie liczby z zakresu od 50 do 100. Jeżeli liczba jest podzielna przez 5 to wypisze stosowną informację.
- declare
- @liczba int
- begin
- set @liczba=50
- while @liczba<=100
- begin
- print cast(@liczba as varchar)
- if @liczba%5=0 print 'Liczba dzieli się przez 5'
- set @liczba+=1
- end
- end
- --ZADANIE 2.
- --Utworzyć funkcję o nazwie liczbyPodzielnePrzez, która za argument przyjmuje dwa argumenty - liczba1 oraz liczba2 i zwraca opis, czy liczba1 jest podzielna przez liczbe2, czy też nie.
- alter function liczbyPodzielnePrzez
- (@liczba1 int, @liczba2 int)
- returns varchar(100)
- as
- begin
- if @liczba1%@liczba2=0
- return 'Liczba' +cast(@liczba1 as varchar) + ' jest podzielna przez '+cast(@liczba2 as varchar)
- return 'Liczba' +cast(@liczba1 as varchar) + ' nie jest podzielna przez '+cast(@liczba2 as varchar)
- end
- select dbo.liczbyPodzielnePrzez(10,2)
- --ZADANIE 3.
- --Utworzyć tabelę o nazwie Adres z kolumną o nazwie ulica i wypełnić ją następującymi wartościami:
- --Al. Grunwaldzka 23/32
- --BITWY POD PŁOWCAMI 140
- --ul. Marii Curie-skłodowskiej 121 / 2
- --Al. WOJSKA POLSKIEGO 18D/21
- --Al. Niepodległości 99D / 12
- --UL. 23 MARCA 39a/1
- create table Adres (
- ulica varchar(50));
- insert into Adres values
- ('Al. Grunwaldzka 23/32'),
- ('BITWY POD PŁOWCAMI 140'),
- ('ul. Marii Curie-skłodowskiej 121 / 2'),
- ('Al. WOJSKA POLSKIEGO 18D/21'),
- ('Al. Niepodległości 99D / 12'),
- ('UL. 23 MARCA 39a/1');
- select * from Adres
- --Należy oczyścić powyższą tablicę poprzez pisanie wielkimi literami każdej nazwy, bez skrótu ul. i al.
- select replace(replace(upper(ulica),'UL. ', '')'AL. ', '') from Adres;
- --Skrypt powinien dopasowywać się automatycznie do nowo dodawanych wierszy.
- --ZADANIE 4.
- --Utworzyć nową funkcję o nazwie Oczysc, która będzie oczyszczała wiersze z tabeli o nazwie adres, przyjmując za argument tekst nieoczyszczony i zwracając oczyszczony.
- create function oczysc(@wiersz varchar(50))
- returns varchar(50)
- as
- begin
- return replace(replace(upper(@wiersz),'UL. ',''),'AL. ','')
- end
- select ulica from Adres
- select dbo.oczysc(ulica) from Adres
- --ZADANIE 5.
- --Napisać funkcję o nazwie LiczbaWierszy, która zwróci liczbę wierszy zapisanych w tabeli o nazwie adres.
- alter function LiczbaWierszy()
- returns numeric(5)
- as
- begin
- declare @liczbawierszy as numeric(5)
- select @liczbawierszy=COUNT(*) from Adres
- return @liczbawierszy
- end
- select dbo.LiczbaWierszy()
- --ZADANIE 6.
- --Utworzyć wyzwalacz o nazwie ModyfikujAdres, który zablokuje możliwość modyfikacji wierszy w tabeli o nazwie Adres.
- create trigger ModyfikujAdres
- on Adres
- after insert, update, delete
- as
- begin
- print 'Brak możliwości zmian w tabeli Adres'
- rollback transaction
- raiserror ('Transakcja wycofana',1,1)
- end
- insert into Adres values ('1');
- select * from Adres
- --ZADANIE 7.
- --Utworzyć schemat n12. Utworzyć w tym schemacie procedurę o nazwie Dane, która wyświetli wszystkie oczyszczone ulice z tabeli o nazwie Adres.
- create schema n12;
- create table n12.t(id int);
- insert into n12.t values (1),(2),(3),(4),(5);
- select * from n12.t;
- select * from dbo.t;
- create procedure n12.dane
- as
- begin
- select dbo.oczysc(ulica) from Adres
- end
- exec N12.dane
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement