همانطور که در بخش اول و دوم آموزش زبان SQL گفته شد مفهوم sql اختصار یا مخفف عبارت (Structured Query Language ) یا زبانی برای جستجويي ساخت يافته می باشد . در قسمت سوم می خواهیم به دستورات دیگری همچون Insert ، Update ، Delete و توابع بپردازیم.
6 - دستور Insert 6.1- معرفی دستور INSERT INTO
ساختار دستور INSERT INTO به شرح زیر است:
INSERT INTO "table_name" ("column1", "column2", ...)
VALUES ("value1", "value2", ...);
برای مثال، شما وارد می کنید یک معامله مشتری را در جدول ACC_TRANSACTION
- قرار دادن یک رکورد در جدول Acc_Transaction
- ستون Txn_ID بر اساس یک Sequence (شمارنده) پر می شود که از قبل با نام Hibernate_Sequenceایجاد شده است.
- همچنین Sysdate یک تابع اوراکل می باشد که تاریخ را نمایش می دهد .
Insert Into Acc_Transaction
(Txn_Id
,Amount
,Funds_Avail_Date
,Txn_Date
,Txn_Type_Cd
,Account_Id
,Execution_Branch_Id
,Teller_Emp_Id)
Values
(Hibernate_Sequence.Nextval -- Txn_Id
,100 -- Amount
,Sysdate -- Funds_Avail_Date
,Sysdate -- Txn_Date
,'CDT' -- Txn_Type_Cd
,2 -- Account_Id
,Null -- Execution_Branch_Id
,Null -- Teller_Emp_Id
);
پس از اجرای کوئری فوق ،می توانید کلیک کنید روی Commit تا اجرا نهایی شود و به پایان برسد و یا کلیک کردن روی Rollback برای لغو کوئری اجرا شده.
6.2- معرفی دستور Insert Into Select
شما می توانید از نتیجه یک عبارت SELECT برای اجرای یک INSERT استفاده کنید. از طریق insert into … select
INSERT INTO "table1" ("column1", "column2", ...)
SELECT "column3", "column4", ...
FROM "table2";
به مثال توجه کنید:
Insert Into Acc_Transaction
(Txn_Id
,Txn_Date
,Account_Id
,Txn_Type_Cd
,Amount
,Funds_Avail_Date)
Select Hibernate_Sequence.Nextval -- Txn_Id
,Acc.Open_Date -- Txn_Date
,Acc.Account_Id -- Account_Id
,'CDT' -- Txn_Type_Cd
,200 -- Amount
,Acc.Open_Date -- Funds_Avail_Date
From Account Acc
Where Acc.Product_Cd = 'CD';
درمثال فوق خروجی دستور select در جدول Acc_Transaction درج می شود.
7- معرفی دستور Update
نحوه دستور Update به صورت زیر است :
UPDATE "table_name"
SET "column_1" = "new value 1", "column_2"= "new value 2"
WHERE "condition";
برای مثال، شما می خواهید 2% افزایش دهید مقدار پول موجود در حساب های مشتریانی که ID آنها یک می باشد.
دستور update
Update Account Acc
Set Acc.Avail_Balance = Acc.Avail_Balance + 2 * Acc.Avail_Balance / 100
,Acc.Pending_Balance = Acc.Pending_Balance +
2 * Acc.Pending_Balance / 100
Where Acc.Cust_Id = 1;
مقادیر پس از بروز رسانی :
8- معرفی دستور Delete
نحوه دستور Delete به صورت زیر است :
DELETE FROM "table_name"
WHERE "condition";
حذف دو رکورد از جدول Acc_Transaction
Delete From Acc_Transaction Txn
Where Txt.Txn_Id In (61 ,62);
9- توابع یا SQL Functions9.1- معرفی تابع SQL Count
تابع COUNT تعداد ردیف های موجود که در شرط دستور وجود دارد را برمی گرداند.
- کوئری زیر شمارش می کند تعداد ردیف در جدول Account
Select Count(Acc.Account_Id) From Account Acc;
همچنین می توان از distinct برای عدم شمارش موارد تکراری استفاده نمود :
Select Count(distinct txn.Account_id) From Acc_Transaction txn;
همچنین می توانید از Group by استفاده کنید ، مثال زیر را ببینید:
مشتریان می توانند چندین حساب باز کنند که هر کدام برای یک نوع از حصاب ها می باشد.
در کوئری زیر ما قسط داریم نمایش دهید ID هر مشتری با تعداد حساب های ان فرد:
Select Acc.Cust_Id
,Count(Acc.Account_Id)
From Account Acc
Group By Acc.Cust_Id;
9.2- معرفی تابع SQL Sumتابع SUM جمع کل یک ستون عددی را برمی گرداند.
نحوه دستور تابع SUM آن به شکل زیر است :
SELECT SUM("column_name")
FROM "table_name";
یک مثال از تابع SUM
نمایش جمع مبلغ یکی از مشتریانی که ID او یک است.
Select Sum(Acc.Avail_Balance) From Account Acc Where Acc.Cust_Id = 1;
همچنین با استفاده از Group by می توان پیدا کردن مجموع پول در حساب های متعلق به هر یک از مشتریان را :
Select Acc.Cust_Id
,Sum(Acc.Avail_Balance)
From Account Acc
Group By Acc.Cust_Id;
9.3- معرفی تابع SQL AVG
تابع AVG مقدار متوسط (میانگین) یک ستون عددی را برمی گرداند .
نحوه تابع AVG آن به شکل زیر است :
SELECT AVG("column_name")
FROM "table_name";
به مثال زیر توجه کنید :
در زیر کوئری برای مشاهده متوسط پول برای هر یک از انواع سپرده.
Select Avg(Acc.Avail_Balance)
From Account Acc
Where Acc.Product_Cd = 'SAV';
با استفاده از Group by می توان میانگین موجودی هر مشتر در تمام حساب ها را بدست آورد
در زیر می خواهیم میانگین حسابهای مشتریانی که در شعبه یک هستند را نمایش دهیم.
Select Acc.Cust_Id
,Avg(Acc.Avail_Balance)
From Account Acc
Where Acc.Open_Branch_Id = 1
Group By Acc.Cust_Id;
9.4- معرفی تابع SQL MIN
تابع MIN کوچکترین مقدار ستون انتخاب شده را نمایش می دهد.
نحوه تابع MIN آن به شکل زیر است :
SELECT MIN ("column_name")
FROM "table_name";
یک مثال از تابع MIN
ما می خواهیم پیدا کنیم حداقل مقدار سپرده.
Select Min(Acc.Avail_Balance)
From Account Acc
Where Acc.Product_Cd = 'SAV';
پیدا کردن کمترین مقدار در هر نوع از حسابها:
Select Acc.Open_Branch_Id
,Min(Acc.Avail_Balance)
From Account Acc
Group By Acc.Open_Branch_Id;
9.5- معرفی تابع SQL MAX
تابع MAX بزرگترین مقدار از ستون انتخاب شده است نمایش می دهد.
نحوه استفاده تابع MAX دقیقا مشابه تابع MIN می باشد با این تفاوت که MAX بزگترین مقدار را باز میگرداند.
SELECT MAX("column_name")
FROM "table_name";
در بخش بعد موارد بیشتری را بررسی خواهیم کرد.
در داکیومنت بعد موارد و دستورات زیر را شرح خواهیم داد.
2- یادگیری وصل شدن به پایگاه داده
10.1- دستور ( INNER JOIN (or JOIN
10.2- دستور ( LEFT OUTER JOIN (or LEFT JOIN
10.3- دستور (RIGHT OUTER JOIN (or RIGHT JOIN
10.4- دستور (FULL OUTER JOIN (Or OUTER JOIN
11.1- معرفی Subquery in the Where Clause
11.2- معرفی Subquery in the From Clause
11.3- معرفی Subquery in the Select clause