MySQL INSERT INTO Query: Tabloya Satır Nasıl Eklenir (Örnek)

⚡ Akıllı Özet

MySQL INSERT INTO sorgusu, hedef sütunları açıkça adlandırarak veya her sütun için bir değer sağlayarak bir tabloya yeni satırlar ekler. Dizeler, sayılar ve tarihlerin doğru şekilde tırnak içine alınması, saklanan verilerin bozulmadan korunup korunmayacağını belirler.

  • 📥 Temel Sözdizimi: INSERT INTO `table_name`(column_1,column_2) VALUES (value_1,value_2) ifadesi, belirtilen tabloya bir yeni satır ekler.
  • 🔤 Alıntı Kuralı: Metin ve tarih değerleri tek tırnak içinde verilmelidir; sayısal değerler tırnak işareti olmadan verilir.
  • 0️⃣ Önde Gelen Sıfır Tuzağı: Tırnak içinde belirtilmeyen bir telefon numarası rakam olarak okunur, bu nedenle baştaki sıfır sessizce atılır.
  • 🔀 Sütun Sırası: Sorgudaki sütun sırası önemsizdir, yeter ki her değer kendi karşılık gelen sütununa eşlensin.
  • 🕳️ Atlanan Sütunlar: İfadede yer almayan sütunlar NULL değerini veya tanımlanmış varsayılan değerlerini alır.
  • 📑 Masadan Masaya: INSERT INTO … SELECT ifadesi, sütun yapıları aynı olduğunda tablolar arasında satırları kopyalar.

INSERT INTO nedir?

TAKIN Veritabanı, tablolarda veri depolamak için kullanılır. INSERT komutu, veri depolamak için tabloya yeni bir satır oluşturur. Veriler genellikle veritabanı üzerinde çalışan uygulama programları tarafından sağlanır.

Temel sözdizimi

INSERT INTO'nun temel sözdizimine bakalım MySQL komut:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

İŞTE

  • INSERT INTO `tablo_adı` bunu söyleyen komuttur MySQL sunucusunun `tablo_adı' adlı tabloya yeni bir satır eklemesini sağlayın.
  • (sütun_1,sütun_2,…) yeni sütunda güncellenecek sütunları belirtir MySQL sıra
  • VALUES (değer_1, değer_2,…) yeni satıra eklenecek değerleri belirtir

Yeni tabloya eklenecek veri değerleri sağlanırken aşağıdakilere dikkat edilmelidir:

  • Dize veri türleri – tüm dize değerleri tek tırnak içine alınmalıdır.
  • Sayısal veri türleri – tüm sayısal değerler tek veya çift tırnak içine alınmadan doğrudan verilmelidir.
  • Tarih veri türleri – tarih değerlerini 'YYYY-AA-GG' biçiminde tek tırnak içine alın.

Aynı Anda Birden Çok Satır Ekleme

Tek bir INSERT sorgusu birden fazla satır içerebilir. Her değer kümesini virgülle ayırın. Tek bir sorgu, birden fazla sorgudan daha hızlıdır çünkü indeks yalnızca bir kez güncellenir.

INSERT INTO `categories`(`category_name`,`remarks`) VALUES
('Documentary', 'Factual films'),
('Musical', 'Song driven films');

MySQL INSERT INTO Sorgu Örneği

Veritabanına eklenmesi gereken yeni kütüphane üyelerinin aşağıdaki listeye sahip olduğunu varsayalım.

Tam isimler Doğum tarihi cinsiyet Fiziksel adres posta adresi İletişim numarası Eposta Adresi
Leonard Hofstadter Erkek Ağaç tepesi 0845738767
Sheldon Cooper Erkek Ağaç tepesi 0976736763
Rajesh Koothrappali Erkek Ağaç tepesi 0938867763
Leslie Winkle 14/02/1984 Erkek Ağaç tepesi 0987636553
Howard Wolowitz 24/08/1981 Erkek Güney Parkı PO Box 4563 0987786553 lwolowitz@e-posta.me

Leonard Hofstadter'dan başlayarak verileri satır satır ekleyelim. İletişim numarasını sayısal veri türü olarak ele alacağız ve numarayı tek tırnak içine almayacağız.

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);

Yukarıdaki komut dosyasını çalıştırmak, Leonard'ın iletişim numarasındaki 0'ı kaldırır, çünkü değer sayısal olarak ele alınır ve baştaki sıfırın önemi yoktur.

Bu tür sorunlardan kaçınmak için, değer aşağıdaki gibi tek tırnak içine alınmalıdır.

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');

⚠️ İpucu: Telefon numaralarını, posta kodlarını ve benzer tanımlayıcıları VARCHAR gibi bir metin sütununda saklayın. Sayısal sütunlarda baştaki sıfır saklanamaz.

Sütun Sırasını Değiştirme

Sütunların sırasını değiştirmenin INSERT sorgusu üzerinde hiçbir etkisi yoktur. MySQLDoğru değerler doğru sütunlara eşleştirildiği sürece sorun yok. Aşağıdaki sorgu bu noktayı göstermektedir.

INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');

Yukarıdaki sorgularda doğum tarihi sütunu atlandı. Varsayılan olarak, MySQL INSERT sorgusundan çıkarılan sütunlara NULL değerleri ekler.

Şimdi, doğum tarihi girilmiş olan Leslie'nin kaydını ekleyelim. Tarih değeri, 'YYYY-MM-DD' formatında tek tırnak içine alınmalıdır.

INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');

Sütun Listesini Atlamak

Yukarıdaki sorguların tümü sütunları adlandırdı ve bunları değerlere eşleştirdi. Tablodaki TÜM sütunlar için değerler sağlarsak, sütun listesi atlanabilir. MySQL sorgu ekleyin.

INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24',
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');

Şimdi şunu kullanalım SELECT ifadesi Üyeler tablosundaki tüm satırları görüntülemek için.

SELECT * FROM `members`;
Üye numarası tam_ adlar cinsiyet doğum tarihi fiziksel adres posta adresi iletişim_ numarası E-posta
1 Janet Jones Kadın 21-07-1980 4. Sokak Parsel No:XNUMX Özel Çanta +0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Kadın 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Erkek 12-07-1989 3. Sokak 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Kadın 14-02-1984 2. Sokak 23 NULL NULL NULL
5 Leonard Hofstadter Erkek NULL Ağaç tepesi NULL 845738767 NULL
6 Sheldon Cooper Erkek NULL Ağaç tepesi NULL 0976736763 NULL
7 Rajesh Koothrappali Erkek NULL Ağaç tepesi NULL 0938867763 NULL
8 Leslie Winkle Erkek 14-02-1984 Ağaç tepesi NULL 0987636553 NULL
9 Howard Wolowitz Erkek 24-08-1981 Güney Parkı PO Box 4563 0987786553 lwolowitz@e-posta.me

Dikkat ederseniz, Leonard Hofstadter'ın iletişim numarasının başındaki sıfır, tam da tahmin edildiği gibi düşmüş. Alıntı yapılan numaralarda ise sıfır korunmuş.

Başka bir Tablodan Tabloya Ekleme

INSERT komutu aynı zamanda başka bir tablodan bir tabloya veri eklemek için de kullanılabilir. Temel sözdizimi aşağıda gösterildiği gibidir.

INSERT INTO table_1 SELECT * FROM table_2;

Şimdi, categories_archive adında film kategorileri için bir örnek tablo oluşturacağız. Aşağıdaki kod parçası bunu yapacaktır. tabloyu oluşturur.

CREATE TABLE `categories_archive` ( `category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))

