İçeriğe atla

SQL

Vikipedi, özgür ansiklopedi
13.09, 30 Ocak 2024 tarihinde 46.32.167.11 (mesaj) tarafından oluşturulmuş 31410004 numaralı sürüm

SQL, (İngilizce "Structured Query Language", Türkçe: Yapılandırılmış Sorgu Dili, telaffuz: ɛs kjuː ˈɛl/) verileri yönetmek ve tasarlamak için kullanılan bir dildir. SQL, kendi bir programlama dili olmamasına rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veri tabanı üzerinde işlem yapılabilir; veritabanlarında bulunan sistemlere bilgi ekleme, bilgi değiştirme, bilgi çıkarma ve bilgi sorgulama için kullanılmaktadır. Özellikle de ilişkisel veritabanı sistemleri üzerinde yoğun olarak kullanılmaktadır. SQL'e özgü cümleler kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir.



1. Bütün işçilərin adlarını(first_name) və soyadlarını(last_name) seçin:

2. İşçilərdən maaşı(salary) 10000-dən çox olanların e-poçt(email) ünvanlarını seçin:

3. Maaşı(salary) 5000 və 10000 arasında olan və ya meneceri(manager_id) 101 nömrəli olan işçiləri tapın:

4. Adında (first_name) 'a' hərfi olan və ya soyadında (last_name) 'e' hərfi olan işçiləri tapın:

5. Vəzifəsi (job_id) 'IT_PROG' olan və maaşı (salary) 6000-dən çox olan işçiləri tapın:

6. Adında (first_name) 'e' hərfi olan işçiləri tapın

7. E-poçtu (email) 'gmail.com' domaini ilə bitən işçiləri tapın:

8. Soyadında (last_name) 'son' ifadəsi olan işçiləri tapın:

9. Maaşı (salary) 3000 və 7000 arasında olan işçiləri tapın:

10. İşəgötürəlmə tarixi (hire_date) 1987 və 1990-cı illər arasında olan işçiləri tapın:

11. Departament id-si (department_id) 20 və 100 arasında olan işçiləri tapın

12. Bütün işçiləri maaşa (salary) görə azalan sıra ilə sıralayın:

13. Bütün işçiləri soyadlarına (last_name) görə artan sıra ilə sıralayın:

14. Bütün işçiləri işəgötürəlmə tarixinə (hire_date) görə azalan sıra ilə sıralayın:

15. Bütün müxtəlif iş vəzifələrini tapın:

16. Bütün müxtəlif departament id-lərini tapın:

17. Müxtəlif idarəçi id-lərini tapın:

18. 5 yeni bir işçi əlavə edin:

19. Bütün IT proqramçılarının (IT_PROG) maaşını 200 artırın:

20. E-poçt ünvanında 'example.com' olan bütün işçilərin telefon nömrəsini '555-9999' etmək:

21. Maaşı 7000-dən çox olan bütün işçilərin maaşını 10% artırmaq:

22. İdarəçi id-si 101 olan bütün işçilərin idarəçisini 102 etmək:

23. İdarəçi id-si 100 olan bütün işçiləri silin:

24. Maaşı 3000-dən az olan bütün işçiləri silin:

25. Departament id-si 30 olan bütün işçiləri silin:

26. İş vəzifəsi 'SA_REP' olan bütün işçiləri silin:

27. İşə qəbul tarixi 1990-cı ildən əvvəl olan bütün işçiləri silin:

1.SELECT first_name, last_name FROM employees;

2.SELECT email FROM employees WHERE salary > 1000; 3.SELECT * FROM emplooyes WHERE (salary BETWEEN 5000 AND 10000) OR manager_id = 101; 4.SELECT * FROM emplooyes WHERE first_name LIKE '%a%' OR last_name LIKE '%e%'; 5.SELECT * FROM emplooyes WHERE job_id = 'IT_PROG' AND salary > 6000; 6.SELECT * FROM emplooyes WHERE first_name LIKE '%e%'; 7.SELECT * FROM emplooyes WHERE email LIKE '%@gmail.com%'; 8.SELECT * FROM emplooyes WHERE last_name LIKE '%son%'; 9.SELECT * FROM emplooyes WHERE salary BETWEEN 3000 AND 7000; 10.SELECT * FROM emplooyes WHERE hire_date BETWEEN 1987 AND 1990; 11.SELECT * FROM emplooyes WHERE department_id 20 AND 100; 12.SELECT * FROM emplooyes ORDER BY salary DESC; 13.SELECT * FROM emplooyes ORDER BY last_name ASC; 14.SELECT * FROM emplooyes ORDER BY hire_date DESC; 15.SELECT DISTINCT job_id FROM employees; 16.SELECT DISTINCT department_id FROM employees; 17.SELECT DISTINCT manager_id FROM employees;

