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- دستور dualDual شبیه به یک جدول مجازی است. که در هر SCHEMA وجود دارد، بنابراین شما می توانید از آن مانند یک جدول معمولی در پرس و جو های خود استفاده کنید.
;Select * from Dual
;Select 'Dual is special table in Oracle' As Column_Title From Dual
4-2- شی sequenceSequence یک شی می باشد برای ساخت شمارش صعودی
برای مثال ، یک 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
نتیجه :
در داکیومنت بعد موارد و دستورات زیر را شرح خواهیم داد.
2- یادگیری وصل شدن به پایگاه داده
6.1- دستور Insert Into Statement
6.2- دستور Insert Into Select Statement
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