Merhaba arkadaşlar, SQL makale dizimizin yeni bir bölümü ile karşınızdayım. 
Bundan önceki sırası ile; 

1-) SQL'de Tablolar Nedir? ve Nasıl Oluşturulur?
2-) SQL'de Tabloları Değiştirme
3-) SQL'de Tabloları Silme İşlemi

Makalelerinden sonra şimdi ise artık veri işlemeye geçebiliriz. Diğer 3 makaleyi okuduğunuzu ve uyguladığınızı varsayıyorum ve hemen konuyu uzatmadan başlıyorum. 

Öncelikle veri eklemenini birden fazla yolu bulunmaktadır. Bunlar Manuel ekleme, Kopyalama ve Otomatik ekleme olarak 3'e ayırdık ve bu makalede manuel veri ekleme ile başlayacağız. 

SQL'e veri eklemek için genel sözdizimi şu şekildedir:

INSERT INTO table_name
(column1, column2, . . . columnN)
VALUES
(value1, value2, . . . valueN);

Daha önceden oluşturduğumuz factoryEmployees (Önceki makalelerimde bulunuyor.) tablosuna tek bir veri satırı ile yüklemek için aşağıdaki ifadeyi çalıştırın :

INSERT INTO factoryEmployees
(name, position, department, hourlyWage, startDate)
VALUES
('Agnes', 'thingamajig foreman', 'management', 26.50, '2017-05-01');

Çıktı : 

Query OK, 1 row affected (0.00 sec)

Bu ifade, INSERT INTOanahtar sözcüklerle başlar ve ardından verileri eklemek istediğiniz tablonun adı gelir. Tablo adının ardından, ifadenin veri ekleyeceği sütunların bir listesi parantez içine alınır. Sütun listesinden sonra VALUESanahtar kelime ve ardından parantez içine alınmış ve virgüllerle ayrılmış bir değerler kümesi.

Sütunları listelediğiniz sıra önemli değildir. Sağladığınız değerlerin sırasının sütunların sırasına uygun olduğunu unutmamak önemlidir. SQL her zaman verilen ilk değeri listelenen ilk sütuna, ikinci değeri sonraki sütuna vb. Eklemeye çalışır. Örnek olarak, aşağıdaki INSERTifade başka bir veri satırı ekler, ancak sütunları farklı bir sırada listeler:

INSERT INTO factoryEmployees
(department, hourlyWage, startDate, name, position)
VALUES
('production', 15.59, '2018-04-28', 'Jim', 'widget tightener');

Çıktı : 

Query OK, 1 row affected (0.00 sec)

Değerleri doğru hizalamazsanız SQL, verilerinizi yanlış sütunlara girebilir. Ek olarak, bu örnekte olduğu gibi, değerlerden herhangi biri sütunun veri türüyle çakışırsa bir hataya neden olur:

INSERT INTO factoryEmployees
(name, hourlyWage, position, startDate, department)
VALUES
('Louise', 'doodad tester', 16.50, '2017-05-01', 'quality assurance');

Çıktı : 

ERROR 1366 (HY000): Incorrect decimal value: 'doodad tester' for column 'hourlyWage' at row 1

Belirttiğiniz her sütun için bir değer sağlamanız gerekse de, yeni bir veri satırı eklerken tablodaki her sütunu belirtmeniz gerekmediğini unutmayın. Atladığınız sütunların hiçbirinde bu durumda bir hataya neden olacak bir kısıtlama olmadığı sürece (örneğin NOT NULL), MySQL NULLbelirtilmemiş sütunlara eklenecektir :

INSERT INTO factoryEmployees
(name, position, hourlyWage)
VALUES
('Harry', 'whatzit engineer', 26.50);

Çıktı : 

Query OK, 1 row affected (0.01 sec)

Tablodaki her sütun için değerleri içeren bir satır girmeyi planlıyorsanız, sütun adlarını eklemenize gerek yoktur. Girdiğiniz değerlerin, sütunların tablonun tanımında tanımlandığı sırayla yine de aynı olması gerektiğini unutmayın.

Bu örnekte, listelenen değerler, factoryEmployee tablosundan CREATE TABLE ifadesinde sütunların tanımlandığı sırayla hizalanır :

INSERT INTO factoryEmployees
VALUES
('Marie', 'doodad welder', 'production', 27.88, '2018-03-29');

Çıktı : 

Query OK, 1 row affected (0.00 sec)

Ayrıca, her satırı virgülle ayırarak aynı anda birden çok kayıt ekleyebilirsiniz, örneğin:

INSERT INTO factoryEmployees
VALUES
('Giles', 'gizmo inspector', 'quality assurance', 26.50, '2019-08-06'),
('Daphne', 'gizmo presser', 'production', 32.45, '2017-11-12'),
('Joan', 'whatzit analyst', 'quality assurance', 29.00, '2017-04-29');

Çıktı : 

Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

 

İşte bu kadar yani özetlemek gerekirse veri eklerken Insert Into ifadesini kullanıyoruz ve ardından tablomuzdaki alanları yazıp Values ile karşılıklarınızı yazıyoruz ancak tablodaki alanları yazmadan da direk ekleme yapabiliriz bu seferde tablomuzdaki sıralamaya dikkat etmemiz gerekecektir. 

Bir sonraki SQL makalemizde görüşmek üzere sağlıkla kalın...