آموزش زبان SQL ( اوراکل )- قسمت سوم

نوشته شده توسط :
آموزش زبان SQL ( اوراکل )- قسمت سوم

همانطور که در بخش اول و دوم آموزش زبان 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 Functions

 

9.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";

در بخش بعد موارد بیشتری را بررسی خواهیم کرد.

در داکیومنت بعد موارد و دستورات زیر را شرح خواهیم داد.

1- معرفی

2- یادگیری وصل شدن به پایگاه داده

3-  شروع سریع آموزش SQL

3.1- مثال برای کوئری

4- موارد خاص از اوراکل

4.1- دستور  DUAL

4.2- شی SEQUENCE

5-  پرس و جو ها ( QUERY )

5.1- دستور SQL Select

5.2- دستور SQL Distinct

5.3- دستور SQL Where

5.4- دستور SQL And Or

5.5- دستور SQL IN

5.6- دستور  SQL Between 

5.7- دستور  SQL Wildcard 

5.8- دستور  SQL Like 

5.9- دستور  SQL Order By 

5.10- دستور  SQL Group By 

5.11- دستور  SQL Having 

6- دستور  Insert 

6.1- دستور  Insert Into 

6.2- دستور  Insert Into Select 

7- دستور  Update 

8- دستور  Delete 

9- دستور  SQL Functions 

9.1- دستور  SQL Count 

9.2- دستور  SQL Sum 

9.3- دستور  SQL AVG 

9.4- دستور  SQL MIN 

9.5- دستور  SQL MAX 

10- دستور  SQL Join 

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- معرفی Subquery 

11.1- معرفی Subquery in the Where Clause 

11.2- معرفی  Subquery in the From Clause 

11.3- معرفی Subquery in the Select clause