- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Giriş
Bu bölümde, önceki bölümlerde hazırladığımız Raspberry Pi cihazımızı kullanarak basit bir kullanımı olan veri tabanı yazılımı olan SQLite kurulumu ve örnek kullanımını göreceğiz. Videoda kullandığım Raspberry Pi cihazının kurulumu ve SSH bağlantısının nasıl yapıldığını görmek için önceki bölümü izlemeniz gerekmektedir.
Yaptığımız herhangi bir programlamada basit ve erişilebilir bir veri tabanı sistemi olan SQLite, az kaynak kullanımı, az yer kaplaması ve kolay yedeklenebilmesi ile öne çıkmaktadır.
Bu yazımın videosunu da izleyebilirsiniz.
Kurulum
Öncelikle daha önce de videolarımda kullandığım Windows işletim sistemi kullanan bilgisayarımdan SSH bağlantısı yapıyoruz. SSH bağlantısı için komut istemi kullanarak aşağıdaki komutumuzu yazıyoruz.
ssh pi@192.168.10.100veya aşağıdaki gibi de bağlanabiliriz.
ssh pi@kontaktorpiBurada “ssh” komutumuzla “pi” kullanıcı adı ile 192.168.10.100 adresindeki kontaktorpi cihazımıza bağlanıyoruz. Çıkan login kısmında bağandığımız cihazımızın şifresini yazıp enter tuşuna basıyoruz.
SSH ile bağlandığımız cihazımıza aşağıdaki komutu yazarak güncelleme listesini almasını sağlıyoruz.
sudo apt updateDaha sonra alınan güncelleme listelerinden eğer ihtiyaç olan güncelleme varsa yapması için aşağıdaki komutumuu yazıyoruz.
sudo apt upgradeArtık cihazımızın güncel olduğundan eminiz. SQLite kurulumu yapmak için aşağıdaki komutu yazıyoruz.
sudo apt install sqlite3Önceki komutumuzdan farklı olarak burada “install” ve “sqlite3” komut parçaları göze çarpmakta. “install” komut parçası ile “sqlite3” yazılımının kurulumunu “apt” uygulamasına bildiriyoruz. Çıkacak olan soruya, sistem diline bağlı olarak, Türkçe sistemlerde “E” veya İngilizce sistemlerde “Y” yazarak onay veriyoruz. İnternet hızımıza bağlı olarak değişen sürede kurulumumuzu tamamlıyoruz.
İlk veri tabanının oluşturulması
Artık SQLite uygulaması kurulduğuna göre bir veri tabanı oluşturup ilk tablomuzu ekleyebiliriz. SQLite uygulaması her veri tabanı için ayrı bir dosya oluşturduğundan dosyanın “home” klasörü içerisindeki “db” klasörünün içerisine oluşturmak istiyorum. Bunun için “home” klasörümüzde aşağıdaki komutu yazıyoruz.
mkdir dbDikkat edildiği üzere bu sefer sudo komutu kullanmadık. “home” klasöründeki login olduğumuz kullanıcı adının içerisinde yaptığımız işlemler için sudo yani admin yetkisine ihtiyacımız yok. Yazdığımız komutun sonucunda “db” klasörü oluşturulmuş gerekmektedir. Oluşturulduğunu kontrol etmek için aşağıdaki komutu yazarak ana klasörümüzdeki dosyaları görüntüleyebiliriz.
lsBu komut sonucu çıkan listede sadece “db” klasörümüzü görmekteyiz. Klasörler görüldüğü üzere mavi renkli olarak gösterilmektedir. Bu klasöre girmek için aşağıdaki komutu yazıyoruz.
cd db“cd” yani “change directory” ile bulunduğumuz klasörden, altındaki “db” klasörüne geçiş yapıyoruz. Başka bir yerden veya yine buradan da aşağıdaki gibi bir komutla da geçebiliriz.
cd /home/pi/dbYukarıdaki komutu yazarken “home” veya “pi” kısımlarında, örneğin “h” yazıp klavyemizdeki “tab” tuşuna basarsak gerisini sistem tamamlayacaktır.
Dosyamızı oluşturacağımız klasöre geldiğimize göre dosyamızı “veri.db” olarak oluşturmaya karar verdim. Bu dosyayı oluşturmak ve SQLite terminaline geçmek için aşağıdaki komutu yazıyoruz ve SQLite terminaline geçiyoruz.
sqlite3 veri.dbİlk tablo oluşturulması
SQLite terminali biraz daha farklı bir yapıya sahip olmasına rağmen temel ve evrensel SQL komutlarını çalıştırmaktadır. Aşağıdaki komut dizisini ister tek tek yazarak, istersek kopyala yapıştır ile terminalimize yazıyoruz. Kopyala yapıştır için normal olarak sağ tuşla tıklayarak kopyalayı seçebiliriz veya “ctrl+c” yapabiliriz. Ancak yapıştırma için terminalimize sağ tuşla tıklamamız yeterli olacaktır.
CREATE TABLE havaDurumu (
id INTEGER PRIMARY KEY,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
sicaklik REAL,
basinc REAL,
nem REAL);Bu komutu girip çalıştırmadan önce komutu açıklamak isterim. SQL komutları “;” ile biter. Yani burada terminale bu komutu yazarken yeni bir satıra geçmek için kullandığımız “enter” tuşuna basmamız işleme almamızı sağlamıyor. Ancak komutun sonunda “;” ekleyip enter tuşuna bastığımız zaman işleme alınmaktadır.
CREATE TABLE havaDurumu (Kodumuzda ilk satırımıza bakarsak, her SQL komutu gibi, ilk önce ne yaptığımızı yazdığımızı görebiliriz. Yani tablo oluşturma. Sonrasında ise tablonun adını arada boşluk bırakmadan, Türkçe harf kullanmadan yazmamız gerekmektedir. Boşluk yerine kelimenin ilk harfini büyük harfle yazmak yaygın bir uygulamadır. Sonrasında ise boşluk bırakıp parantez açarak tablomuzun sütunlarını tanımlamaya başlıyoruz. Eğer “CREATE TABLE havaDurumu;” yazsaydık boş bir tablo oluşturacaktık.
id INTEGER PRIMARY KEY,Burada “id” ile aslında hesap tablosu uygulamalarındaki (LibreOffice Calc veya Microsoft Excel... vs) gibi satır numaraları vermemize yaramaktadır. Tipi de “INTEGER” yani tamsayıdır. Sonrasında ise “PRIMARY KEY” tanımlamasını yaparak bu sütunun, tablonun indeks sütunu olduğunu belirtiyoruz. Her tabloda bir tane bu şekilde bir indeks sütunu oluşturacağız. Sonundaki virgül ile sonraki değişkeni tanımlamaya geçtiğimizi belirtiyoruz.
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,Burada “timestamp” kolonunu, “DATETIME”, tarih-zaman formatında olduğunu belirtiyoruz. Sonrasında ise “DEFAULT” değeri olan değer ile eğer boş olarak girilirse veya belirtilmezse otomatik olarak doldurulmasını talimatlandırıyoruz. Otomatik olarak yazılacak değer ise “CURRENT_TIMESTAMP” yani veri girişinin olduğu tarih-zaman olacağını belirtiyoruz.
sicaklik REAL,
basinc REAL,
nem REAL);Bu kısımda ise kaydedeceğimiz hava durumu ile alakalı sıcaklık, basınç ve nem oranlarını “REAL” yani ondalıklı sayı olarak gireceğimizi yazıyoruz. Son satırda ise virgül koymadan, ilk satırda açtığımız parantezi kapatıp “;” koyarak komutumuzu tamamlıyoruz.
Girdiğimiz komutun çalışıp yeni tablomuzun oluştuğunu kontrol etmek için aşağıdaki komutu yazıp “enter” tuşuna basıyoruz. Ayrıca yukarıdaki gibi herhangi bir hata vermemiş olması gerekmektedir.
.tablesDikkat edersek bu sefer “.” ile başlayıp, “;” ile bitirmedik komutumuzu. Çünkü bu komut SQL komutu değil, SQLite arayüzünün komutudur. Bu komut sonucunda veri tabanı içerisindeki tablolarımızın listesi görüntülenmektedir.
Eğer oluşturduğumuz tablonun daha sonra yapısını görmek istersek aşağıdaki komutu yazarak tablomuzun şemasını görüntüleyebiliriz.
.schema havaDurumuSQL komutları ile tabloda işlemler
Oluşturduğumuz tablo üzerinden aşağıdaki dört temel SQL komutunu göstermek isterim.
- “INSERT INTO”
- “SELECT”
- “UPDATE”
- “DELETE”
INSERT INTO komutu
“INSERT INTO” komutu ile tabloya veri yazma işlemini yaparız. Henüz oluşturduğumuz tablomuz şu anda boş. Her “INSERT INTO” komutunda yeni bir satır yazılmaktadır. İlk satırımızı yazmak için aşağıdaki komutu yazıyoruz.
INSERT INTO havaDurumu
(sicaklik, basinc, nem)
VALUES
(24.3, 1014.5, 0.30);Bu komut ile “sicaklik”, “basinc” ve “nem” kolonlarına, belirtildiği sırayla 24.3, 1014.5 ve 0.30 değerlerini yazmasını SQLite sistemine söylüyoruz. Ancak burada belirtmediğimiz ve tablomuzda olan iki adet daha kolonumuz vardı: “id” ve “timestamp”. Bunlardan “id”, SQLite tarafından otomatik olarak atanmaktadır. “timestamp” kolonumuza ise, tanımlamasında belirttiğimiz üzere, “DEFAULT” olarak Raspberry Pi cihazımızın komut girildiğindeki tarih ve zamanı yazılmaktadır. Yani “CURRENT_TIMESTAMP). Eğer kendimiz bu tarih ve saati yazmak istersek aşağıdaki gibi yazabiliriz.
INSERT INTO havaDurumu
(timestamp, sicaklik, basinc, nem)
VALUES
(2021-09-30 10:00:00,25.1, 1014.8, 0.30);Ancak diğer SQL komutlarını örnek vermek amacıyla birkaç satır daha kaydedeceğiz. Aşağıdaki örnek aynı zamanda birden fazla satır eklemenin yolunu göstermektedir.
INSERT INTO havaDurumu
(timestamp, sicaklik, basinc, nem)
VALUES
(2021-04-30 10:15:00 ,25.3, 1014.0, 0.40),
(2021-04-30 10:30:00 ,25.0, 1014.2, 0.25),
(2021-04-30 10:45:00 ,25.7, 1014.4, 0.15);SELECT komutu
“SELECT” komutu ile aslında tablomuzdan veri çağırma işlemini yapıyoruz. Bu komuta “query” komutu da denir. En temel haliyle, tablodaki bütün veriyi görüntülemek için aşağıdaki komutu kullanıyoruz.
SELECT * FROM havaDurumu;Bu komutu irdeleyecek olursak, “SELECT” komutundan sonraki “*”, bütün kolonların seçildiğini belirtmektedir. “FROM havaDurumu” ile havaDurumu tablosundan veri çekildiğini belirtiyoruz. Bu komutu yazıp enter tuşuna bastığımız zaman aşağıdaki gibi bir çıktı verecektir.
Şimdi de bu komutu biraz özelleştirelim. Mesela sadece sıcaklık verisini tarih saat ile alalım.
SELECT timestamp, sicaklik
FROM havaDurumu;“SELECT” SQL komutu ile daha bir çok örnekleme yapılabilir. Hatta bazı hesaplama işlemleri de buna dahildir. Ancak bu işlemler daha ileri seviye konulardır. Bu sebepten ötürü bu komutun öğrenimini burada bırakıyoruz.
UPDATE komutu
“UPDATE” komutu ile tablomuzdaki verilerin içeriği değiştirilmektedir. Örnek verecek olursak, “havaDurumu” tablomuzun son durumu aşağıdaki gibiydi.
Burada toplam beş satırlık bir verimiz var. İki numaralı satırdaki verideki sıcaklık değerini “25.1”den “26.0”a değiştirmek istersek aşağıdaki gibi bir komut yazmamız gerekmektedir.
UPDATE havaDurumu
SET sicaklik=26.0
WHERE id=2;Bu SQL komutumuz ile, “havaDurumu” tablosundaki, “id” değeri “2” olan satırların (ki bundan sadece bir adet var) sicaklik değerini “25.0” yapıyoruz. Komut sonraki tablonun son durumunu görüntülediğimizde tablomuzun son hali aşağıdaki gibidir.
Burada "WHERE" komut parçasını “SELECT” komutu ile de kullanabiliriz.
SELECT * FROM havaDurumu
WHERE id=2;WHERE komutunu biraz daha değişik kullanalım. Örnek vermemiz gerekirse, sıcaklığın “25.0”dan yüksek olduğu değerleri görüntülemek istersek şu şekilde bir kod yazmamız gerekmektedir.
SELECT * FROM havaDurumu
WHERE sicaklik>25.0;Bu konuda daha ayrıntılı anlatımlarını internette bulabiliriz ancak bu seviyede öğrenim için bu kadarının yeterli olduğunu düşünüyorum.
DELETE komutu
“DELETE” komutu ile isminden de tahmin edebileceğimiz üzere, silme işlemini gerçekleştiriyoruz. Örnek olarak “havaDurumu” tablomuzdaki birinci satırda bulunan veriyi silebiliriz. Bu komutu kullanırken dikkat edilmesi gerekmektedir. Sildiğimiz veriyi geri getirme şansımız olmamaktadır.
DELETE FROM havaDurumu
WHERE id=1;Önceki komutlarda olduğu gibi, “FROM havaDurumu” ile hangi tabloya müdahale edileceği belirtilmektedir. “WHERE id=1” komutu ile ise “id” değeri “1”e eşit olan satırların (ki bundan bir tane var) silineceğini belirtiyoruz. Komutu işlettikten sonra aşağıdaki gibi olacaktır.
Burada dikkat etmemiz gereken şey ise eğer "WHERE" komutu ile silinecek olan satırları belirlemezsek, bütün tablo içeriğini silerek boş bir tablo etmiş oluruz.
SQLite arayüzünden çıkış
SQLite arayüzünde artık yapılacak temel komutları görmüş bulunmaktayız. Bu komutların aslında kullanımını öğrenmek veya veri kontrolü için bu arayüzü kullanıyoruz. Arayüzden çıkmak için aşağıdaki komutu yazıyoruz ve linux terminalimize geri dönüyoruz.
.quitAyrıca SSH bağlantısını sonlandırmak için terminal ara yüzüne aşağıdaki komutu yazarsak, SSH bağlantısını sonlandırmış oluruz.
exit
Sonuç
Bu bölümümüzde SQLite yazılımının kurulumu ve temel kullanımı hakkında bilgi vermeye çalıştım. Yapacağımız projelerde, veri kaydı tutma ve bu veriyi daha sonra geri çağırmak için kullandığımız bu yazılım için daha başka bölümler de hazırlayacağım. Bu bölümleri de görmenizi tavsiye ederim.
Ayrıca daha ayrıntılı bilgileri elde etmek için benimde çok yararlandığım sqlitetutorial.net adresini de kontrol etmenizi tavsiye ederim.
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar



















Yorumlar
Yorum Gönder