Kategoriler
SQL

MySQL ile Son Kayıt ID Almak

Veri tabanı tablosuna eklenen verinin kayıt kimliğini almak için LAST_INSERT_ID() deyimi kullanılır. LAST_INSERT_ID (), en son yürütülen INSERT ifadesinin bir sonucu olarak AUTO_INCREMENT sütunu için başarıyla eklenen ilk otomatik olarak oluşturulan değeri temsil eden BIGINT UNSIGNED (64-bit) bir değer döndürür. Dolayısıyla INSERT deyiminden sonra kullanmak gerekir.

Örnek;

INSERT INTO uyeler (eposta,parola) VALUES ('[email protected]',1234);
SELECT LAST_INSERT_ID();

LAST_INSERT_ID() ile dönen değeri bir değişkene tanımlayıp sonraki sorguda kullanabilirsiniz.

INSERT INTO uyeler (eposta,parola) VALUES ('[email protected]',1234);
SET @insert_id = LAST_INSERT_ID();
INSERT INTO log(uye,mesaj) VALUES (@insert_id,'Kayıt eklendi.');
INSERT INTO uyeler (id,eposta,parola) VALUES (null,'[email protected]',1234);
SET @insert_id = LAST_INSERT_ID();
INSERT INTO log(uye,mesaj) VALUES (@insert_id,'Kayıt eklendi.');

LAST_INSERT_ID() ile dönen değeri değişkene tanımlamadan da sonraki sorguda kullanabilirsiniz.

INSERT INTO uyeler (eposta,parola) VALUES ('[email protected]',1234);
INSERT INTO log(uye,mesaj) VALUES (LAST_INSERT_ID(),'Kayıt eklendi.');
INSERT INTO uyeler (id,eposta,parola) VALUES (null,'[email protected]',1234);
INSERT INTO log(uye,mesaj) VALUES (LAST_INSERT_ID(),'Kayıt eklendi.');

LAST_INSERT_ID() deyiminin değer döndürmesi için tablonun AUTO_INCREMENT sütününe sahip olması ve INSERT deyiminden sonra kullanılması gerektiğini unutmayın.

Kategoriler
SQL

MySQL ile Veri Eklemek

Veri tabanında veriler tablolar aracılığıyla saklanır. Veri tabanı tablosuna veri eklemek için INSERT söz dizimi (deyimi) kullanılır. INSERT, mevcut bir tabloya yeni satır ekleyerek veriyi veri tabanına kaydetmiş olur.

Söz dizimi:

INSERT INTO table_name (structure1,structure2,...) VALUES(data1,data2,...)

Örnek:

INSERT INTO uyeler (id,eposta,parola) VALUES (1,'[email protected]',1234)

İfadeyi (söz dizimi) yazarken yapı adlarının latin karakterler ve string verilerin tek ve/veya çift tırnak kullanmanız gerekir. Integer verilerde tırnak gerekmiyor. Ayrıca VALUES yerine VALUE kullanabilirsiniz.

INSERT INTO uyeler (id,eposta,parola) VALUE (1,'[email protected]',1234)

Yapı adlarının olmadığı ifadeyi de kullanabilirsiniz. Burada dikkat etmeniz gereken veri kısmına tablodaki tüm yapı adlarına karşılık geler değerleri sırasıyla girmeniz gerekir. Otomatik artan veya boş bırakmak istediğiniz yapıları (sütünları) null değeri girebilirsiniz

INSERT INTO uyeler VALUES (NULL,'[email protected]',1234)

Virgül ile ayırarak birden çok satırlık verileri ekleyebilirsiniz. Bu işlem birden fazla satırlık verileri tek sorguyla tabloya ekleme kolaylığı sağlıyor.

INSERT INTO uyeler (id,eposta,parola) VALUES (1,'[email protected]',123), (2,'[email protected]',456), (3,'[email protected]',789);
Kategoriler
Genel

cPanel ile Ücretsiz Let’s Encrypt SSL Kurulum

cPanel’e ücretsiz Let’s Encrypt ssl sertifikasını kurmak için aşağıdaki adımları takip edin.

cPanel oturumu açın.

SSL/TLS Status butonuna tıklayın.

Alan adınızı bulun ve seçin.

Eğer “www” alt alan adını da eklemek istiyorsanız seçin.

Run “AutoSSL” butonuna tıklayın.

Kurulum işlemi başlamış olacak.

Bu işlem biraz uzun sürer.

Bazen işlem tamamlanamamaktadır. Böyle durumlarda tekrar deneyin.

Kurulumu tamamlamış oldu.

Sertifika bilgilerini görmek için “Sertifika Görüntüle” butonuna tıklayabilirsiniz.

Bilgileri buradan görebilirsiniz.

Kurulum işleminden sonra sertifikayı tarayıcıda görelim.

Siteyi açın.

“Sayfa bilgisi” butonuna tıklayın.

“Sertifika” butonuna tıklayın.

Açılan pencerede ssl sertifika bilgilerini göreceksiniz.

Kategoriler
SQL

MySQL ile Index Silmek