19.UPDATE employees SET salary = salary + 200 WHERE job_id = 'IT_PROG'; 20.UPDATE employees SET phone_number = '555-9999' WHERE email LIKE '%example.com'; 21.UPDATE employees SET salary = salary * 1.10 WHERE salary > 7000; 22.UPDATE employees SET manager_id = 102 WHERE manager_id = 101; 23.DELETE employees WHERE manager_id = 100; 24.DELETE employees WHERE salary < 3000; 25.DELETE employees WHERE department_id = 30; 26.DELETE employees WHERE job_id = 'SA_REP'; 27.DELETE employees WHERE hire-date < TO_DATE('01/01/1990');

Tarihçe

Veritabanı yaklaşımı ile birlikte bir veri sorgulama diline veya aracına ihtiyaç duyulmuştur. İlk başta matematiksel bir sözdizimine sahip olan SQUARE adlı bir dil geliştirilmiştir. Geniş kullanıcı kitleleri tarafında kolay kullanılabilmesi için matematiksel söz dizimli SQUARE dilinden vazgeçilerek, İngilizceye benzer sözdizimine sahip bir dil oluşturulmuş ve SEQUEL olarak adlandırılmıştır. Daha sonra da bu SEQUEL dili, İngilizce söylenişine paralel olarak SQL olarak adlandırılmıştır.

SQL dili ilişkisel alanda büyük ilgi görmüş ve İlişkisel Veri Tabanı Yönetim Sistemlerinin (İVTYS) tümünde yer alan standart dil görünümü kazanmıştır. Bu nedenle Veri Tabanı konusunda çalışan tüm bilişim teknik personeli tarafından bilinmesi gereken bir dil konumundadır.

Veri tanımlama olanakları

SQL veri tanımlama deyimlerinden başlıcaları şunlardır:

CREATE TABLE tablo_adi
Yeni bir tablo oluşturmak için kullanılır. Alan isimleri yazılırken sona virgül konulur ve son satır olan işlemimizde virgül konmadan parantez kapatılır.
CREATE TABLE tabloilceler (
  ilceNo mediumint(8) unsigned DEFAULT '0' NOT NULL,
  ilce varchar(30) NOT NULL,
  postakodu varchar(5),
  ilceTel char(3),
  plakaKodu char(2) NOT NULL
)
ALTER TABLE tablo_adı
Yeni bir sütun eklemek, sütunun tipini veya uzunluğunu değiştirmek vb. yapısal değişiklikler yapılması için kullanılır.
DROP TABLE tablo_adı
Tabloyu içerisindeki verilerle birlikte siler.
TRUNCATE TABLE tablo_adı
Tablodaki tüm verileri siler, tablo yapısını korur.:
CREATE VIEW görüş_adı
Görüntü oluşturmak için kullanılır
DROP VIEW görüş_adı
Görüntüyü siler
CREATE INDEX indeks_adı
Tablonun (en azından bir) sütun adı üzerinde indeks oluşturmak için kullanılır.
DROP INDEX indeks_adı
Oluşturulan indeksleri veri tabanından kaldırmak için kullanılır.

Veri işleme olanakları

SELECT deyimi
Select deyimi, ilişkili veri tabanından veri almak için kullanılır.:SELECT ilçe, postakodu FROM tabloIlceler WHERE plakaKodu = '34'
İstanbul'un ilçeleri ile posta kodlarını gösterir
UPDATE deyimi
Update deyimi, ilişkili veri tabanındaki verileri güncellemek için kullanılır.:UPDATE tabloIlceler SET postakodu = '06720' WHERE ilce = 'Bala'
Bala'nın posta kodunu değiştirir
INSERT deyimi
Insert deyimi, ilişkili veri tabanına veri eklemek için kullanılır.:INSERT INTO tabloIlceler VALUES (, 'Yenişehir', , , '53')
Yeni veriler ekler
DELETE deyimi
Delete deyimi, ilişkili veri tabanından veri silmek için kullanılır.:DELETE FROM tabloIlceler WHERE plakaKodu = '53'
plakaKodu 53 olan bütün verileri siler

SQL dilini kullanan veritabanları

Dış bağlantılar