# ö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ı: Zaman İşlemleri ve İlişkisel Tablolar

SQL Notları: Zaman İşlemleri ve İlişkisel Tablolar

MySQL, zaman işlemleri ve ilişkisel tablolar üzerinde çalışmak için güçlü araçlar sunar. Milisaniye hassasiyetinde zaman işlemleri, özellikle hassas zaman kayıtları gerektiren uygulamalarda oldukça kullanışlıdır. Bire-çok ilişkiler ise hiyerarşik veri yapılarını yönetmek için idealdir. Bu araçları doğru bir şekilde kullanarak, veritabanı işlemlerinizi daha verimli hale getirebilirsiniz.

MySQL, zaman işlemleri ve ilişkisel tablolar üzerinde çalışmak için güçlü araçlar sunar. Bu yazıda, **zaman işlemleri** ve **bire-çok ilişkileri** ile ilgili temel bilgileri ve kullanım örneklerini ele alacağız.

---

### Zaman İşlemleri

MySQL, milisaniye hassasiyetinde zaman işlemleri yapmak için çeşitli fonksiyonlar ve veri tipleri sunar.

#### Milisaniye Hassasiyetinde Zaman Alma
Mevcut zamanı milisaniye hassasiyetinde almak için `NOW(3)` fonksiyonunu kullanabilirsiniz:

```sql
SELECT NOW(3);
```

Bu sorgu, milisaniye hassasiyetinde mevcut zamanı döndürür (örneğin, `2016-11-19 09:52:53.248`).

#### Javascript Timestamp'ini MySQL'e Kaydetme
Javascript timestamp'ini MySQL'e kaydetmek için `FROM_UNIXTIME` fonksiyonunu kullanabilirsiniz:

```sql
INSERT INTO table (col) VALUES (FROM_UNIXTIME(1478968868932 * 0.001));
```

Bu komut, Javascript timestamp'ini MySQL'in anlayabileceği bir formata dönüştürür ve tabloya kaydeder.

#### Milisaniye Hassasiyetinde Tablo Oluşturma
Milisaniye hassasiyetinde zaman bilgisi saklamak için aşağıdaki gibi bir tablo oluşturabilirsiniz:

```sql
CREATE TABLE times (
   dt DATETIME(3),
   ts TIMESTAMP(3)
);
```

Bu tablo, `dt` ve `ts` sütunlarında milisaniye hassasiyetinde zaman bilgisi saklar.

---

### Bire-Çok İlişkiler

Bire-çok ilişkiler, bir tablodaki bir kaydın başka bir tablodaki birden fazla kayıtla ilişkilendirilmesini ifade eder. Bu tür ilişkiler, özellikle hiyerarşik veri yapılarında yaygın olarak kullanılır.

#### Örnek Şirket Tabloları
Bir şirkette her çalışanın bir yöneticisi olduğunu ve her yöneticinin birden fazla çalışanı yönettiğini varsayalım. Bu durumda iki tablo oluşturabiliriz:

**EMPLOYEES Tablosu:**

| EMP_ID | FIRST_NAME | LAST_NAME | MGR_ID |
|--------|------------|-----------|--------|
| E01    | Johnny     | Appleseed | M02    |
| E02    | Erin       | Macklemore| M01    |
| E03    | Colby      | Paperwork  | M03    |
| E04    | Ron        | Sonswan    | M01    |

**MANAGERS Tablosu:**

| MGR_ID | FIRST_NAME | LAST_NAME |
|--------|------------|-----------|
| M01    | Loud       | McQueen   |
| M02    | Bossy      | Pants     |
| M03    | Barrel     | Jones     |

#### Belirli Bir Yöneticinin Çalışanlarını Getirme
Belirli bir yöneticinin çalışanlarını getirmek için aşağıdaki sorguyu kullanabilirsiniz:

```sql
SELECT e.emp_id, e.first_name, e.last_name
FROM employees e
INNER JOIN managers m ON m.mgr_id = e.mgr_id
WHERE m.mgr_id = 'M01';
```

Bu sorgu, `M01` yöneticisinin çalışanlarını getirir:

| EMP_ID | FIRST_NAME | LAST_NAME |
|--------|------------|-----------|
| E02    | Erin       | Macklemore|
| E04    | Ron        | Sonswan    |

#### Belirli Bir Çalışanın Yöneticisini Getirme
Belirli bir çalışanın yöneticisini getirmek için aşağıdaki sorguyu kullanabilirsiniz:

```sql
SELECT m.mgr_id, m.first_name, m.last_name
FROM managers m
INNER JOIN employees e ON e.mgr_id = m.mgr_id
WHERE e.emp_id = 'E03';
```

Bu sorgu, `E03` çalışanının yöneticisini getirir:

| MGR_ID | FIRST_NAME | LAST_NAME |
|--------|------------|-----------|
| M03    | Barrel     | Jones     |

---

### Sonuç

MySQL, zaman işlemleri ve ilişkisel tablolar üzerinde çalışmak için güçlü araçlar sunar. Milisaniye hassasiyetinde zaman işlemleri, özellikle hassas zaman kayıtları gerektiren uygulamalarda oldukça kullanışlıdır. Bire-çok ilişkiler ise hiyerarşik veri yapılarını yönetmek için idealdir. Bu araçları doğru bir şekilde kullanarak, veritabanı işlemlerinizi daha verimli hale getirebilirsiniz.