ДЗ пр 1,2
И хранимые процедуры, и функции. 1.необходимо создать хранимую процедуру, выводящую на экран список преподавателей, которые брали книги в библиотеке (база данных Library).
use library
go
Create proc Show_t
as
select Teachers.FirstName
from T_Cards,Teachers
where T_Cards.Id_Teacher=Teachers.Id
--exec Show_t
2.Нужно показать книги по определенной тематике, при этом тематику необходимо передать при вызове
use library
go
Create proc Show_themes
@themes_name varchar(25)output
as
begin
select Books.Name
from Themes,Books
where @themes_name=Themes.Name
end
--use library
--go
--exec Show_themes 'Базы данных'
3. Необходимо создать хранимую процедуру, с помощью которой можно получить список студентов, у которых первая буква в фамилии лежит в диапазоне от А до К.
use library
go
create proc show_s
as
begin
select Students.FirstName
from Students
where Students.FirstName BETWEEN 'А'=CONVERT(char,Students.FirstName) and 'К'=CONVERT(char,Students.FirstName)
end
4.Необходимо создать хранимую процедуру, которая вернет Издательство, который выдало наибольшее кол-во книг.
use library
go
--create proc show_izd
--as
--begin
-- select Press.Name
-- from Press,Books
-- where Press.Id >(select MAX(Books.Id_Press)from Books)
--end
exec show_izd
1. Необходимо создать хранимую процедуру, которая вернет кол-во взятых с библиотеки книг преподавателями.
2. use library
3. go
4. --create proc take_t
5. --as
6. --begin
7. -- select sum(T_Cards.Id_Book)
8. -- from Teachers,T_Cards
9. -- where T_Cards.Id_Teacher=Teachers.Id
10. --end
11. exec take_t
6
Необходимо написать хранимую процедуру, выводящую на экран книги и цены по указанной категории, при этом необходимо указывать направление сортировки. 0 - сортировка результата по цене по убыванию, 1 - по возрастанию, любое другое - без сортировки. (многотабличная Books).
use library
go
--create proc booksandPrices
--as
--begin
-- select Books.Name,Categories.Name
-- from Categories,Books
-- where Books.Id=Categories.Id
-- ORDER BY Books.Name asc
--end
exec booksandPrices
7
1. Написать хранимую процедуру, возвращающую имя и фамилию библиотекаря, выдавшего наибольшее кол-во книг.
2. use library
3. go
4. create proc lbrman
5. as
6. begin
7. select Libs.FirstName,Libs.LastName
8. from Libs,S_Cards, T_Cards
9. where Libs.Id=T_Cards.Id_Lib and Libs.Id=S_Cards.Id_Lib
10.
11. end
12. --exec lbrman13.
8 Не понял задания…
Функции
1. Функцию, возвращающую кол-во студентов, которые не брали книги.
2. use library
3. go
4. create function stundentsNOT()
5. Returns table
6. as
7.
8. return (select s.firstname
9. from students as s,s_cards
where s.id!=S_cards.id_student)
2. Функцию, возвращающую минимальное из трех переданных параметров.
Функция :
use library
go
create function minimum(@first int, @second int,@three int)
returns int
as
begin
if(@first>@second and @first>@three)
return @first
if(@second>@first and @second>@first)
return @second
if(@three>@first and @three>@second)
return @three
return -1;
end
Вызов:
use library
go
select library.dbo.minimum(1,3,2)
3.
use library
go
create function maxi(@first int)
returns int
as
begin
if(@first%10)>(@first%100)return @first%10
if(@first%10)<(@first%100)return @first%100
return -1;
--return -1;
end
Вызов
use library
go
select library.dbo.minimum(56)