Alətlər16 dəq oxuma

    SQL Formatlaşdırması: Təmiz və Oxunaqlı Verilənlər Bazası Sorğularının Yazılması

    Təmiz, oxunaqlı və saxlanıla bilən verilənlər bazası sorğuları yazmaq üçün SQL formatlaşdırmasında peşəkar olun. Ən yaxşı təcrübələri, formatlaşdırma standartlarını və SQL kodunu peşəkar edən alətləri öyrənin.

    Michael Chen

    Michael Chen

    İnvestisiya Analitiki

    2025 M06 1
    SQL Formatlaşdırması: Təmiz və Oxunaqlı Verilənlər Bazası Sorğularının Yazılması

    Giriş

    SQL bütün dünyada developerlər, məlumat analitikləri və verilənlər bazası administratorları tərəfindən istifadə olunan verilənlər bazasının dilidir. Ancaq bir çox SQL sorğuları zəif formatlaşdırılır və onları oxumaq, başa düşmək və saxlamaq çətin olur.

    Yaxşı formatlaşdırılmış SQL yalnız estetika haqqında deyil - kod keyfiyyəti, saxlanıla bilmə və əməkdaşlıq haqqındadır. Bu əhatəli bələdçi sizə SQL sorğularını peşəkar şəkildə formatlaşdırmağı öyrədəcək və verilənlər bazası kodunuzu təmiz, oxunaqlı və saxlanıla bilən edəcək.

    SQL Formatlaşdırması Niyə Vacibdir

    Oxunaqlılıq

    Zəif Formatlaşdırılmış:

    SELECT u.id,u.name,u.email,o.total,o.date FROM users u JOIN orders o ON u.id=o.user_id WHERE u.active=1 AND o.date>'2024-01-01' ORDER BY o.total DESC;
    

    Yaxşı Formatlaşdırılmış:

    SELECT 
        u.id,
        u.name,
        u.email,
        o.total,
        o.date
    FROM users u
    JOIN orders o ON u.id = o.user_id
    WHERE u.active = 1
        AND o.date > '2024-01-01'
    ORDER BY o.total DESC;
    

    Fərq: Formatlaşdırılmış versiya dərhal başa düşüləndir.

    Saxlanıla Bilmə

    Yaxşı formatlaşdırılmış SQL:

    • Debug etmək asandır: Problemləri tapmaq asandır
    • Dəyişdirmək asandır: Dəyişikliklər daha az səhvə meyllidir
    • Nəzərdən keçirmək asandır: Kod nəzərdən keçirmələri daha effektivdir
    • Sənədləşdirmək asandır: Özünü sənədləşdirən kod

    Əməkdaşlıq

    Komandalarda işləyərkən:

    • Ardıcıl formatlaşdırma çaşqınlığı azaldır
    • Asan kod nəzərdən keçirmələri
    • Daha sürətli onboarding
    • Daha yaxşı bilik paylaşımı

    SQL Formatlaşdırma Standartları

    1. Açar Sözlər

    Qayda: SQL açar sözləri üçün böyük hərf istifadə edin Niyə: Açar sözləri identifikatorlardan fərqləndirir

    SELECT, FROM, WHERE, JOIN, ORDER BY, GROUP BY
    

    2. Abzas

    Qayda: Alt klozaları və yerləşdirilmiş sorğuları abzasla yazın Standart: 2 və ya 4 boşluq (ardıcıl olun)

    SELECT 
        column1,
        column2
    FROM table1
    WHERE condition1
        AND condition2
    

    3. Sətir Fasilələri

    Qayda: Əsas klozaları ayrı sətirlərə qoyun Klozalar: SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY

    SELECT columns
    FROM table
    WHERE conditions
    

    4. Vergüllər

    Qayda: Arxada vergüllər və ya öndə vergüllər (ardıcıl olun) Arxada (ümumi):

    SELECT 
        column1,
        column2,
        column3
    

    Öndə (alternativ):

    SELECT 
        column1
        , column2
        , column3
    

    5. Düzləndirmə

    Qayda: Oxşar elementləri düzləndirin Nümunə: SELECT sütunlarını, WHERE şərtlərini düzləndirin

    SELECT 
        user_id,
        user_name,
        user_email
    FROM users
    WHERE user_active = 1
        AND user_created > '2024-01-01'
    

    Müxtəlif SQL Konstruksiyalarının Formatlaşdırılması

    SELECT İfadələri

    Əsas Struktur:

    SELECT 
        column1,
        column2,
        column3
    FROM table_name
    WHERE condition
    ORDER BY column1;
    

    Ləqəblərlə:

    SELECT 
        u.id AS user_id,
        u.name AS user_name,
        COUNT(o.id) AS order_count
    FROM users u
    JOIN orders o ON u.id = o.user_id
    GROUP BY u.id, u.name;
    

    JOIN-lar

    INNER JOIN:

    SELECT 
        u.name,
        o.total
    FROM users u
    INNER JOIN orders o ON u.id = o.user_id;
    

    Çoxlu JOIN-lar:

    SELECT 
        u.name,
        p.name AS product_name,
        oi.quantity
    FROM users u
    JOIN orders o ON u.id = o.user_id
    JOIN order_items oi ON o.id = oi.order_id
    JOIN products p ON oi.product_id = p.id;
    

    LEFT JOIN:

    SELECT 
        u.name,
        o.total
    FROM users u
    LEFT JOIN orders o ON u.id = o.user_id
    WHERE o.id IS NULL;  -- Sifarişi olmayan istifadəçilər
    

    WHERE Klozaları

    Sadə Şərtlər:

    WHERE status = 'active'
        AND created_date > '2024-01-01'
    

    Mürəkkəb Şərtlər:

    WHERE (status = 'active' OR status = 'pending')
        AND created_date > '2024-01-01'
        AND (user_id IN (1, 2, 3) OR email LIKE '%@example.com')
    

    Alt Sorğular:

    WHERE user_id IN (
        SELECT id
        FROM users
        WHERE active = 1
    )
    

    GROUP BY və HAVING

    SELECT 
        category,
        COUNT(*) AS product_count,
        AVG(price) AS avg_price
    FROM products
    WHERE active = 1
    GROUP BY category
    HAVING COUNT(*) > 10
    ORDER BY product_count DESC;
    

    CASE İfadələri

    SELECT 
        name,
        CASE 
            WHEN age < 18 THEN 'Yetkinlik yaşına çatmayan'
            WHEN age < 65 THEN 'Yetkin'
            ELSE 'Yaşlı'
        END AS age_group
    FROM users;
    

    CTE-lər (Ümumi Cədvəl İfadələri)

    WITH active_users AS (
        SELECT 
            id,
            name,
            email
        FROM users
        WHERE active = 1
    ),
    user_orders AS (
        SELECT 
            u.id,
            COUNT(o.id) AS order_count
        FROM active_users u
        LEFT JOIN orders o ON u.id = o.user_id
        GROUP BY u.id
    )
    SELECT 
        u.name,
        COALESCE(uo.order_count, 0) AS orders
    FROM active_users u
    LEFT JOIN user_orders uo ON u.id = uo.id;
    

    Ən Yaxşı Təcrübələr

    1. Ardıcıl Olun

    Qayda: Bir üslub seçin və ona sadiq qalın Niyə: Ardıcıllıq koqnitiv yükü azaldır

    2. Mənalı Ləqəblər İstifadə Edin

    Pis:

    SELECT u.n, u.e FROM users u
    

    Yaxşı:

    SELECT 
        u.name,
        u.email
    FROM users u
    

    3. Uzun Sorğuları Formatlaşdırın

    Qayda: Uzun sorğuları məntiqi bölmələrə ayırın İstifadə: Bölmələri ayırmaq üçün şərhlər

    -- Aktiv istifadəçiləri əldə edin
    SELECT 
        u.id,
        u.name
    FROM users u
    WHERE u.active = 1
    
    -- Sifarişlərlə birləşdirin
    JOIN orders o ON u.id = o.user_id
    
    -- Son sifarişləri süzün
    WHERE o.date > '2024-01-01'
    

    4. Əlaqəli Elementləri Düzləndirin

    Qayda: Asan skan etmək üçün oxşar klozaları düzləndirin Nümunə: Bütün JOIN şərtlərini düzləndirin

    SELECT 
        u.id,
        u.name,
        p.name AS product_name
    FROM users u
    JOIN orders o      ON u.id = o.user_id
    JOIN order_items oi ON o.id = oi.order_id
    JOIN products p    ON oi.product_id = p.id
    

    5. Şərhləri Ağılla İstifadə Edin

    Yaxşı Şərhlər:

    -- Aktiv istifadəçilər üçün ümumi gəliri hesablayın
    SELECT 
        u.id,
        SUM(o.total) AS total_revenue
    FROM users u
    JOIN orders o ON u.id = o.user_id
    WHERE u.active = 1  -- Yalnız aktiv istifadəçilər
    GROUP BY u.id;
    

    Pis Şərhlər:

    -- İstifadəçiləri seçin
    SELECT * FROM users;  -- Bu istifadəçiləri seçir
    

    Ümumi Formatlaşdırma Səhvləri

    Səhv 1: Hər Şey Bir Sətirdə

    Problem: Oxunmaz, debug etmək çətin Həll: Çoxlu sətirə bölün

    Səhv 2: Uyğunsuz Abzas

    Problem: Strukturu izləmək çətin Həll: Ardıcıl abzas istifadə edin (2 və ya 4 boşluq)

    Səhv 3: Qarışıq Böyük/Kiçik Hərf Açar Sözləri

    Problem: Uyğunsuz görünüş Həll: Həmişə açar sözlər üçün BÖYÜK HƏRF istifadə edin

    Səhv 4: Operatorların Ətrafında Boşluq Yoxdur

    Problem: Oxumaq çətin Həll: Boşluqlar istifadə edin: column = value column=value deyil

    Səhv 5: Uyğunsuz Vergül Yerləşdirməsi

    Problem: Çaşdırıcı Həll: Arxada və ya öndə seçin, ona sadiq qalın

    SQL Formatlaşdırma üçün Alətlər

    Onlayn Formatçılar

    • SQLFormat: Pulsuz onlayn SQL formatçısı
    • FreeFormatter: Çoxlu SQL dialektləri
    • SQL Beautifier: Sürətli formatlaşdırma

    IDE Pluginləri

    • SQL Formatter (VS Code)
    • Poor Man's T-SQL Formatter (SQL Server)
    • A5 SQL Formatter (Müxtəlif IDE-lər)

    Komanda Sətri Alətləri

    sqlformat (Python):

    pip install sqlparse
    sqlformat --reindent query.sql
    

    Verilənlər Bazası Xüsusi Alətlər

    • pgFormatter: PostgreSQL
    • SQL Server Management Studio: Daxili formatçı
    • MySQL Workbench: Formatlaşdırma seçimləri

    Müxtəlif Verilənlər Bazaları üçün Formatlaşdırma

    PostgreSQL

    SELECT 
        column1,
        column2
    FROM table_name
    WHERE condition;
    

    MySQL

    SELECT 
        `column1`,
        `column2`
    FROM `table_name`
    WHERE `condition`;
    

    SQL Server

    SELECT 
        [column1],
        [column2]
    FROM [table_name]
    WHERE [condition];
    

    Qabaqcıl Formatlaşdırma Texnikaları

    1. Mürəkkəb Sorğuları Formatlaşdırma

    Məntiqi bölmələrə ayırın:

    -- Əsas sorğu
    SELECT 
        columns
    FROM 
        -- Alt sorğu və ya CTE
        (SELECT ...) AS subquery
    WHERE 
        conditions
    GROUP BY 
        columns
    HAVING 
        aggregate_conditions
    ORDER BY 
        columns;
    

    2. Saxlanmış Prosedurları Formatlaşdırma

    CREATE PROCEDURE GetUserOrders
        @UserId INT
    AS
    BEGIN
        SET NOCOUNT ON;
        
        SELECT 
            o.id,
            o.date,
            o.total
        FROM orders o
        WHERE o.user_id = @UserId
        ORDER BY o.date DESC;
    END;
    

    3. View-ları Formatlaşdırma

    CREATE VIEW ActiveUserOrders AS
    SELECT 
        u.id AS user_id,
        u.name AS user_name,
        o.id AS order_id,
        o.total AS order_total
    FROM users u
    JOIN orders o ON u.id = o.user_id
    WHERE u.active = 1;
    

    Nəticə

    SQL formatlaşdırması verilənlər bazaları ilə işləyən hər kəs üçün vacib bacarıqdır. Yaxşı formatlaşdırılmış SQL oxumaq, başa düşmək, saxlamaq və debug etmək daha asandır. O, əməkdaşlığı yaxşılaşdırır və səhvləri azaldır.

    Unutmayın:

    • Formatlaşdırma üslubunuzla ardıcıl olun
    • Strukturu göstərmək üçün düzgün abzas istifadə edin
    • Uzun sorğuları oxunaqlı bölmələrə ayırın
    • Mənalı ləqəblər və adlar istifadə edin
    • Yaxşı vərdişlər yaratmaq üçün yazarkən formatlaşdırın

    Bu gün SQL sorğularınızı formatlaşdırmağa başlayın. Gələcək özünüz (və komanda yoldaşlarınız) bunun üçün təşəkkür edəcək.

    Bizim SQL Alətlərimizdən İstifadə

    1tool.dev-da biz SQL sorğularınızı formatlaşdırmağa kömək edən güclü SQL Formatçısı təklif edirik. Alətimiz kodunuzu dərhal təmizləyir və oxunaqlı edir.

    Bu gün SQL formatçımızı sınayın və daha yaxşı, daha oxunaqlı sorğular yazın!

    Michael Chen

    Michael Chen

    İnvestisiya Analitiki

    Şəxsi investisiya strategiyaları və bazar trendlərinə fokuslanmış investisiya analitiki.

    Əlaqəli yazılar

    UX Yazısı: Gözəl Sözlərdən Kənarda — Effektiv İnterfeys Mətninin Arxasındakı Elm
    Alətlər12 dəq oxuma

    UX Yazısı: Gözəl Sözlərdən Kənarda — Effektiv İnterfeys Mətninin Arxasındakı Elm

    UX yazısının gözəl nəsr və ya mükəmməl qrammatika haqqında deyil, istifadəçilərə düzgün vaxtda və düzgün yerdə xidmət edən aydın, kontekstual məzmun yaratmaq haqqında olduğunu kəşf edin. Peşəkar UX yazıçılarının tək bir söz yazmadan əvvəl qəbul etdikləri metodoloji yanaşmanı öyrənin.

    Ismat Babirli2025 M05 15
    Bu yeni IDE heç cəhd etmədən VS Code və Copilot-i məhv etdi
    Alətlər12 dəq oxuma

    Bu yeni IDE heç cəhd etmədən VS Code və Copilot-i məhv etdi

    Windsurf IDE-nin agent qabiliyyətləri ilə proqramlaşdırma mühitini necə dəyişdiyini və VS Code ilə GitHub Copilot-i köhnəlmiş göstərdiyini kəşf edin. Proqramçıların kod yazma tərzini transformasiya edən Cascade və Supercomplete kimi inqilabi xüsusiyyətləri haqqında öyrənin.

    Michael Chen2025 M05 16
    Hər Yazıçının Ehtiyac Duyduğu 10 Vacib Mətn Formatlaşdırma Aləti
    Alətlər15 dəq oxuma

    Hər Yazıçının Ehtiyac Duyduğu 10 Vacib Mətn Formatlaşdırma Aləti

    Yazı iş axınınızı dəyişdirə biləcək vacib mətn formatlaşdırma alətlərini kəşf edin. Böyük-kiçik hərf çevrilməsindən mətn təmizlənməsinə qədər bu alətlərin sizə saatlar qazandıra və məzmun keyfiyyətinizi necə yaxşılaşdıra biləcəyini öyrənin.

    Ismat Babirli2025 M05 22