# önder online
Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri Yapay zekâ ve otomasyonun güvenliğe etkileri Microsoft 365 ve Active Directory güvenlik rehberleri Yazılım geliştirmede güvenlik odaklı yaklaşımlar Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri

Menu

SQL Notları: `NULL` değerlerini, `LIMIT` ve `OFFSET` kullanımı

SQL Notları: `NULL` değerlerini, `LIMIT` ve `OFFSET` kullanımı

MySQL'de `NULL` değerlerini, `LIMIT` ve `OFFSET` kullanımını, veritabanı ve kullanıcı oluşturma işlemlerini daha iyi anlayabilirsiniz. Bir sonraki yazıda, JOIN'ler ve alt sorgular gibi daha gelişmiş SQL konularına değineceğiz.

## NULL Değerleri ve Kullanımı

MySQL'de `NULL`, bir sütunda değer olmadığını veya bilinmediğini belirtmek için kullanılır. `NULL`, boş bir string (`""`) veya sıfır (`0`) değerinden farklıdır. Bu bölümde, `NULL` değerlerinin nasıl kullanıldığını ve nasıl test edildiğini inceleyeceğiz.

### 1. **NULL Değerlerinin Kullanım Alanları**

- **Henüz bilinmeyen veriler:** Örneğin, bir projenin bitiş tarihi (`end_date`) henüz belirlenmemiş olabilir.
- **Opsiyonel veriler:** Örneğin, bir kullanıcının ikinci adı (`middle_initial`) olmayabilir. Bu durumda `NULL` kullanılabilir.
- **Matematiksel hesaplamalar:** Örneğin, sıfırın sıfıra bölünmesi gibi geçersiz hesaplamalar `NULL` ile temsil edilir.

**Örnek:**
```sql
CREATE TABLE users (
   id INT PRIMARY KEY,
   username VARCHAR(50) NOT NULL,
   middle_initial CHAR(1) NULL
);
```

Bu örnekte, `middle_initial` sütunu opsiyonel olduğu için `NULL` değer alabilir.

### 2. **NULL Değerlerini Test Etme**

`NULL` değerlerini test etmek için `IS NULL` ve `IS NOT NULL` ifadeleri kullanılır. `=` operatörü `NULL` değerlerini test etmek için kullanılmaz.

**Örnek Kullanım:**
```sql
SELECT * FROM users WHERE middle_initial IS NULL;
```

Bu sorgu, `middle_initial` sütunu `NULL` olan tüm kullanıcıları getirecektir.

**NULL Güvenli Karşılaştırma:**
```sql
SELECT * FROM users WHERE middle_initial <=> NULL;
```

Bu sorgu da `middle_initial` sütunu `NULL` olan kullanıcıları getirecektir. `<=>` operatörü, `NULL` değerlerini güvenli bir şekilde karşılaştırmak için kullanılır.

### 3. **LEFT JOIN ile NULL Kullanımı**

`LEFT JOIN` işlemlerinde, bir tablodaki kayıtların diğer tabloda karşılığı olup olmadığını kontrol etmek için `NULL` kullanılabilir.

**Örnek Kullanım:**
```sql
SELECT a.*
FROM table_a a
LEFT JOIN table_b b ON a.id = b.id
WHERE b.id IS NULL;
```

Bu sorgu, `table_a` tablosundaki `id` değerlerinin `table_b` tablosunda karşılığı olmayan kayıtları getirecektir.

---

## LIMIT ve OFFSET Kullanımı

`LIMIT` ve `OFFSET` ifadeleri, sorgu sonuçlarını sınırlamak ve belirli bir kayıttan başlayarak sonuçları getirmek için kullanılır. Bu, özellikle sayfalama (pagination) işlemlerinde kullanışlıdır.

### 1. **LIMIT ile Sonuçları Sınırlama**

`LIMIT` ifadesi, sorgu sonuçlarının kaç satır döneceğini belirler.

**Örnek Kullanım:**
```sql
SELECT * FROM users ORDER BY id ASC LIMIT 2;
```

Bu sorgu, `users` tablosundaki ilk 2 kaydı getirecektir.

### 2. **LIMIT ve OFFSET ile Sayfalama**

`LIMIT` ve `OFFSET` birlikte kullanılarak, belirli bir kayıttan başlayarak sonuçlar getirilebilir.

**Örnek Kullanım:**
```sql
SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 2;
```

Bu sorgu, ilk 2 kaydı atlayıp sonraki 2 kaydı getirecektir. Yani, 3. ve 4. kayıtlar dönecektir.

**Alternatif Sözdizimi:**
```sql
SELECT * FROM users ORDER BY id ASC LIMIT 2, 2;
```

Bu sorgu da aynı sonucu verecektir. İlk sayı offset, ikinci sayı ise limit değerini belirtir.

---

## Veritabanı ve Kullanıcı Oluşturma

MySQL'de veritabanı ve kullanıcı oluşturmak, veritabanı yönetiminin temel adımlarındandır. Bu bölümde, veritabanı ve kullanıcı oluşturma işlemlerini inceleyeceğiz.

### 1. **Veritabanı Oluşturma**

Yeni bir veritabanı oluşturmak için `CREATE DATABASE` komutu kullanılır.

**Örnek Kullanım:**
```sql
CREATE DATABASE Baseball;
```

Eğer veritabanı zaten varsa, hata almamak için `IF NOT EXISTS` ifadesi kullanılabilir:
```sql
CREATE DATABASE IF NOT EXISTS Baseball;
```

### 2. **Kullanıcı Oluşturma ve İzin Verme**

Yeni bir kullanıcı oluşturmak için `CREATE USER` komutu kullanılır. Daha sonra bu kullanıcıya belirli veritabanları üzerinde izinler verilebilir.

**Örnek Kullanım:**
```sql
CREATE USER 'John123'@'%' IDENTIFIED BY 'OpenSesame';
```

Bu komut, `John123` adında bir kullanıcı oluşturacak ve bu kullanıcıya herhangi bir yerden bağlanma izni verecektir.

**İzin Verme:**
```sql
GRANT ALL ON Baseball.* TO 'John123'@'%';
```

Bu komut, `John123` kullanıcısına `Baseball` veritabanındaki tüm tablolar üzerinde tüm izinleri verecektir.

---

Bu bilgilerle, MySQL'de `NULL` değerlerini, `LIMIT` ve `OFFSET` kullanımını, veritabanı ve kullanıcı oluşturma işlemlerini daha iyi anlayabilirsiniz. Bir sonraki yazıda, JOIN'ler ve alt sorgular gibi daha gelişmiş SQL konularına değineceğiz.

---