-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSQLQuery_2.sql
232 lines (177 loc) · 5.47 KB
/
SQLQuery_2.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
CREATE DATABASE Db_Kutuphane;
USE Db_Kutuphane;
CREATE TABLE Kullanici(
kullanici_id INT PRIMARY KEY IDENTITY(1,1),
ad NVARCHAR(20),
soyad NVARCHAR(20),
yas int,
tc CHAR(11),
tel CHAR(11),
adres NVARCHAR(30)
);
CREATE TABLE Kitap_tur(
tur_id int PRIMARY KEY IDENTITY(1,1),
tur NVARCHAR(15)
);
CREATE TABLE kitaplar(
kitap_id int PRIMARY KEY IDENTITY(1,1),
ad NVARCHAR(20),
tur_id int FOREIGN KEY REFERENCES Kitap_tur(tur_id)
);
CREATE TABLE Kutuphane(
emanet_id INT PRIMARY KEY IDENTITY(1,1),
kullanici_id INT FOREIGN KEY REFERENCES Kullanici(kullanici_id),
kitap_id INT FOREIGN KEY REFERENCES kitaplar(kitap_id),
alis_tarih datetime DEFAULT CURRENT_TIMESTAMP,
iade_tarih datetime
);
INSERT INTO Kitap_tur VALUES ('Korku'),
('Gerilim'),
('Aksiyon'),
('Romantik'),
('Dini'),
('Tarihi'),
('Savaş')
select * from Kitap_tur;
INSERT INTO kitaplar VALUES('alice harikalar', 7),
('Suç ve ceza', 3),
('Çanakkale savaşı', 6),
('Hz Muhammed',5),
('Hz Isa',5),
('Evlilik',4),
('Istanbulun Fethi',6);
select * from kitaplar;
INSERT INTO Kullanici VALUES('Ahmet Furkan', 'DEMIR', 20, '22222222222', '0536547802', 'Konya'),
('Misirli', 'Omar', 25, '11111111111', '0539517312', 'Misir'),
('Said', 'topcu', 30, '11411811984', '0838717312', 'Izmir'),
('Merve', 'Kalemogillari', 40, '97411811844', '0138712411', 'Istanbul')
SELECT * FROM Kullanici;
SELECT * FROM kitaplar;
INSERT INTO Kutuphane(kullanici_id, kitap_id) VALUES(1, 3),
(2,4),
(3,5),
(4,5),
(1,6),
(1,7),
(4,4),
(2,3),
(3,5)
SELECT * FROM Kutuphane;
DECLARE @iade DATETIME
set @iade = CURRENT_TIMESTAMP;
SELECT @iade
UPDATE Kutuphane set iade_tarih=@iade WHERE emanet_id=7;
-- kutuphane bilgileri
SELECT Kullanici.ad, Kullanici.soyad, Kullanici.tel, kitaplar.ad, Kitap_tur.tur, Kutuphane.alis_tarih, Kutuphane.iade_tarih
FROM Kutuphane
INNER JOIN Kullanici ON Kutuphane.kullanici_id=Kullanici.kullanici_id
INNER JOIN kitaplar ON Kutuphane.kitap_id=kitaplar.kitap_id
INNER JOIN Kitap_tur ON kitaplar.tur_id=Kitap_tur.tur_id
SELECT Kullanici.kullanici_id, Kullanici.ad, Kullanici.soyad
from Kutuphane
INNER JOIN Kullanici ON kutuphane.kullanici_id=Kullanici.kullanici_id;
SELECT Kullanici.ad, Kullanici.soyad, kitaplar.ad, Kitap_tur.tur
from Kutuphane
INNER JOIN Kullanici on Kutuphane.kullanici_id=Kullanici.kullanici_id
INNER JOIN kitaplar on Kutuphane.kitap_id=kitaplar.kitap_id
INNER JOIN Kitap_tur on kitaplar.tur_id=Kitap_tur.tur_id
-- YAS ORTALAMSI
SELECT AVG(Kullanici.yas)
FROM Kutuphane
INNER JOIN Kullanici on Kutuphane.kullanici_id=Kullanici.kullanici_id;
-- En yuksek yas 1. yontem
select TOP(1) Kullanici.yas
FROM Kutuphane
INNER JOIN Kullanici on Kutuphane.kullanici_id=Kullanici.kullanici_id
ORDER BY Kullanici.yas desc;
-- En yuksek yas 2. yontem
Declare @maxYas Int;
set @maxYas= (Select max(Kullanici.yas)
FROM Kutuphane
INNER JOIN Kullanici ON Kutuphane.kullanici_id=Kullanici.kullanici_id);
Select Kullanici.ad, Kullanici.soyad, Kullanici.yas
FROM Kutuphane
INNER JOIN Kullanici ON Kutuphane.kullanici_id=Kullanici.kullanici_id
where Kullanici.yas=@maxYas;
-- view
CREATE VIEW [QueryKullanici] AS select Kullanici.ad, Kullanici.soyad, Kullanici.yas
from Kutuphane
INNER JOIN Kullanici ON Kutuphane.kullanici_id=Kullanici.kullanici_id;
select * from QueryKullanici;
-- inner join group by
Select Kullanici.ad, count(Kullanici.kullanici_id) [Kitap alma sayisi]
From Kutuphane
INNER JOIN Kullanici ON Kutuphane.kullanici_id=Kullanici.kullanici_id
GROUP BY Kullanici.kullanici_id, Kullanici.ad;
-- inner join ve where
-- ortalama yastan buyuk olan kullanicilar
DECLARE @avgYas int;
set @avgYas = (select avg(Kullanici.yas)
from Kutuphane
INNER JOIN Kullanici ON Kutuphane.kullanici_id=Kullanici.kullanici_id)
SELECT Kullanici.ad, Kullanici.soyad, Kullanici.yas
FROM Kutuphane
INNER JOIN Kullanici ON Kutuphane.kullanici_id=Kullanici.kullanici_id
WHERE Kullanici.yas>@avgYas
-- PROCEDURE, fonksiyon, tekrari onlemek icin
CREATE PROCEDURE upSelectAll
AS
BEGIN
SELECT * from Kutuphane;
END
-- cagirilma yontemleri
upSelectAll;
exec upSelectAll;
-- parametre alması
CREATE PROCEDURE upSelectYas
@yas int
AS
BEGIN
SELECT Kullanici.ad, Kullanici.soyad, Kullanici.yas, kitaplar.ad, Kitap_tur.tur
FROM Kutuphane
INNER JOIN Kullanici on Kutuphane.kullanici_id=Kullanici.kullanici_id
INNER JOIN kitaplar on Kutuphane.kitap_id=kitaplar.kitap_id
INNER JOIN Kitap_tur on kitaplar.tur_id=Kitap_tur.tur_id
WHERE Kullanici.yas >=@yas;
END
-- PROCEDURE tekrar duzenleme
ALTER PROCEDURE upSelectYas
@yas int
AS
BEGIN
SELECT Kullanici.ad, Kullanici.soyad, Kullanici.yas, kitaplar.ad, Kitap_tur.tur
FROM Kutuphane
INNER JOIN Kullanici on Kutuphane.kullanici_id=Kullanici.kullanici_id
INNER JOIN kitaplar on Kutuphane.kitap_id=kitaplar.kitap_id
INNER JOIN Kitap_tur on kitaplar.tur_id=Kitap_tur.tur_id
WHERE Kullanici.yas >@yas;
END
upSelectYas 25;
exec upSelectYas 25;
-- PROCEDURE kaynak kodlari
sp_helptext upSelectYas;
-- procedure siler
drop procedure upSelectYas;
-- procedure kodunu şifreler
ALTER PROCEDURE upSelectAll
WITH encryption
AS
BEGIN
SELECT * from Kutuphane;
END
-- kod sifreli oldugu icin hata verir
-- sp_helptext upSelectYas;
-- PROCEDURE return
CREATE PROCEDURE upAVGyas
@yasIf INT,
@avgYas INT OUTPUT
AS
BEGIN
SET @avgYas=(Select avg(Kullanici.yas)
FROM Kutuphane
INNER JOIN Kullanici ON Kutuphane.kullanici_id=Kullanici.kullanici_id
WHERE Kullanici.yas>@yasIf);
END
declare @avgYas int;
exec upAVGyas 0, @avgYas OUTPUT;
print @avgYas