آموزش زبان sql ( اوراکل )

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

 

1- معرفی

SQL  اختصار یا مخفف عبارت (Structured Query Language )  یا زبانی  برای جستجويي ساخت يافته می باشد و به کاربر امکان اتصال و دسترسی و ویرایش داده ها و ساختار موجود در دیتابیس را می دهد.

این داکیومنت بر اساس  نسخه زیر می باشد :

(ORACLE (10g, 11g

و محتوای آن شامل :

SQL language (زبان  sql )

SQL syntax ( سینتکس های Sql  که برای همه دیتابیس های می باشد)

SQL syntax of Oracle  (سیستکس های خاص برای اوراکل)

 

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

در این داکیومنت شما یک دیتابیس در اوراکل ایجاد می کنید و به آن وصل می شود به جهت بررسی و یادگیری بهتر دستورات .دستور ساخت دیتابیس. را می توانید از این لینک بررسی نمایید.

 

3- شروع سریع آموزش sql 3-1- مثال برای کوئری

در اوراکل برای راحتی کار با دستورات sql از ابزار های مختلفی استفاده می شود از جمله pl/sql Developer یا ابزار های دیگر (toad for oracle , navicat  ) ، شما می توانید از این لینک اطلاعات بیشتری در خصوص pl/sql developer  بدست بیاورید.

 

 

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

ابتدا ، نیاز است ما موارد خاص اوراکل را بهتر بشناسیم.این موارد امکان دارد در دیتابیس های دیگر وجود نداشته باشد یا متفاوت باشد.

4-1- دستور  dual

Dual  شبیه به یک جدول مجازی است. که در هر SCHEMA وجود دارد، بنابراین شما می توانید از آن مانند یک جدول معمولی در  پرس و جو های خود استفاده کنید.

;Select * from Dual

;Select 'Dual is special table in Oracle' As Column_Title From Dual

4-2-  شی sequence

Sequence  یک شی می باشد برای ساخت شمارش صعودی

برای مثال ، یک sequence  می سازیم با نام  My_sequence

;Create Sequence My_Sequence

سپس  با ابزار  (toad for oracle , navicat , pl/sql Developer  ) شما می توانید sequence ایجاد شده را مشاهده نمایید.

 - هر بار nextval  را فراخوانی کنید ارزش توالی افزایش خواهد یافت.

- سعی کنید به این دستور را چندین بار اجرا کنید.

;Select My_Sequence.Nextval From Dual

- همچنین ما برای بازیابی ( نمایش ) مقدار فعلی My_Sequence می توانیم از Currval  استفاده کنید.

;Select My_Sequence.Currval From Dual

 

5 – پرس و جو ها ( Query ) 5-1- دستور sql select

دستور select  اساسی ترین دستور یا توضیح در زبان SQL می باشد.و از آن استفاده می شود برای پرس و جو داده ها در جداول یک بانک اطلاعاتی.

در مثال زیر :

PRODUCT_TYPE: یک جدول  از انواع محصولات (خدمات بانک) می باشد.

در زیر یک دستور Select  را برای  پرس و جو در PRODUCT_TYPE  مشاهده می کنید.

;Select * From Product_Type

پرس و جو یا کوئری زیر با دستور بالا یک خروجی را ارئه می دهد ، فقط در دستور زیر از pty به عنوان یک نام مستعار برای جدول  Product_Type استفاده شده است.

;Select Pty.* From Product_Type Pty

همچنین در دستور زیر نام فیلد های جدول نیز عنوان شده است که خروجی ارائه شده این دستور نیز با دستور بالا مشابه می باشد.

Select Pty.Product_Type_Cd

     ,Pty.Name

;From   Product_Type Pty

نتیجه حاصل از اجرای هر سه پرس و جو به شکل زیر خواهد بود.

همچنین پرس و جوی دیگری بر روی جدول EMPLOYEE  مشاهد می کنید.

Select Emp.Emp_Id

     ,Emp.First_Name

     ,Emp.Last_Name

     ,Emp.Dept_Id

;From   Employee Emp

نتیجه حاصل از اجرای پرس و جو بالا  به شکل زیر خواهد بود.

ساخت نام مستعار ( alias ) برای فیلد (column ) 

به مثال زیر توجه کنید :

Select  Emp.Emp_Id

     ,Emp.First_Name

     ,Emp.Last_Name

     ,Emp.Dept_Id

     ,Concat('EMP'

            ,Emp.Emp_Id) As Emp_No2     

;From   Employee Emp

 از می توانیم با توجه به مثال فوق برای یک فیلد نام مستعاری انتخاب نماییم ، که معمولاً برای راحتی و خوانایی بیشتر پرس و جو استفاده می شود برای این منظور بعد از عبارت نام فیلد جدول یا کلمه رزرو شده (  as)  و در ادامه نام مستعار خود را قرار می دهیم.

در مثال فوق ما با دستور ( concat ) دو رشته  string را به هم الحاق کرده ایم  و با نام Emp_no2 معرفی نموده ایم.

البته می توان از  ( as )  استفاده نکرد مانند مثال زیر :

 

Select Emp.Emp_Id

     ,Emp.First_Name

     ,Emp.Last_Name

     ,Emp.Dept_Id

     ,'Concat('EMP

            ,Emp.Emp_Id)  Emp_No2  

;From   Employee Emp

در اوراکل شما می توانید با استفاده از کارکترهای ( || ) برای الحاق دو رشته استفاده نمایید . این عامل می تواند رشته های متعدد با هم الحاق نماید. این عامل ( || ) فقط در اوراکل قابل استفاده است.

Select Emp.Emp_Id

     ,Emp.First_Name

     ,Emp.Last_Name

     ,Emp.Dept_Id

     'EMP' || Emp.Emp_Id As Emp_No2   -- New column'

;From   Employee Emp

با اجرای هر سه  پرس و جوی فوق نتایج مشابه خواهید دید.

 

5-2- دستور  SQL Distinct:

دستور Distinct به همراه دستور select  به منظور انتخاب داده ها و نادیده گرفتن  داده ها یکسان استفاده می شود. و نحوه استفاده به شرح زیر است :

  ......,<Select distinct <column1>, <column2

به مثال زیر دقت نمایید:

یک پرس و جو روی جدول Product :

Select Pro.Product_Cd

     ,Pro.Name

     ,Pro.Product_Type_Cd

;From   Product Pro

دومین پرس و جوی برای نمایش نوع محصولات :

 

;Select Pro.Product_Type_Cd from Product Pro

 در سومین پرس و جو نیاز هست که موارد تکراری حذف شوند.

;Select Distinct Pro.Product_Type_Cd from Product Pro

از اجرای دستورات بالا نتایج زیر قابل مشاهده است .

 

5-3- دستور SQL where

دستور where  برای  محدود کردن دامنه داداه های یافته شده می باشد. که  به عنوان مثال، شما می خواهید نمایش دهید سرویسهای که  محصولات آن به صورت LOAN می باشد.

;'Select * From Product Pro Where Pro.Product_Type_Cd = 'LOAN

نتیجه را در زیر می بینید:

در خصوص where  می توان مثال های زیادی عنوان نمود.

 

5-4- استفاده از SQL And Or :

And  و  or اپراتورهای هستند که در where  استفاده می شوند.

به عنوان مثال، شما می خواهید را به یک لیست از کارکنان که اولین کارکتر نام آنها با ‘s’ شروع شود و همچنین در بخش عملیاتی کار کنند.

در ابتدا قسمت اول مثال که لیست از کارکنان که اولین کارکتر نام آنها با ‘s’ شروع شود را ببینید :

Select Emp.Emp_Id

    ,Emp.First_Name

    ,Emp.Last_Name

    ,Emp.Dept_Id

From   Employee Emp

;'%Where  Emp.First_Name Like 'S

 در مثال بالا از like محدود کردن پرس و جو استفاده شده است ، در حقیقت ما می توانیم با استفاده like ‘%---%’  محدوده جستجو را روی یک فیلد محدودتر نماییم.

حال بخش دوم شرط را اضافه می کنیم

در اینجا عدد یک شماره  مربوط به بخش عملیاتی می باشد. Dept_Id  = 1

Select Emp.Emp_Id

    ,Emp.First_Name

    ,Emp.Last_Name

    ,Emp.Dept_Id

From   Employee Emp

;'%Where  Emp.First_Name Like 'S

And    Emp.Dept_Id = 1

 البته نتیجه را در زیر می بینید:

 5-5- دستور SQL IN  :

اپراتور در اجازه می دهد تا مقایسه مقدار فیلد با لیستی از مقدار انجام شود. IN می تواند روی انواع داده ها کار کند.

در مثال زیر نمایش می دهیم کارمند های که نام آنها در لیست ('Susan','Paula'  ,'Helen') قرار دارد.

Select Emp.Emp_Id

     ,Emp.First_Name

     ,Emp.Last_Name

     ,Emp.Dept_Id

From   Employee Emp

;('Where  Emp.First_Name In ('Susan','Paula','Hele

نتیجه :

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

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 Statements 

6.1- دستور  Insert Into Statement 

6.2- دستور  Insert Into Select Statement 

7- دستور  Update Statement 

8- دستور  Delete Statement 

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