INSERT INTO nedir?
INSERT INTO , verileri tablolarda saklamak için kullanılır. INSERT komutu, verileri depolamak için tabloda yeni bir satır oluşturur. Veriler genellikle veritabanının üzerinde çalışan uygulama programları tarafından sağlanır.
Temel sözdizimi
INSERT INTO MySQL komutunun temel sözdizimine bakalım:
INSERT INTO `tablo_adı` (sütun_1, sütun_2,…) DEĞERLER (değer_1, değer_2,…);
İŞTE
- INSERT INTO "tablo_adı", MySQL sunucusuna "tablo_adı" adlı bir tabloya yeni bir satır eklemesini söyleyen komuttur.
- (sütun_1, sütun_2,…) yeni MySQL satırında güncellenecek sütunları belirtir
- 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ğıdakiler dikkate alınmalıdır:
- 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 sağlanmalıdır.
- Tarih veri türleri - tarih değerlerini 'YYYY-AA-GG' biçiminde tek tırnak içine alın.
Misal:
Veritabanına eklenmesi gereken aşağıdaki yeni kütüphane üyeleri listesine sahip olduğumuzu varsayalım.
Tam isimler | Doğum tarihi | Cinsiyet | Fiziksel adres | posta adresi | İletişim numarası | E |
---|---|---|---|---|---|---|
Leonard Hofstadter | Erkek | Woodcrest | 0845738767 | |||
Sheldon Cooper | Erkek | Woodcrest | 0976736763 | |||
Rajesh Koothrappali | Erkek | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | Erkek | 0987636553 | |||
Howard Wolowitz | 24/08/1981 | Erkek | Güney Parkı | Posta Kutusu 4563 | 0987786553 | Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir. |
Verileri tek tek EKLEYelim. Leonard Hofstadter ile başlayacağız. İletişim numarasını sayısal bir veri türü olarak ele alacağız ve numarayı tek tırnak içine almayacağız.
INSERT INTO "üyeler" ("tam_adlar", "cinsiyet", "fiziksel_adres", "iletişim_numarası") DEĞERLER ('Leonard Hofstadter', 'Erkek', 'Woodcrest', 0845738767);
Yukarıdaki komut dosyasını çalıştırmak, Leonard'ın iletişim numarasından 0'ı düşürür. Bunun nedeni, değerin sayısal bir değer olarak ele alınması ve başlangıçtaki sıfırın (0) anlamlı olmadığı için atılmasıdır.
Bu tür sorunları önlemek için, değer aşağıda gösterildiği gibi tek tırnak içine alınmalıdır -
INSERT INTO "üyeler" ("tam_adlar", "cinsiyet", "fiziksel_adres", "iletişim_numarası") DEĞERLER ('Sheldon Cooper', 'Erkek', 'Woodcrest', '0976736763');
Yukarıdaki durumda sıfır (0) düşürülemeyecektir
Doğru değerler doğru sütunlarla eşleştirildiği sürece sütunların sırasını değiştirmenin MySQL'deki INSERT sorgusu üzerinde hiçbir etkisi yoktur.
Aşağıda gösterilen sorgu, yukarıdaki noktayı göstermektedir.
INSERT INTO "üyeler" ("iletişim_numarası", "cinsiyet", "tam_adlar", "fiziksel_adres") DEĞERLER ('0938867763', 'Erkek', 'Rajesh Koothrappali', 'Woodcrest');
Yukarıdaki sorgular doğum tarihi sütununu atladı. Varsayılan olarak MySQL, INSERT sorgusunda ihmal edilen sütunlara NULL değerler ekler.
Şimdi doğum tarihi verilen Leslie kaydını ekleyelim. Tarih değeri, 'YYYY-AA-GG' biçimi kullanılarak tek tırnak içine alınmalıdır.
INSERT INTO "üyeler" ("tam_adlar", "doğum_tarihi", "cinsiyet", "fiziksel_adres", "iletişim_numarası") DEĞERLER ('Leslie Winkle', '1984-02-14', 'Erkek', 'Woodcrest', ' 0987636553 ');
Yukarıdaki sorguların tümü sütunları belirledi ve bunları MySQL insert ifadesindeki değerlere eşledi. Tablodaki TÜM sütunlar için değerler sağlıyorsak, MySQL ekleme sorgusundaki sütunları çıkarabiliriz.
Misal:-
INSERT INTO "members` VALUES (9, 'Howard Wolowitz', 'Male', '1981-08-24',
'SouthPark', 'PO Box 4563', '0987786553', 'lwolowitz [at] email.me') ;
Şimdi üye tablosundaki tüm satırları görüntülemek için SELECT deyimini kullanalım.
SELECT * FROM `members`;
Üye numarası | tam_ isimler | Cinsiyet | doğum tarihi | fiziksel adres | posta adresi | contct_ number | e-posta |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Kadın | 21-07-1980 | Birinci Cadde Parsel No 4 | Özel Çanta | 0759 253 542 | Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir. |
2 | Janet Smith Jones | Kadın | 23-06-1980 | Melrose 123 | BOŞ | BOŞ | Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir. |
3 | Robert Phil | Erkek | 12-07-1989 | 3. Sokak 34 | BOŞ | 12345 | Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir. |
4 | Gloria Williams | Kadın | 14-02-1984 | 2. Cadde 23 | BOŞ | BOŞ | BOŞ |
5 | Leonard Hofstadter | Erkek | BOŞ | Woodcrest | BOŞ | 845738767 | BOŞ |
6 | Sheldon Cooper | Erkek | BOŞ | Woodcrest | BOŞ | 976736763 | BOŞ |
7 | Rajesh Koothrappali | Erkek | BOŞ | Woodcrest | BOŞ | 938867763 | BOŞ |
8 | Leslie Winkle | Erkek | 14-02-1984 | Woodcrest | BOŞ | 987636553 | BOŞ |
9 | Howard Wolowitz | Erkek | 24-08-1981 | Güney Parkı | Posta Kutusu 4563 | 987786553 | Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir. |
Leonard Hofstadter'ın irtibat numarasının, irtibat numarasından sıfırı (0) düşürdüğüne dikkat edin. Diğer kontak numaraları başlangıçta sıfırı (0) düşürmemiştir.
Başka bir Tablodan Tabloya Eklemek
INSERT komutu, 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 pratik bir örneğe bakalım. Tanıtım amaçlı film kategorileri için sahte bir tablo oluşturacağız. Yeni kategoriler tablosunu kategoriler_arşi olarak adlandıracağız. Aşağıda gösterilen komut dosyası tabloyu oluşturur.
CREATE TABLE "kategoriler_arşi" ("kategori_kimliği` int (11) AUTO_INCREMENT," kategori_adı` varchar (150) VARSAYILAN NULL, "açıklamalar` varchar (500) VARSAYILAN BOŞ, BİRİNCİL ANAHTAR (" kategori_kimliği`))
Tabloyu oluşturmak için yukarıdaki komut dosyasını çalıştırın.
Şimdi kategoriler tablosundaki tüm satırları kategori arşiv tablosuna ekleyelim. Aşağıda gösterilen komut dosyası, bunu başarmamıza yardımcı olur.
INSERT INTO "kategoriler" SEÇİN * "kategoriler";
Yukarıdaki komut dosyasını çalıştırmak, kategoriler tablosundaki tüm satırları kategori arşiv tablosuna ekler. Komut dosyasının çalışması için tablo yapılarının aynı olması gerektiğini unutmayın. Daha sağlam bir komut dosyası, ekleme tablosundaki sütun adlarını, verileri içeren tablodakilerle eşleştiren koddur.
Aşağıda gösterilen sorgu, kullanımını gösterir.
INSERT INTO "kategoriler_arşi" (kategori_kimliği, kategori_adı, açıklamalar) SELECT kategori_id, kategori_adı, "kategorilerden" açıklamalar ";
SELECT sorgusunu yürütmek
SEÇİN * "kategoriler_arşi"
aşağıda gösterilen aşağıdaki sonuçları verir.
kimlik kategorisi | Kategori adı | Uyarılar |
---|---|---|
1 | Komedi | Mizah içeren filmler |
2 | Romantik | Aşk hikayeleri |
3 | Epik | Kısa hikaye filmleri |
4 | Korku | BOŞ |
5 | Bilimkurgu | BOŞ |
6 | Gerilim | BOŞ |
7 | Aksiyon | BOŞ |
8 | Romantik Komedi | BOŞ |
9 | Çizgi filmler | BOŞ |
10 | Çizgi filmler | BOŞ |
PHP Örneği: MySQL Tablosuna Ekle
Mysqli_query işlevi, SQL sorgularını yürütmek için kullanılır.
İşlev, aşağıdaki sorgu türlerini yürütmek için kullanılabilir;
- Ekle
- Seçiniz
- Güncelleme
- sil
Aşağıdaki sözdizimine sahiptir.
mysqli_query($db_handle,$query);
İŞTE,
"mysqli_query (
…) "SQL sorgularını yürüten işlevdir."$ sorgu" yürütülecek SQL sorgusudur
"$ link_identifier" isteğe bağlıdır, sunucu bağlantı bağlantısını iletmek için kullanılabilir
Misal
$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$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".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
Özet
- INSERT komutu, bir tabloya yeni veri eklemek için kullanılır. MySql, komut yürütüldüğünde yeni bir satır ekleyecektir.
- Tarih ve dize değerleri tek tırnak içine alınmalıdır.
- Sayısal değerlerin tırnak içine alınması gerekmez.
- INSERT komutu, bir tablodan diğerine veri eklemek için de kullanılabilir.