قالب وبلاگ

قالب وبلاگ

آسان یاب

آسان یاب
 
دنیای مطلب و نرم افزار

محل درج آگهی و تبلیغات
 
نوشته شده در تاريخ یکشنبه بیستم آذر 1390 توسط جعفر

 

1-Select

 

دستور Select  جهت بازیابی   اطلاعات از جداول پایگاه داده استفاده می شود. بخشی  این دستور از این دستور جهت فیلتر کردن رکوردها استفاده می شود.

 

 

 

 Select * From Course(1-1

1-2)Select CourseName,Unit From Course Where CourseTypeIdRef=1

 

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

 

 

 

2-Insert

 

دستور Insert جهت درج   اطلاعات در جداول پایگاه داده استفاده می شود.

 

2-1)Insert Into Course ( CourseId,CourseName,Unit,CourseTypeIdRef) Values (1,'DataBase',3,2)

 

)Insert Into Course Select 1,'DataBase',3,22-2

 

 

3-Update

 

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

 

Update Course Set CouseName='DataStructure',Unit=4 Where CourseId=1

 

 

4-Delete

دستور Delete  جهت به حذف   اطلاعات در جداول پایگاه داده استفاده می شود.

 

Delete From Course Where CourseId=1

 

 

 

5-INNER JOIN

 

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

 

   (1-5

5-2) SELECT     StdInfo.FName + StdInfo.LName AS FullName, Course.CourseName, CourseType.CourseTypeName, CourseStatus.StatusName

FROM         Course INNER JOIN

                      CourseType ON Course.CourseTypeIdRef = CourseType.CourseTypeId INNER JOIN

                      Register ON Course.CourseId = Register.CourseIdRef INNER JOIN

                      StdInfo ON Register.StdIdRef = StdInfo.StdId INNER JOIN

                      CourseStatus ON Register.StatusId = CourseStatus.StatusId

 

6- LEFT OUTER JOIN

 

این دستور کاملا مشابه INNER JOIN است با این تفاوت که تمام رکوردهای حائز شرایط جدولی را که در سمت چپ عبارت LEFT OUTER JOIN قرار گرفته است را بازیابی می کند .

این مسئله زمانی دیده می شود که در جدول سمت چپ در ستونی که شرط  JOIN روی آن نوشته شده است مقدار NULL وجود داشته باشد.

 

 

SELECT     StdInfo.FName + StdInfo.LName AS FullName, Course.CourseName, CourseType.CourseTypeName, CourseStatus.StatusName

FROM         StdInfo INNER JOIN

                      Register ON StdInfo.StdId = Register.StdIdRef LEFT OUTER JOIN

                      CourseStatus ON Register.StatusId = CourseStatus.StatusId LEFT OUTER JOIN

                      Course ON Register.CourseIdRef = Course.CourseId LEFT OUTER JOIN

                      CourseType ON Course.CourseTypeIdRef = CourseType.CourseTypeId

 

7-RIFHT OUTER JOIN

 

این دستور کاملا مشابه INNER JOIN است با این تفاوت که تمام رکوردهای حائز شرایط جدولی را که در سمت راست عبارت RIGHT OUTER JOIN قرار گرفته است را بازیابی می کند .

این مسئله زمانی دیده می شود که در جدول سمت راست در ستونی که شرط  JOIN روی آن نوشته شده است مقدار NULL وجود داشته باشد.

 

 

 

SELECT     StdInfo.FName + StdInfo.LName AS FullName, Course.CourseName, CourseType.CourseTypeName, CourseStatus.StatusName

FROM         StdInfo RIGHT OUTER JOIN

                      Register ON StdInfo.StdId = Register.StdIdRef RIGHT OUTER JOIN

                      CourseStatus ON Register.StatusId = CourseStatus.StatusId RIGHT OUTER JOIN

                      Course ON Register.CourseIdRef = Course.CourseId RIGHT OUTER JOIN

                      CourseType ON Course.CourseTypeIdRef = CourseType.CourseTypeId

 

 

8-FULL OUTER JOIN

 

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

 

SELECT     Course.CourseName, CourseType.CourseTypeName

FROM         Register FULL OUTER JOIN

                      Course ON Register.CourseIdRef = Course.CourseId FULL OUTER JOIN

                      CourseType ON Course.CourseTypeIdRef = CourseType.CourseTypeId

 

9-SELF JOIN

 

این دستور به ما امکان می دهد که یک جدول را با خودش JOIN  کنیم .

این مسئله اغلب زمانی کاربرد دارد که یک ستون به ستونی از همان جدول Reference  دهد.

 

SELECT *    

