-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSqlTemelSorgular.sql
140 lines (74 loc) · 5.05 KB
/
SqlTemelSorgular.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
create database ilkhafta; -- yeni bir veri tabanı oluşturuyoruz.
use ilkhafta; -- veritabanını kullanıyoruz.
create table ogrenci( -- veritabanımıza yeni bir tablo oluşturuyoruz.
ogrencino int not null, -- boş geçilemez şeklinde tanımladık.
adsoyad varchar(30),
telefon int,
sinif int,
bolum varchar(20)
);
create table personel( --yeni bir tablo oluşturuyoruz.
sicilno int not null, -- boş geçilemez
adsoyad varchar(40) not null, --boş geçilemez
telefon int,
departman varchar(20) not null,
maas int not null);
--------------- NOT NULL , UNIQUE -> eşsiz, PRIMARY KEY : unique + not null -> örneğin tc olabilir. hem eşsiz hem boş geçilemez. --------------------
-- ALTER : Tabloda değişiklik.
alter table ogrenci add ortalama int; -- ortalama adında int tipinde yeni bir değişken ekledik (sütun)
alter table ogrenci modify bolum varchar(40); -- hata veriyor ama hoca böyle yazmış. --> varchar(20)'den 40'a yükseltmek için kullanmıştık. Değişiklik için
alter table ogrenci drop column ortalama; -- ortalama sütununu sildik.
------- VERİ SİLME İÇİN DELETE, SÜTUN SİLMEK İÇİN DROP.
alter table ogrenci add CONSTRAINT pk_ogrenci PRIMARY KEY(ogrencino); -- Tabloya kısıtlama ekledik. primary key yani bu değerden tabloda sadece bir tane olabilir.
-- Kısıt kaldırma : DROP CONSTRAINT
------ Tabloya eleman ekleme ------
insert into ogrenci values(100, 'Hediye Orhan', 50761451, 3, 'Bilgisayar'); -- bu komut ile sıralı şekilde ekliyoruz.
insert into ogrenci(ogrencino, adsoyad, bolum, sinif) values(55, 'Elif ORHAN', 'Makine', 2); -- bu şekilde istediğimiz sırada ekleme yapabiliriz. Her sütunu girmeyeceksek de bunu kullanırız.
--- TABLO GÖRÜNTÜLEME
select * from ogrenci;
select ogrencino, adsoyad from ogrenci;
select * from ogrenci where sinif=3; -- selectin şartı -- where --
-- where ogrencino<110
-- where adsoyad like('%an') --> sonu an ile biten ('Ha%an') --> Ha ile başlayan an ile biten
-- where adsoyad<'Cano' --> sözlükte Cano ' dan önce gelenleri alıyor.
select distinct sinif from ogrenci; -- Sınıfları farklı olanları alıyor. Sadece sınıfları yazdırıyor.
select distinct bolum from ogrenci; -- Bölümleri farklı olanları alıyor. Sadece bölümleri yazdırıyor.
--- ŞART yapılarında and - or yapılarını kullanabiliriz
select * from ogrenci where sinif in (3,4); -- 3 ya da 4. sınıfa gidenleri alıyor.
-- Telefon numarası bulunan **null olmayan** öğrencilerin bölümleri
select bolum from ogrenci where telefon is not null;
select * from ogrenci where bolum='Bilgisayar' order by sinif; -- ORDER BY ile sıralı halde gelmesini istediğimiz sütunu yazıyoruz.
-- ORDER BY : Tabloyu sıralayarak getirir.
select * from ogrenci where bolum='Bilgisayar' order by adsoyad, ogrencino; --Aynı ad olanları kendi içinde de no'ya göre sıralar.
select * from ogrenci where bolum='Bilgisayar' order by adsoyad desc, ogrencino desc;
-- DESC : Artarak gidiyor. -- ASC : Azalan sıra, Azalarak sıralanıyor.
-- ************* DERS NOTLARI *************
-- varchar(30) : isim gibi değişkenlerde, char(11) : tc gibi değişkenlerde
alter table ogrenci add dtarihi varchar(10);
alter table ogrenci alter column dtarihi DATE; -- sütunun veri tipini değiştirdik . Kayıtlı sütun üzerinde değişiklik yaptık..
alter table ogrenci alter column adsoyad NVARCHAR(50); -- NVARCHAR'da unique desteği bulunmaktadır.
-------------------------------------------------------------------------
select * from ogrenci;
-- İki sorgu arasındaki fark tek tek yazıldığında daha hızlı çalışması. * şeklinde yazıldığında sorgu daha yavaş çalışır.
select ogrencino, adsoyad, telefon, sinif, bolum, dtarihi from ogrenci;
-------------------------------------------------------------------------
insert into ogrenci values(3, 'Veli KAYA', 0562346, 3, 'bilgisayar', '1999'),
(35, 'Ahmet AY', 054656, 2, 'elektrik', '1995');
insert into ogrenci values(785, 'Selin KAYA', 0578546, 3, 'mekatronik', '1999-05-15');
insert into ogrenci values(7875, 'Selim SERT', 0578546, 1, 'mekatronik', '2000-08-25');
-- otomatik id arttırma
create table dersler
(
id int primary key identity(1, 1), -- (kaç ile başlasın, kaçar artsın)
dersadi varchar(20));
-- GO GO KULLANIMI : Aynı sorguyu döngü şeklinde defalarca çalıştırmayı sağlar. İki GO olmak zorunda ve GO komutu satırda tek başına bulunmalı
GO
insert into dersler values('Matematik');
GO 5 -- bu döngü 5 defa dönüyor.
select * from dersler;
update dersler set dersadi = 'Türkçe'; -- Matematik şeklinde olan ders adlarını türkçe yaptık. update
delete top(2) from dersler; -- tablonun en üzerinde bulunan iki kaydı sil
delete from dersler; -- tablodaki tüm verileri siler. TABLO KALIYOR VERİLER SİLİNİYOR.
drop table dersler; -- Dersler tablosunu komple siliyor. Tabloyu sildik.
------ DELETE : Verileri siler, DROP : Tabloyu siler.
TRUNCATE table dersler; -- Varolan tablodaki tüm verileri siler komple. --> id 0'dan başlatıyor.