🇹🇷
Merhaba!
SQL Düzenleyicisi
  • 🥳Merhaba!
  • 🔃API
    • API'ler
      • Alan Adı Sorgulama WHOIS API
      • İp Adresi Sorgulama API
      • Rastgele Kedi Resmi Gösteren API
      • Lokasyon
        • Ülkeler API
        • Şehirler API
      • T.C. Kimlik Doğrulama API
  • Hosting Solution
    • Cyberpanel
      • 500 Internal Server Hatası (Cyberpanel)
  • 🐻‍❄️LARAVEL
    • Laravel Projesi Oluşturma
    • Anasayfa Düzenleme ve Sayfa Ekleme
  • 🔳ERP TARAFI
    • ERP Nedir ?
    • ERP İş Süreçleri
    • Birimler
      • Üretim
      • Satış
      • Muhasebe
      • Stok Yönetimi
      • Mali Yönetimi
      • Müşteri Hizmetleri (Destek)
      • İnsan Kaynakları (Personel)
      • Proje Yönetimi
    • Kullanılan Terimler
      • Amortisman
  • 💻SQL Tarafı
    • Çalışmalar ve Notlar
      • Tablo Boyutlarını Öğrenme
      • Veritabanı Arası Sorgulama
      • Tabloların Satır Sayısını Bulma
      • Tablodaki Triggerları Açma&Kapatma
      • Tablo Bağlantısı (Tablo Bağlama)
      • Tabloların Satır Sayısını Bulma
    • Konular
      • Sorgulamalar
        • SELECT
        • FROM
        • WHERE
        • LIKE
        • JOINLER
          • INNER JOIN
          • FULL OUTER JOIN
          • RIGHT JOIN
          • LEFT JOIN
        • GROUP BY
        • HAVING
        • ORDER BY
        • LIMIT
        • COUNT
        • SUM
        • AVG
        • MIN
        • MAX
        • CASE
        • DISTINCT
        • SUBQUERY
        • SUBSTRING
        • TRUNCATE
      • String Fonksiyonlar
        • LEN
        • STRING_SPLIT
        • CHARINDEX
        • SUBSTRING
        • REPLACE
        • LOWER/UPPER
        • TRIM
        • LEFT/RIGHT
        • ASCII/CHAR
        • CONCAT
      • Zaman Fonksiyonları
        • DAY, MONTH, YEAR
        • DATEFROMPARTS
        • ISDATE
        • DATEADD
        • DATENAME
        • DATEPART
        • DATETIME
        • DATEDIFF
      • Matematiksel Fonksiyonlar
        • ROUND
        • FLOOR
        • DEGRESS
        • ACOS
        • ASIN
        • ATAN
        • ATN2
        • RAND
        • RAD
        • ABS/SIGN
        • FLOOR/CEILING
      • Döngüler
        • FOR
        • WHILE
      • Prosedür
        • Prosedür Nasıl Yazılır
      • Trigger
        • Triger Nasıl Yazılır
      • Index
        • Index Nasıl Yazılır
      • Cursor
        • Cursor Nasıl Yazılır
      • Fonksiyon Konuları
        • User Defined Functions
        • Aggregate Functions
      • Veritipleri ve Boyutları
      • İlişkisel Veritabanı
    • Dosyalar & Kaynaklar
      • SQL Veri Tipleri
      • T-SQL Join Tipleri
      • SQL Cheat Sheet
    • SQL Hataları ve Çözümleri
      • String or binary data would be truncated
      • Subquery returned more than 1 value.
      • Conversion failed when converting from a character string to uniqueidentifier
      • The multi-part identifier could not be bound
      • Arithmetic overflow error converting numeric to data type numeric
  • 💯ANADIL
    • Anadil Nedir ?
    • Çalışmalar ve Notlar
      • Cff
        • Cff İle Adını Alıp Kodunu Yazdırma
      • Şube Kodu İşaretlendiğinde ComboBox'ın Kapatılması.
      • Parametre İşaretlendiğinde TabSheet'te ki Grid'in kapatılması.
      • İf
        • İf İle Boş Kontrol
        • İf İle Uzunluk Kontrolü
      • Grid
        • Grid PushButton Kullanımı
        • Grid Oluşturma
      • Formdaki Gride Koşul Ekleme(FTC)
      • Yetki Servisi Çağırma
      • ComboList Doldurma
    • Kütüphane
      • RS32
        • Fonksiyonlar
          • BuildInsertStm
          • BuildDeleteStm
          • BuildSelectStm
          • BuildUpdateStm
          • PrepareStmDirect
          • ExecuteStmDirect
        • Metotlar
          • AddOrderBy
          • AddGroupBy
          • AppendToStm
      • CFF
        • Fonksiyonlar
        • Metotlar
      • Kontrol Nesneleri
        • ListBox ve ComboBox
          • AddToList
          • SelectTextInList
      • Diğer
        • IsNull
  • 🔬.NET TARAFI
    • .NET Nedir ?
    • Konular
      • Değişkenler
        • Boolean (Bool)
        • Byte
        • Char
        • Integer (INT)
        • Long
        • Single
        • Double
        • Decimal
        • String
        • Object
  • 😎PHP TARAFI
    • PHP Nedir ?
    • Konular
      • Temel Söz Dizimi
        • Değişkenler
        • Operatörler
        • Koşullar
        • Fonksiyonlar
        • Döngüler
        • Diziler
        • String İşlemleri
      • Form İşlemleri
        • Form Verilerini Alma
        • Form Verilerini Kontrol Etme
        • Form Verilerini İşleme
        • Form Alanlarına Ön Tanımlı Değerler Atama
        • Form Güvenliği
      • Veritabanı İşlemleri
        • Veritabanına Bağlanma
        • Veri Ekleme
        • Veri Sorgulama
        • Veri Güncelleme
        • Veri Silme
        • Veri Okuma
        • Transaksiyonlar
        • Veritabanı Bağlantılarını Yönetme
      • Sınıflar ve Nesneler
        • OOP İlkeleri
        • Autoloading
        • Ad alanları (Namespaces)
        • Statik Yöntemler ve Özellikler (Static Methods and Properties)
        • Soyut Sınıflar ve Yöntemler (Abstract Classes and Methods)
        • Arayüzler (Interfaces)
        • Miras (Inheritance)
        • Sınıflar ve Nesnelerin Temelleri
        • Kurucu Yöntemler
      • Güvenlik
        • SQL Enjeksiyonu
        • XSS (Cross-Site Scripting)
        • DoS (Denial of Service) Saldırıları
        • CSRF (Cross-Site Request Forgery)
        • Güvenli Parola Depolama
        • Dosya Yükleme
      • Dosya İşlemleri
      • API Entegrasyonları
        • API Nedir ?
        • RESTful API Nedir?
        • API İstekleri
        • API Yanıtları
        • API Entegrasyon Örnekleri
        • API Anahtarları
      • Framework
        • MVC Tasarım Deseni
        • Yönlendirme
        • Şablonlar
        • Veritabanı Erişimi
        • Güvenlik
        • API Entegrasyonları
        • Oturum Yönetimi
        • Test
        • Performans
        • Paket Yönetimi
  • 🎛️FRAMEWORK TARAFI
    • Framework Nedir?
    • Konular
      • Framework Türleri
      • Framework Avantajları ve Dezavantajları
      • Framework Kullanımı ve Örnekleri
      • Framework vs Kütüphane
      • Framework vs Platform
      • Framework vs API
      • Framework ve Tasarım Kalıpları
      • Framework ve MVC Mimari
      • Framework ve ORM
      • Framework ve Web Geliştirme
      • Framework ve Mobil Geliştirme
      • Framework ve Oyun Geliştirme
      • Framework ve Veri Bilimi
      • Framework ve Yapay Zeka
      • Framework Geliştirme Süreci
      • Framework Test Etme ve Hata Ayıklama
Powered by GitBook
On this page

Was this helpful?

  1. SQL Tarafı
  2. Konular

İlişkisel Veritabanı

SQL, İlişkisel Veritabanı Yönetim Sistemleri (RDBMS) için kullanılan bir programlama dili olarak tasarlanmıştır. RDBMS'ler, verilerin tutulduğu tabloların arasındaki ilişkileri kullanarak verilerin etkileşimini organize eden bir yazılımdır. SQL, RDBMS'lerdeki tablolarda veri ekleme, güncelleme, silme ve sorgulama işlemleri yapmak için kullanılan standart bir dil haline gelmiştir.

Bir RDBMS örneği olarak MySQL, PostgreSQL ve Oracle verilebilir. Bu veritabanı yönetim sistemleri, tabloları, sütunları ve ilişkileri oluşturma, veri ekleme, güncelleme, silme ve sorgulama işlemlerini gerçekleştirme gibi temel işlemleri yapmanıza olanak tanır.

İlişkisel veritabanlarında, bir veya daha fazla tablo arasında bir ilişki kurulabilir. Bu ilişki, bir tablonun birincil anahtarını (primary key) kullanarak diğer tabloların bir sütununa referans vererek oluşturulur. Bu sütuna, yabancı anahtar (foreign key) denir. Bu yöntem, tablolardaki verilerin daha iyi organize edilmesini ve aralarındaki ilişkilerin anlaşılmasını sağlar.

