-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDay_07.sql
More file actions
235 lines (146 loc) · 7.59 KB
/
Day_07.sql
File metadata and controls
235 lines (146 loc) · 7.59 KB
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
CREATE TABLE personel
(
id int PRIMARY KEY,
isim VARCHAR(50),
sehir VARCHAR(50),
maas int,
sirket VARCHAR(20)
);
INSERT INTO personel VALUES(123456789, ‘Ali Yilmaz’, ‘Istanbul’, 5500, ‘Honda’);
INSERT INTO personel VALUES(234567890, ‘Veli Sahin’, ‘Istanbul’, 4500, ‘Toyota’);
INSERT INTO personel VALUES(345678901, ‘Mehmet Ozturk’, ‘Ankara’, 3500, ‘Honda’);
INSERT INTO personel VALUES(345678902, ‘Mehmet Ozturk’, ‘Istanbul’, 3500, ‘Honda’);
INSERT INTO personel VALUES(456789012, ‘Mehmet Ozturk’, ‘Izmir’, 6000, ‘Ford’);
INSERT INTO personel VALUES(567890123, ‘Mehmet Ozturk’, ‘Ankara’, 7000, ‘Tofas’);
INSERT INTO personel VALUES(453445611, ‘Veli Sahin’, ‘Ankara’, 4500, ‘Ford’);
INSERT INTO personel VALUES(123456710, ‘Hatice Sahin’,‘Bursa’, 4200, ‘Honda’);
/* -----------------------------------------------------------------------------
SORU3: maas’ı 5000’den az olan personelin isim, maas ve sirket bilgileri ile,
-- ‘Honda’ calisani olmayan personelin isim, maas, sirket bilgilerini
-- tekrarsız listeleyen bir sorgu yaziniz.
------------------------------------------------------------------------------*/
select isim,maas,sirket from personel where maas<5000
union
select isim,maas,sirket from personel where sirket!=‘Honda’;
/* -----------------------------------------------------------------------------
SORU4: isim’i ‘Mehmet Ozturk’ olanlarin isim’lerini, sehir’lerini ve
-- sehir’i ‘Istanbul’ olmayanların isim’lerini sehir’lerini tekrarsız listeleyen sorguyu yaziniz.
------------------------------------------------------------------------------*/
select isim,sehir from personel where isim=‘Mehmet Ozturk’
union
select isim,sehir from personel where sehir!=‘Istanbul’;
CREATE TABLE personel_bilgi
(
id int,
tel char(10) UNIQUE ,
cocuk_sayisi int
);
INSERT INTO personel_bilgi VALUES(123, ‘5302345678’, 5);
INSERT INTO personel_bilgi VALUES(234, ‘5422345678’, 4);
INSERT INTO personel_bilgi VALUES(345, ‘5354561245’, 3);
INSERT INTO personel_bilgi VALUES(478, ‘5411452659’, 3);
INSERT INTO personel_bilgi VALUES(789, ‘5551253698’, 2);
INSERT INTO personel_bilgi VALUES(344, ‘5524578574’, 2);
INSERT INTO personel_bilgi VALUES(125, ‘5537488585’, 1);
select * from personel_bilgi;
/* -----------------------------------------------------------------------------
SORU5: id’si 123456789 olan personelin, personel tablosundan sehir ve maas’ini,
--personel_bilgi tablosundan da id’si 123 olan, personelin tel ve cocuk sayisini tekrarsız yazdirin
------------------------------------------------------------------------------*/
select sehir as sehir_tel,maas as maas_cocuksayisi from personel where id= 123456789
union
select tel,cocuk_sayisi from personel_bilgi where id=123;
/*========================================= LIKE ================================================
LIKE ==> Gibi anlamına gelir.
Örnek:
-----
'A' ile baslayan verileri listele
'n' ile biten verileri listele
ikinci harfi 'e' olan verileri listele
örneklerindeki işlemler için LIKE komutu kullanılır.
LIKE, sorgulama yaparken belirli pattern'leri kullanmamıza olanak verir.
Pattern:
-------
% ==> Sıfır veya daha fazla karakteri belirtir.
_ ==> Tek bir karakteri belirtir.
Syntax:
------
SELECT * FROM tablo_adi
WHERE sutun_adi like PATTERN
====================================================================================================*/p
CREATE TABLE musteriler
(
id int UNIQUE,
isim varchar(50) NOT NULL,
maas int
);
INSERT INTO musteriler (id, isim, maas) VALUES (1001, 'Ali', 100000);
INSERT INTO musteriler (id, isim, maas) VALUES (1002, 'Ayse', 57500);
INSERT INTO musteriler (id, isim, maas) VALUES (1003, 'Feride', 71000);
INSERT INTO musteriler (id, isim, maas) VALUES (1004, 'Fatma', 42000);
INSERT INTO musteriler (id, isim, maas) VALUES (1005, 'Kasim', 44000);
INSERT INTO musteriler (id, isim, maas) VALUES (1006, 'ahmet', 82000);
--SORU1: isim'i 'A' harfi ile baslayan musterilerin tum bilgilerini listeleyiniz
select * from musteriler where isim like 'A%';
--SORU2: isim'i 'a' harfi ile baslayan musterilerin tum bilgilerini listeleyiniz
select * from musteriler where isim like 'a%';
--SORU3: isim'i buyuk harf kucuk harf gözetmeksizin 'A' ile baslayan tum bilgileri listeleyiniz
select * from musteriler where isim ilike 'A%' ; -- ilike buyuk harf kucuk harf gozetmeksizin
--SORU4: isim'i 'e' harfi ile biten tum bilgileri listeleyiniz
select * from musteriler where isim like '%e';
--SORU5: isim'i icerisinde 'er' olan tum bilgileri listeleyiniz.
select*from musteriler where isim like '%er%';
--SORU6: isim'i 5 harfli olup son 4 harfi 'atma' olan tum bilgileri listeleyiniz.
select * from musteriler where isim like '_atma';
--SORU7: isim'in 2. harfi 'a' olan tum bilgileri listeleyiniz.
select * from musteriler where isim like '_a%';
--SORU8: isim'in 3. harfi 's' olan tum bilgileri listeleyiniz.
select * from musteriler where isim like '__s%';
--SORU9: isim'in 3. harfi 's' olup 4 harfli tum bilgileri listeleyiniz.
select *from musteriler where isim like '__s_';
--SORU10: isim'in ilk harfi 'F' olup en az 4 harfli tum bilgileri listeleyiniz.
select *from musteriler where isim like 'F___%';
--SORU11: isim'in ikinci harfi 'a' olup, 4.harfi 'm' olan en az 4 harfli tum bilgilerini listeleyiniz.
select * from musteriler where isim like '_a_m%';
--SORU12: isim'i icerisinde 'i' olmayan tum bilgileri listeleyiniz.
select * from musteriler where isim not like '%i%';
/* ================================== REGEXP_LIKE ==========================================
REGEXP_LIKE: Gibi anlamına gelir. Daha karmaşık sorgulama işlemi için kullanılabilir.
~ isareti ile ifade edilir.
Syntax:
--------
SELECT * FROM tablo_adi
WHERE sutun_adi ~ PATTERN
========================================================================================= */
create table exercises
(
id int UNIQUE,
kelime varchar(50) NOT NULL,
harf_sayisi int
);
INSERT INTO exercises VALUES (1001, 'hot', 3);
INSERT INTO exercises VALUES (1002, 'hat', 3);
INSERT INTO exercises VALUES (1003, 'hit', 3);
INSERT INTO exercises VALUES (1004, 'hbt', 3);
INSERT INTO exercises VALUES (1008, 'hct', 3);
INSERT INTO exercises VALUES (1005, 'adem', 4);
INSERT INTO exercises VALUES (1006, 'selim', 5);
INSERT INTO exercises VALUES (1007, 'yusuf', 5);
INSERT INTO exercises VALUES (1009, 'hAt', 3);
-- SORU1 : ilk harfi 'h', son harfi 't' olup, 2. harfi 'a' veya 'i' olan 3 harfli kelimelerin tum bilgilerini listeleyiniz.
select * from exercises where kelime ~'h[ai]t';
-- SORU2 : ilk harfi 'h', son harfi 't' olup, 2. harfi 'a' veya 'i' olan 3 harfli kelimeleri
--buyuk harf kucuk harf gözetmeksizin tum bilgilerini listeleyiniz.
select * from exercises where kelime ~* 'h[ai]t';
--NOT: buyuk harf kucuk harf gozetmeksizin listelemek istersek ~* kullaniriz
-- SORU3 : ilk harfi 'h', son harfi 't' olup, 2.harfi 'a' ile 'k' arasinda olan 3 harfli kelimelerin tum bilgilerini listeleyiniz
select from exercises where kelime ~ 'h[a-k]t';
-- SORU4 : ilk harfi 'a' veya 's' ile baslayan kelimelerin tum bilgilerini listeleyiniz
select * from exercises where kelime ~ '^[as]';
--NOT: ^ isareti baslayan anlaminda kullanilir
-- SORU5 : son harfi 'm' veya 'f' ile biten kelimelerin tum bilgilerini listeleyiniz
select * from exercises where kelime ~ '[mf]$';
--NOT: $ isareti biten anlaminda kullanilir
-- SORU6 : son harfi 'm' veya 'f' ile bitmeyen kelimelerin tum bilgilerini listeleyiniz.
select * from exercises where kelime !~ '[mf]$';
select * from exercises;