25 Aralık 2017 Pazartesi

Sqlite İndex Kullanımı


istedigimiz sütuna göre indexli sekilde yeni bir tabloda kaydedip daha kolay ulasmamızı saglar .

syntax : create index  index_name on table_name(column_Name)


örn :

create index new.id on Company(ID); 




mevcut indexlemeleri görmek için :


select * from sqlite_master where type = 'index'




Share:

24 Aralık 2017 Pazar

Sqlite Trigger Kullanımı

Trigger: Tetikleyiciler herhangi bir database olayın olması durumunda tetiklenmesi saglanabilir update,insert,delete vs gibi olaylar meydana geldiginde tetiklenip bir iş yaptırılabilir.örnegin : databaseden bir bilgi silinidiginde log alıp saat kacta kim tarafından yapıldıgının bilgisini almak gibi .


//Log almak icin bir tablo olusturyoruz 


create table audit( emp_id not null, entry_date text not null );



// Bir tetikleyici olusturuyoruz Company tablosuna insert olayı olursa audit tablosuna id ve o anın tarihini yazıyoruz

create trigger audit_log after insert on Company 
begin 
 insert into audit(emp_id,entry_date)values (new.ID,datetime('now'));
 end;



artık Company tablosuna yapılan her insert işleminde audit tablosuna kayıt alacaktır 

örnegin : 
insert into Company (ID,NAME,AGE) values(100,"ayse",29);




BİLGİ : 
TABLOMUZ BULUNAN TRIGGERLARI LİSTELEME 

select name from sqlite_master where type = "trigger"


Trigger silme :


DROP TRIGGER trigger_name;

Share:

SQLİTE ALİAS KULLANIMI

Sqlite tabloları sorgu çekerken uzun tablo adları yerine kısa adlandırmalar kullanabiliriz bu adlandırmaya ALİAS demekteyiz . 

örneğin : iki tablomuz var COMPANY ve DEPARTMENT adında . Company tablosunu c , Department tablosunu ise artık D olarak cagırabiliriz 

select c.NAME as com_name from Company as c , DEPARTMENT as d where c.ID=d.ID    


Adları ekrana com_name olarak yazdırıyoruz .





Share:

21 Aralık 2017 Perşembe

Sqlite Join Kullanımı

Cross Join : ikinci tablodan alınan degerle ilk tablodaki her degeri tek tek eşlestirir 

örnek : 

depot  için :   


id   name
1    ali
2   ahmet 

3  veli

department icn :

age
15
20 


query : select id,name ,age from depot join department 

Çıktı :

id name  age
1   ali      15

1   ali     20
2  ahmet   15
2  ahmet  20
3 veli    15 
3 veli    20 

INNER JOIN : iki tabloyu birlestirir sonucu verir 

select id,name , age  from depot  inner join depot on depot.id = depot.id=department.id;


Çıktı :

id name age
1  ali   15

2  ahmet 20


Share:

Sqlite Constrains (Kısıtlamalar )

Constrains :  Tablo(table )  veya kolon(column)  seviyesinde uygulanablir. Tablo seviyesinde kısıtlama tüm tabloya uygulanırken ,kolon seviyesindeki kısıtlama ise sadece bir kolona uygulanır. 5 çeşit kısıtlama vardır .

1) NOT NULL
2)DEFAULT
3)UNIQUE
4)PRIMARY KEY
5)CHECK 


ÖRNEK : 

create table depot(
depo_id pirmary key not null,
depo_name  text  default yazilim,
depot_age int not null unique,
depot_ciro real check(depot_ciro>200)
);
Açıklam : depo_id null olamaz ,  depo_name default olarak yazilim  , depot_age unique olmak ve depot_ciro 200 den büyük olmalı yoksa degerlerin kaydedilemedigi tablonun "yerdegistrime hatası " verdiği gözlenir 


Share:

20 Aralık 2017 Çarşamba

Sqliteta "LIKE " , "IN" , EXISTS , COUNT , UPDATE , DELETE , LİMİT , OFFSET , ORDER BY, GROUP BY ve DISTINCT Kullanımı

select * from Company where  NAME like "g%"



/ /  Company Tablosundan NAME sutununda 'g' harfi ile baslayan satırları getirmemizi saglar 


select * from Company where  ADRESSS like  'G_'


// Company tablosunda G ile baslayıp sadece bir karakter iceren kayıtları içerir örnegin :   ADRESSS= "Gq" gibi 

Örn:  WHERE SALARY LIKE '_2%3'    => salary ikinci degeri 2 ve 3 ile biten sorgu olusturur 


select * from Company where  ID IN(2,4)

// Company tablosundan ID si 2,4 arasındaki satırları yazar


select NAME,AGE from Company where  exists(select ID from Company where ID>4)

// Company tablosunda ID 4 ten büyük varsa . Company tablosundan NAME,AGE degerlerini yazdır 

select count(*) as "ID" from Company

// Company tablosunda ID olarak kac tane oldugunu sayar ve sayıyı verir

update Company set ADRESSS = "Ankara" where ID=2


// Company Tablosunda ID si 2 olan satırların ADRESSS degerini ANKARA olarak degistiriyor


delete from Company where ID=10

// Company tablosundan ID si 10 olan tabloyu silme 


select * from Company limit 3 offset 4

// Company tablosundan 4.sıradan maximum 3 kaydı getirmeyi saglar limit sınırı belirtir 


select * from Company  order by  SALARY  asc

// SALARY göre kücükten büyüge sıralar .. büyükten küçüge DESC kullanılır 


select ADRESSS, SUM(SALARY) from Company  group by  ADRESSS order by SUM(SALARY)


// ADRESSS e göre gruplar ve SALARY toplar SUM(SALARY) e göre sıralar 



NOT : group by , having by , order by sıralaması 


SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2


select distinct ADRESSS from Company 


// ADRESSS degerlerini sıralarken aynı degerde tekrarlama varsa yazmaz sadece bir kez yazdırır 

Share:

Sqlite ile farklı tablodan bilgi ekleme



insert into Company   (ID,NAME) select ID,DEPT from DEPARTMENT where ID > 1

 / / Department tablosundan ID si 1 den büyük olan ID,DEPT degerlerini alır sıra ile Company tablosunun ID,NAME kısmına ekler 




Share: