💽 MySQL

Veri tipleri

Değişken TipiAçıklamaNot
BIT0-1 (True - False) verilerini tutar.Değer atanırken tırnaksız atanır
INTTam sayı değeri tutarBasmak sayısı 1 için 0-9 arası
ENUMÖzel değişken oluşturmaDeğerler tırnaklı olarak atanır

Örnekler için değişkenler kısmına bakabilirsin.

Where Operatörleri

Detaylar için buraya tıklayabilirsin.

Tablo İşlemleri

-Ekleme

Tablo işlemleri karma Notlar

-Var olan tabloya varsayılan değerli bir sütun ekleme

Temel Fonksiyonlar

FonksiyonÖzelliği
MAXEn yüksek değeri bulur
MİNEn düşük değeri bulur
AVGOrtalama değeri bulur
COUNTAdet saysını hesaplar
SUMToplam değeri hesaplar
CONCATVerilen metinleri birleştirir

Örnekler için temel fonksiyon örnekleri kısmına bakabilirsin.

Gruplama

GROUP BY ile yapılır.

  • Tekrarlı verileri göstermez.
  • DISTINCT anahtar kelimesini kullanmaya gerek kalmaz.

Gruplama yapılmazsa tek sorgu ekrana basılır.

Stored Function

Detaylı bilgi için buraya tıklayaibilirsin.

DROP FUNCTION IF EXISTS [FunctionName];
CREATE FUNCTION [FunctionName]([ParamName] [ParamType]) RETURNS [ReturnType]
DETERMINISTIC
BEGIN
DECLARE [paramName] [param_type];
RETURN ( [select_query] );
END;
-- Kullanım Şekli
SELECT
[FunctionName]([Param])
FROM
[Table] as [TableNewName]`;
  • DROP FUNCTION IF EXIST Fonksiyon daha önceden var ise kaldırır.
  • CREATE FUNCTION Fonksiyon oluşturma
  • RETURNS Fonksiyonun değer döndürmesi
  • BEGIN Fonksiyon başlangıcı
  • DECLARE Fonksiyona özgü değişken tanımlama alanı
  • END Fonksiyon sonu

-[FunctionName]: Fonksiyonun ismi, örn: GetProductName -[ParamName]: Parametre ismi, örn: name -[ParamType]: Int, Varchar, Float ... -[ReturnType]: Fonksiyonun döndüreceği sütunun özelliği, Örn: Varchar(64), int(11), double -Deterministic: Aynı girdiler için her zaman aynı değeri üretir. -[select_query]: Örn: SELECT from table;* -*[ReturnType] ile aynı olmak zorundadır.*

Debug Bilgileri

Join

INNER JOIN hataları test etmek için LEFT JOIN kullanılır. Bu hatalar:

-Boş veri döndürmesi

olabilir.

Explain

Sorgu ile ilgili detayları gösterir.

explain SELECT * from table;

Optimizasyon

Optimizasyon sorgunun hızlı sonuç vermesi için gereklidir. Optimizasyon işlemleri için:

-Indexleme -Key ile birleştirme (inner join) -Ek fonksiyonları kaldırma -explain anahtar kelimesi ile sorgu detaylarına bakma

gibi işlemlere başvurulur.

5s'den kısa sorgular kabul edilebilir hızdadır.

Ek Kaynaklar

Optimizasyon hakkında detaylı bilgi için buraya tıklayabilirsiniz.

-MySQL'de sorguların hızlı çalışması için ne yapılmalıdır? -Indexleme neden yapılır?

MySQL Yapılandırması

MySQL yapılandırma dosyası

Yapılandırma dosyası olan my.ini dosyasını bulmak için:

  • ✲ Ctrl + R ile çalıştır uygulamasını açın
  • services.msc yazıp ENTER'a basın
  • Servis ekranında MySQL servisini bulup çift tıklayın
  • Genel sekmesi altında Path to Executable kısmında ini ile biten yol
  • Örnek Yol: C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

MySQL workbench üzerinden yapılandırma

SET GLOBAL [Ayar]=[Değer];
SET GLOBAL connect_timeout=28800;
SET GLOBAL wait_timeout=28800;
SET GLOBAL interactive_timeout=28800;

Karma yapılandırma notları

  • default-character-set=utf8

Karma Notlar

Örnekler

Temel örnekler

SELECT [ID], [Sütun] FROM [Tablo] WHERE [ID] = [Sayı];
UPDATE [Tablo] SET [Sütun] = [Değişken Tipine Uygun Değer] WHERE [ID] = [Sayı];
INSERT INTO [Tablo] VALUES ([Sütun1 Değeri], [Sütun2 Değeri]);

Tablo işlemleri

Tablo Oluşturma

CREATE TABLE IF NOT EXISTS [Tablo] (
[ID Sütunu] [Değişken Tipi] DEFAULT [Varsayılan Değer] PRIMARY KEY,
[Sütun] [Değişken Tipi]
);

Tablo değiştirme

ALTER TABLE [Tablo] ADD COLUMN [Sütun] [Değişken Tipi] DEFAULT [Varsayılan Değeri] AFTER [Önceki Sütun];
ALTER TABLE [Tablo] DROP COLUMN [Sütun];
ALTER TABLE [tablo ismi] ADD COLUMN [sütun ismi] BIT DEFAULT 0; -- veya False
ALTER TABLE [tablo ismi] ADD COLUMN [sütun ismi] INT(1) DEFAULT 1;
ALTER TABLE [tablo ismi] ADD COLUMN [sütun ismi] ENUM('0', '1') DEFAULT '0';

Yönelmek için veri tipleri linkine tıklayabilirsin.

Temel Fonksiyon Örnekleri

SELECT MAX(*) FROM Ogrenci;
SELECT MIN(*) FROM Ogrenci;
SELECT AVG(*) FROM Ogrenci;
SELECT COUNT(*) FROM Ogrenci;
SELECT ... WHERE CONCAT("product_id=", "208") = "product_id=208";

Yönelmek için temel fonksiyonlar yazısına bakabilirsin.

Karma MySQL sorgusu örnekleri

SELECT COUNT(if(`crr`.`return_reason_id` = 14, `crr`.`return_reason_id`, null)) from ...

Koşul sağlanırsa sayar.

Faydalı Kaynaklar