MySQL ‘de tabloların indexlerini silmek için DROP INDEX söz dizimi kullanılır. Bu ifade, indexi kaldırmak için bir ALTER TABLE deyimiyle eşleştirilir.

Söz Dizimi;
ALTER TABLE `table_name` DROP PRIMARY KEY;
ALTER TABLE `table_name` DROP INDEX `index_name`;

Örnek;
ALTER TABLE `orders` DROP PRIMARY KEY;
ALTER TABLE `orders` DROP INDEX `ID`;

Kategoriler
SQL

MySQL ile Index Değiştirmek

MySQL ‘de index değiştirmek için kullanılan bir söz dizimi yok. Index değiştirmek veya güncellemek için mevcut index silinip yeni bir index oluşturulur.

Söz Dizimi;
ALTER TABLE table_name DROP PRIMARY KEY, ADD PRIMARY KEY (`column_name`);
ALTER TABLE table_name DROP INDEX `column_name`, ADD UNIQUE `column_name` (`column_name`)
ALTER TABLE table_name DROP INDEX `column_name`, ADD INDEX `column_name` (`column_name`);

Örnek;

ALTER TABLE `orders` DROP PRIMARY KEY, ADD PRIMARY KEY (`KAYIT_ID`);
ALTER TABLE `orders` DROP INDEX `SIPARIS_ID`, ADD UNIQUE `SIPARIS_ID` (`SIPARIS_ID`);
ALTER TABLE `orders` DROP INDEX `CUSTOMER_ID`, ADD INDEX `CUSTOMER_ID` (`CUSTOMER_ID`);

Kategoriler
SQL

MySQL ile Index Eklemek

Indexler, belirli sütun değerlerine sahip satırları hızlı bir şekilde bulmak için kullanılır. Bir indeks olmadan, MySQL ilk satırla başlayıp ve ardından ilgili satırları bulmak için tüm tabloyu okur. Tablo ne kadar büyükse, maliyeti o kadar artar. Tabloda söz konusu sütunlar için bir index varsa, MySQL tüm verilere bakmak zorunda kalmadan veri dosyasının ortasında aranacak konumu hızla belirleyebilir. Bu, her satırı sırayla okumaktan çok daha hızlıdır.

MySQL indekslerinin çoğu (PRIMARY KEY, UNIQUE, INDEX ve FULLTEXT) B-trees ‘de saklanır. İstisnalar: Uzamsal veri türlerindeki indexler B-trees kullanır; MEMORY tabloları ayrıca hash indexlerini destekler; InnoDB, FULLTEXT indexleri için ters çevrilmiş listeler kullanır.

Söz Dizimi:
ALTER TABLE table_name ADD INDEX_TYPE `index_name` (column_name1, column_name2);
ALTER TABLE table_name ADD PRIMARY KEY(column_name);
ALTER TABLE table_name ADD UNIQUE(column_name);
ALTER TABLE table_name ADD INDEX(column_name);

Örnek:
ALTER TABLE orders ADD UNIQUE `index1` (SIPARIS_ID);
ALTER TABLE orders ADD INDEX `index2` (MUSTERI_ID,MUSTERI_NO);
ALTER TABLE orders ADD PRIMARY KEY(KAYIT_ID);
ALTER TABLE orders ADD UNIQUE(SIPARIS_ID);
ALTER TABLE orders ADD INDEX(MUSTERI_ID);

Kategoriler
SQL

MySQL ile Tablo Adını Değiştirmek

MySQL ‘de RENAME TABLE, bir veya daha fazla tabloyu yeniden adlandırır. Mevcut tablo için ALTER ve DROP ayrıcalıklarına ve yeni tablo için CREATE ve INSERT ayrıcalıklarına sahip olmanız gerekir.

Söz Dizimi;
RENAME TABLE `table_name` TO `new_table_name`;
RENAME TABLE `table_name` TO `new_table_name`, `table_name2` TO `new_table_name2`;
ALTER TABLE `old_table` RENAME `new_table`;

Örnek;
RENAME TABLE `tablo1` TO `tablo2`;
RENAME TABLE `tablo1` TO `tablo2`, `tablo3` TO `tablo4`;
ALTER TABLE `tablo1` RENAME `tablo2`;

Kategoriler
SQL

MySQL ile Tablo Silmek

MySQL ‘de veritabanı tablosunu silmek için DROP TABLE söz dizimi kullanılır. DROP TABLE, bir veya daha fazla tabloyu kaldırır. Her tablo için DROP ayrıcalığına sahip olmanız gerekir.

Söz Dizimi:
DROP TABLE table_name

Örnek:
DROP TABLE deneme_tablo

Birden fazla tabloyu silmek için bu sorguyu kullanın.

DROP TABLE `tablo1`, `tablo2`, `tablo3`;

Tablo eğer yoksa sorgu hata vereğinden, tablonun varlığını sorgulayarak kullanmak daha doğru olur.

DROP TABLE IF EXISTS `deneme_tablo`;
DROP TABLE IF EXISTS `tablo1`, `tablo2`, `tablo3`;

