Data Manipulation Language - DML

Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.

Qeydləri cədvələ daxil etməli və ya cədvəldən xüsusi bir qeyd əldə etməli olduğumuzda və ya bir qeyd dəyişdirməyimiz, ya da bir qeydimizi silməyimiz və ya verilənlər bazasındakı qeydlər üzərində hər hansı bir hərəkət etməyimiz lazım olduqda, bunu yerinə yetirmək üçün bir az mühitimiz olmalıdır. DML istifadəçi istəklərini idarə etməyə kömək edir. Verilənlərin verilənlər bazasından daxil edilməsinə, silinməsinə, yenilənməsinə və alınmasına kömək edir. Gəlin onlardan bəzilərinə baxaq.

seçmək

Select əmri qeydləri qovluqdan çıxarmağa kömək edir masaları və ya verilənlər bazasındakı baxışlar. Ya bütün məlumatları cədvəldən/görünüşdən çəkir və ya şərtə əsasən xüsusi qeydlər çəkir. Verilənlər bazasındakı bir və ya daha çox cədvəldən/görünüşdən belə məlumatları ala bilər.

Əsas SELECT əmri budur

SELECT * FROM table_name; -- retrieves all the rows and columns from table table_name and displays it in tabular form.
SELECT COLUMN1, COLUMN2, COLUMN3 from table_name; -- retrieves only 3 columns from table table_name
SELECT t1.COLUMN1, t2.COLUMN1
FROM table_name1 t1, table_name2 t2
WHERE t1.COLUMN2 = t2.COLUMN2; -- Combines 2 tables and retrieves specific columns from both the tables.

SELECT-in bəzi nümunələri:
SELECT * FROM STUDENT; -- All the columns are retrieved and displayed in below format

Pin
SELECT STUDENT_NAME, ADDRESS FROM STUDENT; -- Retrieves only name and address from STUDENT table

Pin
SELECT e.EMPLOYEE_NAME, e.ADDRESS, e.PHONE_NUMBER, d.DEPARTMENT_NAME
FROM EMPLOYEE e, DEPARTMENT d
WHERE E.DEPARTMENET_ID = D.DEPARTMENT_ID; -- Displays employee name, address, phone number and the department name for which he works, by joining EMPLOYEE and DEPARTMENT tables.

Pin

SELECT-in ümumi sintaksisidir:

SELECT column_list FROM table-name
[WHERE Clause]
[GROUP BY clause]
[HAVING clause]
[ORDER BY clause];

Hara

HARADA Maddə - burada sorğuya filtr şərtlərini təyin edə bilərik. İstənilən sayda şərt əlavə edə bilərik.

GROUP BY - Xüsusi sütun kateqoriyalarını birlikdə birləşdirə və nəticələri göstərə bilərik. Məsələn, müxtəlif şöbələrdə çalışan bir çox işçi var. Seçim olaraq qrupdan istifadə edərək hər şöbədə neçə işçinin çalışdığını göstərə bilərik.

SELECT d.DEPATMENT_NAME, COUNT (e.DEPATMENT_ID) total_emp_count
FROM EMPLOYEE e, DEPARTMENT d
WHERE e.DEPARTMENT_ID = d.DEPARTMENT_ID – this condition pulls the matching employees
GROUP BY e.DEPARTMENT_ID;

Yuxarıdakı sorğuda say (e.DEPARTMENT_ID) əvəzinə say (1) verə bilərik. Hər ikisi eynidir.

Qrup funksiyalarından bəziləri

Saymaq - 'harada' bəndini tətbiq etdikdən sonra cədvəl / s-də qeydlərin ümumi sayını hesablayır. Maddə göstərilməyibsə, cədvəldəki qeydlərin ümumi sayını verir. Maddə ilə qruplaşdırma tətbiq olunarsa, qeydləri olduğu bəndə əsasən (əgər varsa) süzgəcdən keçirir, sonra qeydləri qrupdakı sütunlara əsasən bəndlə qruplaşdırır və qruplaşdırılan hər kateqoriyadakı qeydlərin ümumi sayını verir.