Yukarıdaki komutu çalıştırarak tabloyu oluşturun. Şimdi kategori tablosundaki tüm satırları kategori arşiv tablosuna ekleyelim.

INSERT INTO `categories_archive` SELECT * FROM `categories`;

Bu betiğin çalışması için tablo yapılarının aynı olması gerekir. Daha sağlam bir betik, aşağıda gösterildiği gibi, hedef tablodaki sütun adlarını verileri içeren tablodaki sütun adlarıyla eşleştirir.

INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;

Aşağıdaki SELECT sorgusunu çalıştırmak şu sonuçları verir.

SELECT * FROM `categories_archive`;
kimlik kategorisi category_name Uyarılar
1 Komedi Mizah içeren filmler
2 Romantik Aşk hikayeleri
3 Destansı Hikaye antik filmler
4 Korku NULL
5 Bilimkurgu NULL
6 Gerilim NULL
7 Action NULL
8 Romantik Komedi NULL
9 Çizgi filmler NULL
10 Çizgi filmler NULL

PHP Örnek: içine ekle MySQL tablo

Mysqli_query işlevi yürütmek için kullanılır SQL PHP'den gelen sorguları çalıştırır. Insert, Select, Update ve Delete ifadelerini aynı şekilde çalıştırır ve aşağıdaki sözdizimine sahiptir.

mysqli_query($db_handle,$query);

İŞTE,

  • “mysqli_query(…)” SQL sorgularını yürüten fonksiyondur.
  • “$query”, yürütülecek SQL sorgusudur.
  • “$db_handle”, mysqli_connect tarafından döndürülen sunucu bağlantı linkidir.

Örnek E-posta

$servername = "localhost";
$username = "alex";
$password = "yPXuPT";
$dbname = "afmznf";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO addkeyworddata(link, keyword) VALUES ('https://www.guru99.com/','1000')";

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully" . '<br>';
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

SSS

MySQL Bu işlem, yinelenen giriş hatasıyla reddedilir. Satırı sessizce atlamak için INSERT IGNORE komutunu, mevcut satırı güncellemek için ise INSERT … ON DUPLICATE KEY UPDATE komutunu kullanın.

Ekleme işleminden hemen sonra SELECT LAST_INSERT_ID() sorgusunu çalıştırın veya PHP'de mysqli_insert_id($conn) fonksiyonunu çağırın. Bu, kendi bağlantınızdaki en son satır için oluşturulan AUTO_INCREMENT anahtarını döndürür.

Kullanıcıdan gelen girdileri asla sorgu dizesine eklemeyin. Değerlerin ayrı olarak iletilmesi için bağlı parametrelere sahip hazırlanmış ifadeler kullanın. SQL ve komut olarak yürütülemez.

Evet. Yapay zekâ asistanları, elektronik tabloları veya düz metin açıklamalarını INSERT ifadelerine dönüştürür ve MySQL Tezgâh Bunları çalıştırabilirsiniz. Sütun sırasını ve tırnak işaretlerini kontrol edin, çünkü model şemayı tahmin edebilir.

Öncelikle geliştirme kopyasına ekleyin. Yapay zeka tarafından oluşturulan satırlar yabancı anahtarları bozabilir, sütun uzunluklarını aşabilir veya geçersiz tarihler oluşturabilir. Geri alınabilmesi için toplu işlemi bir işlem içinde çalıştırın.

Bu yazıyı şu şekilde özetleyin: