Builder

web application developer blog

Kategori: Veri Tabanı (Database)

LATERAL Joins veya CROSS APPLY ile Tekrarsız Alt Sorgular Yazmak

İleri seviye SQL kullanımında, standart JOIN ile ilişkilendirmelerin artık işe yaramamaya başladığı ve iç içe SELECT sorguları yazmaya başladığınızda, aynı alt-sorgunun hem SELECT içinde, hem WHERE içinde belki başka bloklarda da kullanmanız gerekebilir. İşte o zaman bu alt-sorgular RDBMS’in  canına okuyacaktır. Eğer bir SQL GURU’su iseniz ne dediğimi çoktan anlamışsınızdır 🙂 Bu problemin çözümü PostgreSQL ‘de LATERAL, MSSQL’de CROSS APPLY,…

Hybrit Data Model 2. Bölüm: PostgreSQL’de JSON sorguları

Hibrit Datamodelin ne olduğuna dair daha önceki yazımı kaçıranlar şuradan başlayabilirler. Bu yazımda kullandığım örneklerde, öncekinden farklı olarak JSONB veri tipi var. JSONB Postgresql’de Binary JSON veri tipidir ve 9.4 versiyonundan itibaren desteklenmektedir. Hibrit Datamodel’de JSON sorgusu örneklerine başlamadan önce, örnek bir tablomuz olması lazım: CREATE TABLE public.tbl_product ( product_id bigserial NOT NULL PRIMARY KEY, product_name varchar(255), brand_id integer, category_id…

SQL ve NoSQL modelleme, Hibrit Data Model

Bilişim okutulan okullarda yıllardır, ilişkisel veri modeli ve RDMS (Relational Database Management System) programlar okutuluyor. Bunlardan en popülerleri Açık Kaynak tarafında, MySQL, diğer tarafta MS SQL server ve Kurumsal alanlarda da Oracle. PostgreSQL, ülkemiz için pek popüler olmasa da bilhassa Python programcıları başta olmak üzere dünyada saygın yeri olan bir başka RDMS. Ülkemizdeki Oracle müptelaları için şunu da hemen belirteyim…

SQLAlchemy Model Class Generator for PostgreSQL

Şu üç teknolojiyi bir arada kullanıyorsanız: Python SQLAlchemy (zaten Python‘suz olmaz 🙂 ) PostgreSQL ve benim gibi, önce model class’ı yazmak yerine veri tabanı tablolarını oluşturmayı seviyorsanız. Model class’larını oluşturacak bir reverse engineering scripti zorunlu oluyor. Özellikle de büyük projelerde her bir modeli tek tek yazmak tam bir işkence ve hata yapma ihtimali çok yüksek. Oysa veri tabanı tabloları ER diagramında oluşturulmalı diye…

MYSQL’de SQL ile sütunları tek satır halinde nasıl birleştiririz?

Bazen MySQL ile çapraz sorgulama yapmak gerekebilir ancak, MySQL henüz bunu desteklemiyor. Bunun yerine, alt tabloya ait satırları, tek sütunda birleştirilmiş olarak kullanmak belki bizi kurtarabilir. Örnek olarak bir toplu mail programı olan phplist veri tabanını kullanırsak ve Örneğimiz, bir kullanıcının hangi mailleri aldığı sorgusu olursa: Kullanıcılar Tablosu: user_user ======== id email ………   Gönderilen Mesajlar Tablosu: usermessage ========== messageid userid…