SUM - Hər ədədi sütundakı dəyəri cəmləşdirir. Bu funksiyadan bir tələbənin ümumi qiymətlərini, müəyyən bir dövrdə işçinin ümumi maaşını və s. Tapmaq üçün istifadə edə bilərik.

Orta - Sütunun ədədi dəyəri olduğu təqdirdə bir sütunun orta dəyərini verir. Məsələn: Xüsusi sinifdə iştirak edən şagirdlərin orta yaşı.

MAX - Bir sütunda maksimum dəyər verir. Məsələn, sinifdə ən yüksək bal toplayan MAX funksiyası ilə əldə edilə bilər.

MIN- Bir sütunda minimum dəyəri verir. Məsələn, bir şöbədə ən az maaş alan işçi MIN tərəfindən əldə edilə bilər.

Bu qrup funksiyaları bəndlə və ya onsuz qrupla istifadə edilə bilər.

Maddə var - Bu bənddən istifadə edərək qruplaşdırılmış kateqoriyalara şərtlər əlavə edə və qeydləri süzə bilərik. Məsələn, 100-dən çox işçisi olan şöbənin detallarını göstərmək istəyiriksə.

SELECT d.DEPATMENT_NAME, COUNT (e.DEPATMENT_ID) total_emp_count
FROM EMPLOYEE e, DEPARTMENT d
WHERE e.DEPARTMENT_ID = d.DEPARTMENT_ID – this condition pulls the matching employees
GROUP BY e.DEPARTMENT_ID
HAVING COUNT(e.DEPATMENT_ID)>100; -- filters more than 100 employees present in specific department. We cannot give this condition in the where clause as this is the result of Group by clause.

SİFARİŞ - Bu bənd alınan qeydləri düzəltməyə kömək edir. Varsayılan olaraq, qeydləri birincil açarın artan qaydasında göstərir. Fərqli sütunlara əsasən sıralamalıyıqsa, SİFARİŞ BY bəndində göstərməliyik. Azalan sifariş ilə sifariş verməyimiz lazımdırsa, sütun siyahısından sonra DESC açar sözü əlavə edilməlidir.
SELECT * FROM EMPLOYEE
ORDER BY EMPLOYEE_NAME DESC; -- Displays all records in descending order of employee name

|| istifadə edərək iki və ya daha çox sütunu bir sütuna birləşdirə bilərik seçin bəyanatında.
SELECT EMP_FIRST_NAME || ‘  ‘ || EMP_LAST_NAME  as emp_name
FROM EMPLOYEE WHERE EMP_ID = 1001; -- Here first name and last name of employee with id 1001 to show it as emp_name

Taxmaq

Insert ifadəsi cədvələ yeni qeydlər daxil etmək üçün istifadə olunur. Taxmaq üçün ümumi sintaksis belədir:

INSERT INTO TABLE_NAME
(col1, col2, col3,...colN) VALUES (value1, value2, value3,...valueN);

Hər sütuna 1-dən N-ə qədər dəyər əlavə edir. Məlumatları bu şəkildə daxil etdikdə, hər sütunun məlumat tiplərinin daxil etdiyimiz dəyərlə uyğun olduğundan əmin olmalıyıq. Əks halda, məlumatlar daxil edilməyəcək və ya səhv dəyərlər əlavə ediləcək. Ayrıca, masada hər hansı bir xarici açar məhdudiyyəti varsa, xarici masanın ana cədvəldə onsuz da mövcud olduğundan əmin olmalıyıq.
INSERT INTO EMPLOYEE (EMP_ID, EMP_NAME, ADDRESS, DEPT_ID) VALUES
(10001, ‘Joseph’, ‘Troy’, 11101); -- Here dept_id 11101 is a foreign key and it has be inserted into department table before inserting into the employee table.

Dəyəri cədvəl quruluşu qaydasında daxil etməyimiz şərti ilə sütunları göstərmədən cədvələ dəyərlər əlavə edə bilərik. İşçi üçün cədvəl quruluşunu aşağıdakı kimi təsəvvür edin və sonra aşağıdakı kimi sütun adlarını göstərmədən qeyd əlavə edə bilərik:

Pin

INSERT INTO EMPLOYEE VALUES (10001, ‘Joseph’, ‘Troy’, 11101);

Sütun siyahısını göstəririksə, onu cədvəl quruluşu sırasına daxil etməyimizə ehtiyac yoxdur. Qiymətləri sütunun INSERT bəyanatında göstərildiyi sırada əlavə edir.
INSERT INTO EMPLOYEE (EMP_ID, DEPT_ID, ADDRESS, EMP_NAME) VALUES
(10001, 11101,’Troy’, ‘Joseph’);

Bəzi sütun dəyərlərini mövcud cədvəldən kopyalaya bilərik. Tutaq ki, Emp_id, emp_name-i Employee cədvəlindən müvəqqəti cədvələ kopyalamalıyıq. Sonra aşağıdakı kimi yaza bilərik: (Burada hər iki cədvəldəki məlumat növünün eyni olduğunu və emp_name-in həm ad həm də soyadı birləşdirmək üçün kifayət qədər tampon olduğunu düşünsək).

Pin

INSERT INTO TEMP_EMP
SELECT e.EMP_ID, e.EMP_FIRST_NAME || ‘ ‘|| e.EMP_LAST_NAME as emp_name
FROM EMPLOYEE e;

Güncelle

Yeniləmə ifadəsi cədvəldəki məlumat dəyərini dəyişdirmək üçün istifadə olunur. Yeniləmə üçün ümumi sintaksis aşağıdakı kimidir:

UPDATE table_name
SET column_name1 = value1,
column_name2 = value2,
...
column_nameN = valueN,
[WHERE condition]

Təsəvvür edin, bir işçi ünvanı dəyişdirdi və onun İşçi cədvəlində yenilənməsi lazımdır.
UPDATE EMPLOYEE
SET ADDRESS = ‘Clinton Township’
WHERE EMP_ID = 10110;

'UPDATE' ifadəsində 'WHERE' şərtini göstərməsək, cədvəlin hamısını yeni ünvanla yeniləyəcəkdir. Beləliklə, hansı qeydin / işçinin yeni ünvanla yenilənməsi lazım olduğunu müəyyənləşdirməliyik.

Tutaq ki, bütün işçilərin maaşında 10% artım var və bu, İşçilər cədvəlində yenilənməlidir. Yeniləmə ifadəsini necə yazacağıq? HARADA bəndini göstərməliyik? YENİLƏNİB ifadəsində hesab hesablamasını təyin edə bilərikmi?

UPDATE EMPLOYEE SET Salary = salary+ (salary*0.1);

Maaşı bu şəkildə yeniləyirik.

Sil

Sil ifadəsindən istifadə edərək, vəziyyəti göstərərək bütün cədvəldəki qeydləri və ya xüsusi qeydləri silə bilərik.

DELETE FROM table_name [WHERE condition];

Fərz edək ki, 110 nömrəli işçini İşçilər cədvəlindən silmək məcburiyyətindəyik. Sonra silmək ifadəsi olardı
DELETE FROM EMPLOYEE WHERE EMP_ID = 110;

Şərti göstərməsək, bütün qeydləri İşçilər cədvəlindən siləcəkdir. Bu ifadə TRUNCATE-dən iki cəhətdən fərqlənir:

  • DELETE ifadəsini istifadə edərək şərti göstərərək bir neçə qeydləri silə bilərik. Vəziyyəti göstərməsək, cədvəldəki bütün qeydləri silir. TRUNCATE isə cədvəldəki bütün qeydləri silir.
  • DELETE ifadəsi sadəcə qeydləri cədvəldən çıxarır, TRUNCATE ifadəsi isə məlumatların tutduğu yeri azad edir. Beləliklə, TRUNCATE, masanı boşaltmalı olduğumuz zaman DELETE-dən daha effektivdir.
Crack Sistemi Dizayn Müsahibələri
Translate »