Bu sorgu tablo eğer varsa siler. Yoksa tablonun olmadığına dair bilgi döner.

Kategoriler
SQL

MySQL ile Tablo Değiştirmek

MySQL ‘de tablo güncellemek için ALTER TABLE söz dizimi kullanılır. ALTER TABLE söz dizimi, tabloda yapılacak ekleme, güncelleme ve silme işlemine göre şekil almaktadır.

Söz Dizimi:
ALTER TABLE `table_name` ADD `column_name` column_definition;
ALTER TABLE `table_name` CHANGE `current_column_name` `change_column_name` type_name column_definition;
ALTER TABLE `table_name` MODIFY `current_column_name` type_name column_definition;
ALTER TABLE `table_name` DROP `column_name`;

Örnek:
ALTER TABLE `deneme_tablo` ADD `sutun_isim` VARCHAR(50) NOT NULL;
ALTER TABLE `deneme_tablo` CHANGE `sutun_isim` `sutun_isim2` INT(10) NOT NULL;
ALTER TABLE `deneme_tablo` MODIFY`sutun_isim` INT(10) NOT NULL;
ALTER TABLE `deneme_tablo` DROP `sutun_isim`;

MySQL ‘de tablo düzenleme işleminde bir çok varyasyon mevcuttur. Bunlar şu şekilde;

Söz dizimine tablonun adının başına veritabanı adını ekleyebilirsiniz;
ALTER TABLE `deneme_db`.`deneme_tablo` ADD `sutun_isim` VARCHAR(50) NOT NULL;

Tabloya eklenecek sütün eğer tüm sutunların en başına eklenecek ise FIRST ifadesi eklenir:
ALTER TABLE `deneme_tablo` ADD `sutun_isim` VARCHAR(50) NOT NULL FIRST;

Mevcut sütünün sıralamasını en başa almak için;
ALTER TABLE `deneme_tablo` CHANGE `ID` `ID` INT(10) NOT NULL FIRST;

Eklenecek sütün istenilen bir sütünün sonuna eklenecek ise AFTER sütün_ad eklenir;
ALTER TABLE `deneme_tablo` ADD `sutun_isim` VARCHAR(50) NOT NULL AFTER `sutun1`;

Mevcut sütünün bir sütünün sonrasına taşımak için AFTER sütün_ad kullanılır;
ALTER TABLE `deneme_tablo` CHANGE `sutun_isim` `sutun_isim` INT(10) NOT NULL AFTER `sutun1`;

Sütunları Yeniden Adlandırma, Yeniden Tanımlama ve Yeniden Sıralama

CHANGE, MODIFY ve ALTER yan tümceleri, mevcut sütunların adlarının ve tanımlarının değiştirilmesini sağlar. Bu karşılaştırmalı özelliklere sahipler:

CHANGE: Bir sütunu yeniden adlandırabilir ve tanımını veya her ikisini birden değiştirebilir. MODIFY’den daha fazla kabiliyete sahiptir, ancak bazı işlemler için kolaylık pahasına. CHANGE, sütunun yeniden adlandırılmaması durumunda iki kez adlandırılmasını gerektirir. FIRST veya AFTER ile sütunları yeniden sıralayabilirsiniz.

MODIFY: Bir sütun tanımını değiştirebilir ancak adını değiştiremez. Bir sütun tanımını yeniden adlandırmadan değiştirmek için CHANGE daha kullanışlıdır. FIRST veya AFTER ile sütunları yeniden sıralayabilirsiniz.

ALTER: Yalnızca bir sütun varsayılan değerini değiştirmek için kullanılır.

CHANGE, standart SQL için bir MySQL uzantısıdır. MODIFY, Oracle uyumluluğu için bir MySQL uzantısıdır.

Kategoriler
SQL

MySQL ile Tablo Oluşturmak

MySQL ile veritabanında tablo oluşturmak için CREATE TABLE söz dizimi kullanılır. Sadece CREATE TABLE söz dizimi kullanmak yeterli değildir. En az bir adet kolon ismi (veri tipi ile beraber) eklemek gerekir. Ayrıca tabloların depolama motorları mevcuttur. Bu motorlar verilerin tabloya nasıl yazılacağına, okunacağına, güncelleneceğini karar veren modüldür. innoDB ve MyISAM, MySQL de en çok kullanılan motorlardır.Söz diziminden motoru eklemez iseniz tabloya varsayılan motor tanımlanır. MySQL ‘de varsayılan depolama motoru innoDB ‘dir.

Söz Dizimi:
CREATE TABLE table_name (`column_name` data_type);
CREATE TABLE table_name (`column_name` data_type NOT NULL) ENGINE=engine_name DEFAULT CHARSET=charset_name COLLATE=collation_name;

Örnek:
CREATE TABLE denemetablo (`KOLON_ADI` INT NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
CREATE TABLE denemetablo (`ID` INT(10) NOT NULL AUTO_INCREMENT) ENGINE=innoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

SHOW CREATE TABLE ile adlandırılmış tabloyu oluşturan CREATE TABLE ifadesini gösterebilirsiniz.

SHOW CREATE TABLE table_name