· 8 years ago · Dec 25, 2017, 05:20 PM
1//--------------1. Создание таблиц---------------//
2
3create table ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ (
4 ID_Компании INT primary key identity(1,1),
5 Ðазвание NVARCHAR(60)
6 );
7
8create table Груз (
9 ID_Груза INT primary key identity(1,1),
10 Тип_Груза NVARCHAR(60),
11 Ð’ÐµÑ INT,
12 Откуда NVARCHAR(60),
13 Куда NVARCHAR(60),
14 Дата_ПоÑÑ‚ÑƒÐ¿Ð»ÐµÐ½Ð¸Ñ DATE,
15 ДоÑтавить_До DATE
16 );
17
18create table ÐÑропорт (
19 ID_ÐÑропорта INT primary key identity(1,1),
20 Ðазвание NVARCHAR(60),
21 МеÑтоположение NVARCHAR(60),
22 Груз_ID INT,
23 foreign key (Груз_ID) references Груз(ID_Груза)
24 );
25
26create table Самолёт (
27 ID_Самолёта INT primary key identity(1,1),
28 Ðазвание NVARCHAR(60),
29 ВмеÑтимоÑть INT,
30 ДальноÑть_Полёта INT,
31 КомпаниÑ_ID INT,
32 foreign key (КомпаниÑ_ID) references КомпаниÑ(ID_Компании),
33 Груз_ID INT,
34 foreign key (Груз_ID) references Груз(ID_Груза),
35 ÐÑропорт_ID INT,
36 foreign key (ÐÑропорт_ID) references ÐÑропорт(ID_ÐÑропорта)
37 );
38
39//-------------2. Изменение таблиц------------//
40
41alter table ÐÑропорт add Самолёт_ID INT;
42
43alter table ÐÑропорт drop column Самолёт_ID;
44
45
46//-------------3. Удаление таблиц------------//
47
48create table Example (
49 ID_Something INT primary key identity(1,1),
50 Person NVARCHAR,
51 Age INT
52 )
53
54drop table Example;
55
56
57//------------4. Заполнение таблиц------------//
58
59insert into ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ values
60('Сёма и КО'),
61('ЖиЖа Брыжа'),
62('Кока-кола'),
63('ЛÑмбда'),
64('Дельта');
65
66insert into Груз values
67('Еда', 130, 'РоÑÑиÑ', 'СШÐ', '2014-04-18', '2014-08-23'),
68('Вещи', 50, 'РоÑÑиÑ', 'Китай', '2014-06-11', '2014-10-07'),
69('ИнÑтрументы', 180, 'РоÑÑиÑ', 'ГерманиÑ', '2014-08-03', '2014-11-16'),
70('Вода', 300, 'РоÑÑиÑ', 'Египет', '2014-10-24', '2014-12-31');
71
72insert into ÐÑропорт values
73('Домодедово', 'РоÑÑиÑ', 1),
74('Внуково', 'РоÑÑиÑ', 2),
75('Толмачёво', 'РоÑÑиÑ', 3),
76('Пулково', 'РоÑÑиÑ', 4);
77
78insert into Самолёт values
79('Ту-136', 360, 3200, 1, 1, 1),
80('Ðн-40', 420, 3950, 2, 2, 2),
81('Boeing 747 LCF Dreamlifter', 580, 4500, 3, 3, 3),
82('Ту-330', 280, 3400, 1, 4, 1);
83
84
85//-----------5. ПроÑтой Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð±ÐµÐ· уÑловий----------//
86
87select *
88from КомпаниÑ;
89
90select *
91from ÐÑропорт;
92
93select *
94from Груз;
95
96select *
97from Самолёт;
98
99
100//----------6. Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° изменение данных----------//
101
102update Самолёт
103set ДальноÑть_Полёта = ДальноÑть_Полёта + 10
104where ДальноÑть_Полёта > 4000;
105
106
107//----------7. Выборка (Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ Ð¾Ð´Ð½Ð¸Ð¼ уÑловием)---------//
108
109select *
110from Самолёт
111where ВмеÑтимоÑть > 400;
112
113
114//---------8. Создание индекÑа Ð´Ð»Ñ Ð´Ð²ÑƒÑ… таблиц---------//
115
116create index capacity_index
117on Самолёт(ВмеÑтимоÑть);
118
119
120//---------9. Создание предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ ÑƒÑловием---------//
121
122create view long_fly
123as select *
124from Самолёт
125where ДальноÑть_Полёта > 4000;
126
127select *
128from long_fly;
129
130
131//---------10. Создание итогового запроÑа-----------//
132
133select count(*) as 'Кол-во Ñамолётов', sum(ДальноÑть_Полёта) as 'Общее раÑÑтоÑние'
134from Самолёт;
135
136
137//---------11. ИÑпользование exist и not exist----------//
138
139select *
140from груз
141where Куда = 'СШÐ' AND
142 exists (select *
143 from груз
144 where Куда = 'Китай');
145
146select *
147from Груз
148where Куда = 'ГерманиÑ' AND
149 not exists (select *
150 from Груз
151 where Ð’ÐµÑ < 0);
152
153
154//---------12. Создание и вызов функции-----------//
155
156CREATE FUNCTION Upgrade_Of_Plane (@Countz INT) returns INT
157BEGIN
158
159 return (SELECT ДальноÑть_Полёта FROM Самолёт) + @Countz;
160
161END;
162
163
164dbo.Upgrade_Of_Plane(300);
165
166
167//---------13. Оператор REPEAT (которого, вроде, нет...)----------//
168
169CREATE FUNCTION repeat_until() RETURNS INT
170AS
171BEGIN
172 DECLARE @i INT
173 SET @i = 0
174 REPEAT:
175 SET @i= @i + 1
176 IF @i < 10
177 GOTO REPEAT
178 RETURN (@i)
179END;