1. Veri Tanımlama Dili (DDL - Create, Alter, Drop)
Soru: ‘okul’ adında bir veritabanı oluşturan sorguyu yazınız.
Create Database okulSoru: ‘ogrenciler’ adında; id, isim, soyisim, doğum tarihi, telefon, email ve adres sütunlarından oluşan bir tablo oluşturun.
CREATE TABLE ogrenciler
(
ogrenci_id INT PRIMARY KEY,
isim VARCHAR(50) NOT NULL,
soyisim VARCHAR(50) NOT NULL,
dogum_tarihi DATE,
telefon VARCHAR(15),
email VARCHAR(100),
adres TEXT,
);Soru: ‘ogrenciler’ tablosuna ‘bolum’ adında, 50 karakterlik bir kolon ekleyin.
Alter Table ogrenciler
Add bolum varchar(50)Soru: ‘ogrenciler’ tablosundan ‘telefon’ kolonunu silin.
ALTER TABLE ogrenciler
DROP COLUMN telefon;Soru: ‘ogrenciler’ tablosundaki ‘telefon’ kolonunun veri tipini VARCHAR(50) olarak değiştirin.
ALTER TABLE ogrenciler
Alter Column telefon VARCHAR(50);Soru: ‘tbl_ogrenciler’ tablosundaki ‘dogum_tarihi’ kolonunun adını ‘dogum_gunu’ olarak değiştirin.
EXEC sp_rename 'tbl_ogrenciler.dogum_tarihi', 'dogum_gunu', 'COLUMN';Soru: ‘tbl_ogrenciler’ tablosunun ismini ‘ogrenciler’ olarak değiştirin.
EXEC sp_rename 'tbl_ogrenciler', 'ogrenciler'Soru: Oluşturulan bir veritabanını veya tabloyu silme komutları nelerdir?
DROP DATABASE veritabani_adi;
DROP TABLE tablo_adi;2. Veri Düzenleme Dili (DML - Insert, Update, Delete)
Soru: Personeller tablosuna (id, ad, soyad, tarih, tel, email) yeni bir kayıt ekleyin.
insert into Personeller
(Pers_id, pers_ad, pers_soyad, pers_dogumtarihi, pers_telefon, pers_email)
Values (1, 'aslı', 'aslan', '03.25.2000','05555553','aslıaslan@gmail.com')Soru: Personeller tablosundan adı ‘aslı’ olan kaydı silin.
Delete from Personeller where pers_ad='aslı'Soru: Adı ‘veli’ olan personelin adını ‘cancan’ olarak güncelleyin.
Update Personeller
Set pers_ad='cancan'
Where pers_ad='veli'Soru: Ürün fiyatı 1000 TL’nin altında olanların fiyatını 1500 TL yapın.
Update tbl_urunler
set urun_fiyat=1500
Where urun_fiyat<1000Soru: Ürün fiyatı 5000 olan ürünlerin fiyatını 500 TL artırın.
Update tbl_urunler
set urun_fiyat+=500
Where urun_fiyat=50003. Veri Sorgulama Dili (DQL - Select, Where, Like)
Soru: Müşteriler tablosundaki şehir verilerini tekrarsız listele.
Select distinct(Sehir) From Tbl_MusterilerSoru: İstanbul’da yaşayan müşterileri listeleyelim.
Select * From Tbl_musteriler
Where sehir='İstanbul'Soru: Ürün adı ‘B’ ile başlayan ürünleri listeleyelim.
Select * from tbl_urunler
Where urun_adi like 'b%'Soru: Ürün adı ‘n’ harfi ile biten ürünleri listeleyelim.
Select * from tbl_urunler
Where urun_adi like '%n'Soru: Adı içinde ‘a’ harfi geçmeyen ürünleri listeleyelim.
Select * from tbl_urunler
Where urun_adi not like '%a%'Soru: Adana, Bursa veya Ankara’daki müşterileri In komutuyla getirin.
Select * From Tbl_Musteriler
Where Sehir In ('Adana', 'Bursa', 'Ankara')4. Gruplandırma ve Sıralama (Group By, Having, Order By)
Soru: Şehirlere göre gruplandırma yapıp her şehirde kaç müşteri olduğunu bulalım.
Select sehir, count (*) AS 'Sayı' From Tbl_Musteriler
Group By SehirSoru: Ankara hariç diğer şehirleri gruplayan sorguyu yazalım.
Select sehir, Count(*) From Tbl_Musteriler
Group By Sehir Having Sehir!='ankara'Soru: Kitapları stok sayısına göre büyükten küçüğe sıralayalım.
Select * from Tbl_Kitaplar Order By Stok Desc5. Matematiksel ve Metinsel Fonksiyonlar
Soru: Ürünler tablosundaki toplam stok miktarını bulalım.
Select Sum(stok_miktari) As 'Toplam' from tbl_urunlerSoru: Ürünlerin ortalama stok sayısını hesaplayalım.
Select Avg(stok_miktari) From tbl_urunlerSoru: Ürün adlarını büyük harfe çevirerek listeleyelim.
Select Upper(urun_adi) from tbl_urunlerSoru: Personel isimlerini tersten yazdıran sorguyu yazınız.
Select reverse(ad) from tbl_personellerSoru: 81 sayısının karekökünü hesaplayan sorguyu yazınız.
Select Sqrt(81)6. Birleştirmeler (JOIN) ve Alt Sorgular
Soru: Personeller ve Departman tablolarını ortak ID üzerinden birleştirelim (Inner Join).
Select * from tbl_personeller
inner join tbl_departman
on tbl_personeller.departman_id=tbl_departman.departman_idSoru: Departmanı ‘İnsan Kaynakları’ olan personelleri Alt Sorgu kullanarak listeleyelim.
Select * from tbl_personeller
Where departman_id=(Select departman_id From tbl_departman
where Departman_adi='İnsan Kaynakları')7. T-SQL Yapıları (Değişkenler, IF-ELSE, WHILE)
Soru: Değişken tanımlayarak iki sayıyı toplayan T-SQL kodunu yazın.
Declare @sayi1 int, @sayi2 int, @sonuc int
Set @sayi1=16
Set @sayi2=57
Set @sonuc=@sayi1+@sayi2
Select @sonuc AS 'Toplam'Soru: Ürün sayısı 16’dan büyükse ‘Fazla’, değilse ‘Az’ yazdıran IF-ELSE yapısını kurun.
If (select count (*) from tbl_urunler)>16
Print 'Toplam Kayıt Sayısı 16 dan Fazla'
Else
Print 'Toplam Kayıt Sayısı 16 dan Az'Soru: 1’den 10’a kadar olan sayıları ekrana yazdıran WHILE döngüsünü yazın.
Declare @sayac int = 1
While (@sayac<=10)
Begin
Print @sayac
Set @sayac+=1
EndSoru: ‘SQL Öğreniyorum’ metnini harf harf alt alta yazdıran döngüyü yazın.
DECLARE @metin NVARCHAR(100) = 'SQL Öğreniyorum';
DECLARE @uzunluk INT = LEN(@metin);
DECLARE @i INT = 1;
WHILE (@i <= @uzunluk)
BEGIN
PRINT SUBSTRING(@metin, @i, 1);
SET @i += 1;
END;