prestige

12

May 17th, 2012
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.48 KB | None | 0 0
  1. use master
  2. go
  3. if exists(select * from sys.databases where name ='mybase4')
  4.     drop database mybase3
  5. go
  6. create database mybase4
  7. go
  8. use mybase4
  9. go
  10. if OBJECT_ID('dbo.f1','function') is not null
  11.     drop function dbo.f1
  12. go
  13. create function dbo.f1(@chislo real)
  14. returns bit
  15. as
  16.   begin
  17.     declare @f bit='false'
  18.     declare @s nvarchar(10)
  19.     set @s=Convert(nvarchar(10),@chislo)
  20.     if(@s like'%.%')
  21.     begin
  22.         if SUBSTRING(@s,1,2) between '00' and '23'
  23.             set @f='true'
  24.         else if SUBSTRING(@s,4,2) between '00' and '59'
  25.             set @f='true'
  26.         else if(@s like '[1-2][0-3].[0-5][0-9]' or @s like '[0-9].[0-5][0-9]')
  27.             set @f='true'
  28.     end
  29.     else
  30.       begin
  31.         if SUBSTRING(@s,1,2) between '00' and '23'
  32.             set @f='true'
  33.       end
  34.     return @f
  35.   end
  36. go
  37. if OBJECT_ID('dbo.f2','function') is not null
  38.     drop function dbo.f2
  39. go
  40. create function dbo.f2(@kod int,@beg real,@end real)
  41. returns bit
  42. as
  43.   begin
  44.     declare @time int
  45.     select @time=dist from Encrip_film where Encrip_film.id=@kod
  46.     declare @f bit='false'
  47.     declare @s nvarchar(10)
  48.     declare @a int=floor(@beg)+floor(@end)+(@beg-floor(@beg))*100+(@end-floor(@end)*100)
  49.     if(@time<=@a)
  50.         set @f='true'
  51.     return @f
  52.   end
  53. go
  54. create table Encrip_ganr
  55. (
  56.  id int identity(1,1) PRimary key not null,
  57.  name_ganr nvarchar(20)
  58. )
  59. create table Encrip_film
  60. (
  61.  id int identity(1,1) PRimary key not null,
  62.  name_film nvarchar(20) not null,
  63.  dist int,
  64.  kod_ganr int not null,
  65.  anotaciya nvarchar(20),
  66.  foreign key (kod_ganr) references Encrip_ganr(id)
  67. )
  68. create table Encrip_chanel
  69. (
  70.  id int identity(1,1) PRimary key not null,
  71.  name_film nvarchar(20)
  72. )
  73. go
  74. create table Main
  75. (
  76.  id int identity(1,1) PRimary key not null,
  77.  kod_film int not Null,
  78.  kod_chanel int not null,
  79.  time_begin real, --check(dbo.f1(time_begin)='true'),
  80.  time_end real, --check(dbo.f1(time_end)='true'),
  81.  foreign key (kod_film) references Encrip_film(id),
  82.  foreign key (kod_chanel) references Encrip_chanel(id))
  83.  
  84.  
  85.  --check (dbo.f2(Kod_film,time_begin,time_end)='true')
  86.  
  87. go
  88.     insert into Encrip_chanel values('1+1')
  89.     insert into Encrip_chanel values('тет')
  90.     insert into Encrip_chanel values('интер')
  91.    
  92.     insert into Encrip_ganr values('жахи')
  93.     insert into Encrip_ganr values('триллер')
  94.     insert into Encrip_ganr values('боевик')
  95.    
  96.     insert into Encrip_film values('матрица',180,1,'что-то')
  97.     insert into Encrip_film values('мирный воин',160,2,'что-то')
  98.     insert into Encrip_film values('терминатор',130,1,'что-то')
  99.     select * from Encrip_film
  100.     select * from Encrip_ganr
  101.     select * from Encrip_chanel
  102.     go
  103.     insert into Main (kod_film,kod_chanel,time_begin,time_end) values(1,1,20.01,23.01)
  104.     insert into Main (kod_film,kod_chanel,time_begin,time_end) values(2,2,2,20.01,23.01)
  105.     insert into Main (kod_film,kod_chanel,time_begin,time_end) values(3,3,3,20.01,23.01)
  106. go
  107. select * from Main
  108. go
  109. --select count(*) from Main group by kod_chanel having COUNT(*)<2
  110. --go
  111. --select Encrip_film.name_film,Encrip_film.anotaciya from Main inner join Encrip_film on Main.kod_film=Encrip_film.id
  112. --inner join Encrip_ganr on Encrip_film.kod_ganr=Encrip_ganr.id
  113. --inner join Encrip_chanel on Encrip_chanel.id=Main.kod_chanel where time_begin>=20.00
  114. --go
  115. --select avg(Encrip_film.dist) from Main inner join Encrip_film on Main.kod_film=Encrip_film.id
  116. --inner join Encrip_ganr on Encrip_film.kod_ganr=Encrip_ganr.id
  117. --inner join Encrip_chanel on Encrip_chanel.id=Main.kod_chanel where Encrip_ganr.name_ganr='жахи' group by Encrip_film.id
  118. --go
Advertisement
Add Comment
Please, Sign In to add comment