Örneğin, "Customers" ve "Orders" adında iki farklı tablo oluşturalım. "Customers" tablosu, müşterilerin adı, adresi, şehri ve telefon numarası gibi bilgileri içerirken, "Orders" tablosu, müşterilerin siparişleri hakkındaki bilgileri içerir. Her bir sipariş, müşteri kimliği, sipariş numarası, sipariş tarihi ve toplam sipariş miktarı gibi bilgiler içerir.

Bu iki tabloyu birleştirmek için, "Customers" tablosunda birincil anahtar olarak kullanılan "CustomerID" sütununu "Orders" tablosundaki yabancı anahtar olarak kullanacağız. Bu sayede, her bir sipariş, ilgili müşterinin "CustomerID" numarasına referans verir.

Bu bağlantı, aşağıdaki SQL sorgusu ile gerçekleştirilebilir:

CREATE TABLE Customers (
  CustomerID int NOT NULL PRIMARY KEY,
  CustomerName varchar(255),
  Address varchar(255),
  City varchar(255),
  Phone varchar(20)
);

CREATE TABLE Orders (
  OrderID int NOT NULL PRIMARY KEY,
  CustomerID int,
  OrderDate date,
  TotalAmount decimal(10,2),
  FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

Bu sorgu, "Customers" ve "Orders" tablolarını oluşturur. "Orders" tablosunda, "CustomerID" sütunu, "Customers" tablosundaki "CustomerID" sütununa referans vermek için yabancı anahtar olarak tanımlanır.

Bu yapı oluşturulduktan sonra, iki tablo arasında JOIN işlemi yaparak verileri birleştirebiliriz. Örneğin, müşteri adı, sipariş numarası ve sipariş tarihi gibi bilgileri içeren bir rapor oluşturmak istediğimizi varsayalım. Bunu aşağıdaki SQL sorgusu ile gerçekleştirebiliriz:

SELECT Customers.CustomerName, Orders.OrderID, Orders.OrderDate
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

Bu sorgu, "Customers" ve "Orders" tablolarını birleştirir ve her bir siparişin müşteri adı, sipariş numarası ve sipariş tarihi bilgilerini içeren bir sonuç seti döndürür.

İlişkisel veritabanlarının bir diğer önemli özelliği de verilerin bütünlüğünü korumasıdır. Bu, bir tablodan veri silindiğinde veya güncellendiğinde, bağlı tablolardaki verilerin de otomatik olarak güncellenmesi veya silinmesi anlamına gelir. Bu sayede, verilerin tutarlılığı ve doğruluğu korunur.

İlişkisel veritabanları, genellikle büyük ve karmaşık veri kümelerini yönetmek için kullanılır. İlişkisel veritabanları, verilerin daha kolay yönetilmesini, güncellenmesini, silinmesini ve sorgulanmasını sağlayarak işletmelerin verilerini daha etkili bir şekilde yönetmelerine olanak tanır.

İlişkisel veritabanları tasarlarken, verilerin doğru şekilde depolanması için birkaç önemli adımı izlemek önemlidir:

  1. İlişkisel veritabanı tablolarını tasarlarken, her bir tablonun birincil anahtarını (primary key) belirlemek gerekir. Birincil anahtar, her bir kaydın benzersiz şekilde tanımlanmasına olanak tanır.

  2. İlişkisel veritabanı tabloları arasındaki ilişkileri doğru şekilde tanımlamak önemlidir. Tablolar arasındaki ilişki türü (bir-bir, bir-çok, çok-çok), tablolar arasındaki anahtar alanlarının eşleşmesi, veri kısıtlamaları (örneğin, bir müşterinin birden fazla siparişi olabilir, ancak bir siparişin birden fazla müşterisi olamaz) gibi unsurlar doğru şekilde tanımlanmalıdır.

  3. Verilerin doğru şekilde depolanması için veri tiplerinin doğru şekilde seçilmesi önemlidir. Veri tipleri, verilerin türünü belirler ve verilerin doğru şekilde işlenmesini sağlar.

  4. Verilerin depolanması, güncellenmesi, silinmesi ve sorgulanması için doğru SQL sorgularının kullanılması önemlidir. SQL, ilişkisel veritabanlarını yönetmek için yaygın olarak kullanılan bir dildir.

Özetle, ilişkisel veritabanları, büyük ve karmaşık veri kümelerini yönetmek için kullanılan bir veritabanı türüdür. İlişkisel veritabanları, verilerin daha kolay yönetilmesini, güncellenmesini, silinmesini ve sorgulanmasını sağlayarak işletmelerin verilerini daha etkili bir şekilde yönetmelerine olanak tanır.

Last updated 2 years ago

Was this helpful?

💻