FROM         MIS.StateCity INNER JOIN

                      MIS.StateCity AS StateCity_1 ON MIS.StateCity.IDP = StateCity_1.id

 

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

 

 

 

 

 

10-CROSS JOIN

 

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

اغلب زمانی کاربرد دارد که دو جدول هیچگونه شرایطی جهت الحاق ندارند.

حاصل این JOIN ضرب دکارتی رکوردهای جداول JOIN شده است.

 

 

SELECT     CourseType,CourseName

FROM         CourseType CROSS JOIN

                      Register

 

11- توابع آماری (SUM,COUNT,AVE,….)

 

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

 

SELECT     AVE(Mark) AS Average

FROM         Register

WHERE     (StdIdRef = 3830303)

 

Syntax  بقیه توابع آماری نیز مثل بالاست.

با استفاده از این توابع می توان نتایج را گروه بندی کرد.

 

 

SELECT  StdIdRef, AVE(Mark) AS Average

FROM         Register

Group By StdIdRef

 

12- Select  های تو در تو

به این وسیله می توان  عبارات JOIN  و یا عملیات مشابه آن را انجام داد.

به عبارت دیگر به این وسیله می توان Select  ای حاصل از چند جدول داشته باشیم.

در بعضی موارد Select هایی را می توان با این قابلیت گرفت که با JOIN  به سختی می توان گرفت یا شاید هم امکان پذیر نباشد.

اما توصیه بر استفاده از JOIN  هاست.

 

 

SELECT * From Register Where CourseIdRef In

(

(SELECT CourseId From Course Where CourseTypeIdRef=1) As CourseIdList

)

 

 

 

SELECT FullName,CourseName From Register

INNER JOIN (SELECT FName+LName AS FullName,StdId From STdInfo) AS StdList  ON Register.StdIdRef=StdList.StdId

INNER JOIN (SELECT CourseId,CourseName From Course Where CourseTypeIdRef=1) As CourseIdList ON Register.CourseIdRef=CourseIdList.CourseId

 

13-عملگر های (In,Exist,Except,Intersect ,Top,UNION)

 

این عملگر ها جهت فیلتر کردن خروجی یک SELECT  یا JOIN  که به نوعی یک عبارت SELECT  محسوب می شود بکار می روند.

 

1-13)                     Top(n)

این عملگر n رکورد اول عبارت SELECT را به خروجی می برد.

 

SELECT Top(2) StdId From StdInfo

 

 

 

2-13)          IN

این عملگر مقدار یک فیلد را با مقادیر موجود در یک مجموعه تطبیق می دهد.

 

 

 

SELECT * From Register Where CourseIdRef In

(

(SELECT CourseId From Course Where CourseTypeIdRef=1) As CourseIdList

)

 

 

 

SELECT * From Register Where CourseIdRef In

(1,2,3,4,5,6,7)

 

3-12)EXCEPT

Distinct تمام رکورد هایی را در عبارت SELECT  بازیابی می کند که در مجموعه رکوردهای سمت راست عبارت EXCEPT  نباشند

 

 

SELECT * From Register EXCEPT

(

(SELECT CourseId From Course Where CourseTypeIdRef=1) As CourseIdList

)

 

SELECT * From Register EXCEPT

(1,2,3,4,5,6,7)

4-12)INTERSECT

Distinct تمام رکورد هایی را در عبارت SELECT  بازیابی می کند که در مجموعه رکوردهای سمت راست عبارت INTERSECT باشند.

 

SELECT * From Register INTERSECT

(

(SELECT CourseId From Course Where CourseTypeIdRef=1) As CourseIdList

)

 

SELECT * From Register INTERSECT

(1,2,3,4,5,6,7)

5-12)EXIST

وجود رکوردها را در یک Query  تست می کند.

 

USE AdventureWorks

GO

SELECT DISTINCT c.FirstName, c.LastName, e.DepartmentID

FROM Person.Contact c JOIN HumanResources.Employee e

ON e.ContactID = c.ContactID WHERE EXISTS

(SELECT *

FROM HumanResources.Department d

WHERE e.DepartmentID = d.DepartmentID

(AND d.Name = 'Purchasing'

6-12) UNION

 

اجازه می دهد خروجی چند عبارت SELECT  را بصورت اجتماع آنها ببینیم.

 

SELECT * From Course

 

UNION

SELECT * From StdInfo


.: Weblog Themes By Pichak :.


------------------------------------------------------


-------------
parsskin go Up
-----------------
Google

در اين وبلاگ
در كل اينترنت
-------------------- -------------------------- ---------------------
--------------------------------- -------------

.

تمامی حقوق این وبلاگ محفوظ است | طراحی : پیچک