Download presentation
Presentation is loading. Please wait.
Published byLorin Summers Modified over 6 years ago
1
آزمایشگاه پایگاه داده ها دستورات مهم SQL در SQL Server
2
دسته بندی دستورات در زبان SQL
DDL (Data Definition Language) - زبان تعريف داده ها. DML (Data Manipulation Language) - زبان پردازش داده ها. DCL (Data Control Language) - دستورات مديريت و كنترل داده ها. DQL (Data Query Language) - دستورات پرس و جوي داده ها. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
3
دسته بندی دستورات در زبان SQL
در دسته اول DDL زباني است كه امكان ايجاد وساخت يا پاك كردن يك جدول از بانك اطلاعاتي را بر عهده دارد دستورات اين رده بترتيب زير است : CREATE, ALTER, DROP, CREATE INDEX, ALTER INDEX, DROP INDEX دسته دوم دستورات DML هستند كه براي اعمال تغييرات بر جداول درست شده اند كه از سه دستور اصلي زيرتشكيل شده اند : INSERT , UPDATE , DELETE دسته سوم دستورات DQL هستند كه تنها از يك دستور بنام SELECT تشكيل شده اند كه بيشترين حجم كاري را براي يك كاربر كه با SQL كار ميكند را در بر ميگيرد. اين دستور بهمراه چندين دستوري كه درون خود وجود دارد سبب گستردگي استفاده از اين دستور ميشود. كه بعدا با اين دستور بيشتر آشنا خواهيم شد. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
4
دسته بندی دستورات در زبان SQL
دسته چهارم دستورات DCL هستند. همانطور كه از نامشان پيداست جهت كنترل داده هاي بانك اطلاعاتي كه بيشتر در رابطه با دسترسي اين داده ها به ديگر كاربران است كاربرد دارد. كه متشكل از دستورات زير است: ALTER PASSWORD, REVOKE , GRANT, CREATE SYNONYM دسته بعد دستورات كنترلي TRANSACTIONها ميباشد كه امكان مديريت تراكنشي بانك اطلاعاتي را براي كاربر فراهم ميسازد . كه از دستورات زير تشكيل شده اند : COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION و دسته اخر كه مكمل كننده ان دستورات دسته قبل بودند دستورات مديريت داده ها هستند كه امكان بررسيو تحليل عمليات داخل بانك اطلاعاتي را فراهم ميكنند . در ضمن يادتان باشد كه اين مديريت را با مديريت بانك اطلاعاتي اشتباه نگيريد . START AUDIT , STOP AUDIT آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
5
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Exec این دستور مخفف کلمه Execute می باشد و با آن می توان یک محدوده وسیع از دستورات دیگر را اجرا کرد. اهمیت این دستور در جایی است که شما بخواهید چند دستور ترکیبی را با هم اجرا کنید و یا از توابع آماده استفاده کنید. مثال های زیر را در نظر بگیرید: EXEC sp_helpdb <نام بانک> این دستور مشخصات بانک نامبرده شده را بر میگرداند. اگر نام بانک قید نشود مشخصات کلیه بانکهای سرور نمایش داده می شود. EXEC sp_renamedb ‘اسم قدیم بانک’, ‘اسم جدید بانک’ این دستور نام یک بانک را عوض می کند. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
6
Insert: دستور ورود اطلاعات به داخل جدول
Into <table name> (<field 1 name>, … ,<field N name>) Values (values 1 ,…, values N) دستور insert برای ورود اطلاعات به داخل جدول استفاده می شود و از کلمه کلیدی Insert into شروع شده و بعد در داخل پرانتز () نام فیلدها قید می شود و نامها با کاما از هم جدا می شوند. بعد از این کلمه کلیدی Values نوشته می شود و بعد آن در داخل پرانتز بعدی مقادیر هر فیلد متناسب با تعریف آن (از لحاظ دامنه یا همان نوع داده و ترتیب ذکر شده در خط دوم) ذکر می شود. با هر دستور insert فقط یک رکورد به جدول اضافه می شود. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
7
Insert: دستور ورود اطلاعات به داخل جدول
مثال: insert into teach(lid, tid, semester) values (‘11’ , ’12354’ , 1391 ) این دستور یک رکورد را با مقادیر کد درس:11، کد معلم: و ترم:1391، به جدول teach اضافه میکند. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
8
Delete: دستور پاک کردن رکوردها از جدول
Delete From <نام جدول> Where عبارت شرطی از دستور Delete برای پاک کردن 1 یا چند رکورد از جدول استفاده می شود و کاربرد ان بدین صورت است که بر اساس یک Condition یا عبارت شرطی عمل حذف را انجام می دهد. در این دستور عبارت شرطی بعد از کلمه کلیدی where ذکر می شود. مثال: Delete From Lesson Where lid=‘110’; در مثال بالا رکوردهایی از جدول lesson که مقدار فیلد lid آنها برابر 110 باشد از جدول حذف میشوند. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
9
Update: دستور ویرایش داده های جدول
قالب کلی این دستور به شرح زیر است: Update <نام جدول> <نام نمونه> SET [نام فیلد 1]=مقدار مورد نظر , ... ,[N نام فیلد]=مقدار مورد نظر Where عبارت شرطی; مثال Update student S SET s.name=’billi’ , s.age=19 , s.avg=14.75 Where s.sid=110; از دستور Update برای ویرایش داده های یک یا چند رکورد استفاده می شود. در این دستور بعد از کلمه کلیدی SET نام فیلدهایی که مایلیم مقادیر آنها را تغییر دهیم را وارد کرده و بعد از اسم هر کدام مقدار جدیدشان را وارد می کنیم و هر فیلد را با کاما از دیگری جدا می کنیم. این تغییرات بر روی رکورد هایی اعمال می شود که عبارت شرطی بعد از Where برای آنها صدق کند. در مثال بالا رکورد یا رکورد هایی که SID آنها برابر با 110 باشد نام آن به Billi و سن آنها به 19 و معدلشان به تغییر خواهد کرد. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
10
Drop Table: دستور حذف جدول
حذف یک جدول Drop table student حذف چند جدول Drop table student, teacher; آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
11
Select دستور بازیابی اطلاعات از جدول
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
12
دستور SELECT – دستور استخراج داده ها از جدول
Select [نام فیلدها] from [نام جدول] where [عبارت شرطی] نکته: اگر بجای نام فیلدها علامت * بگذاریم تمامی فیلدهای جدول نمایش داده خواهد شد. اگر عبارت Where با عبارت شرطی قید نشوند دستور همه رکوردهای جدول مورد نظر را بر می گرداند. مثال: Select * from student where stid=110; Select name, stid from student آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
13
دستور SELECT – دستور استخراج داده ها از جدول
در دستور Select، بخش بین دو کلمه Select و From مشخص کننده نمایش فیلدهای جدول می باشد. یعنی هر کلمه ای در این قسمت ذکر شود باید نامی از فیلدهای جدول مورد نظر باشد و برای جدا سازی این نامها از علامت کاما (,) استفاده میشود. مثلاً select id, name from teacher در دستور بالا لیست تمامی رکوردهای جدول teacher نمایش داده میشود با این نکته که فقط فیلدهای id, name هر رکورد نمایش داده می شود. select * from teacher این دستور نیز همه رکوردهای جدول teacher را بر میگرداند با این تفاوت که تمام فیلدهای جدول نمایش داده خواهد شد. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
14
دستور SELECT – اعمال شرط بر دستور
در دستور Select، بخش بعد از کلمه Where مشخص کننده شرط دستور می باشد که این شرط بررسی شده و نتیجه آن در رکوردهای بازگشتی دستور منعکس میشود. بعد از کلمه Where یک عبارت شرطی بیان می شود که می تواند ترکیبی از شروط منطقی و حسابی باشد. برای ایجاد این عبارات شرطی می توان از عملگر های زیر استفاده کرد: عملگر های حسابی عملگر های مقایسه ای عملگر های منطقی % باقی مانده تقسیم <, > بزرگتر و کوچکتر Not نقیض * ضرب <= , >= بزرگتر و کوچکتر مساوی And و / تقسیم <> نامساوی Or یا + , - جمع و تفریق = مساوی آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
15
دستور SELECT – اعمال شرط بر دستور
select id, name from student where id=‘1245’; دستور بالا رکورد یا رکوردهایی که فیلد id آنها برابر با رشته 1245 باشد را باز میگرداند. select * from teacher where age>35 and location=‘Tehran’ این دستور مشخصات معلمانی که سن آنها بیش از 35 است و در تهران ساکن هستند را در می آورد. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
16
شخصی سازی نتایج پرس و جو در Select
تغییر برچسب (Label) یک فیلد در هنگام نمایش نتایج: اگر بخواهیم برچسب نام یک فیلد را (هنگام نمایش نتایج پرس و جو) عوض کنیم می توان از قالب زیر استفاده کرد. select نام فیلد as ‘برچسب جدید’ from نام جدول; مثال: select name as ‘first Name’ from student; این دستور نام تمام دانشجویان را از جدول دانشجو نمایش می دهد با این نکته که برچسب فیلد Name را به First Name تغییر می دهد. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
17
شخصی سازی نتایج پرس و جو در Select
اضافه کردن برچسب ها در درون هر رکورد برای مستند سازی بهتر نتایج: اگر بخواهیم مابین نمایش دو فیلد در نتایج پرس و جو برچسبی را برای بهتر کردن شکل نمایش اضافه کنیم می توان از قالب زیر استفاده کرد. select نام فیلد 1, ‘متن برچسب’ ,نام فیلد 2 from نام جدول; مثال: آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
18
استفاده از عملگرهای AND , OR
در فرمان where دیدید که چگونه اطلاعات را بر حسب یه شرط فیلتر کردیم . حال اگر چند شرط داشته باشیم میتوانیم بکمک AND یا OR آنها را بهم وصل کنیم تا در فرمان where از آن استفاده کنیم . SELECT <column_name> FROM <table_name> WHERE <simple condition> {[AND|OR] <simple condition>}+ علامات {}+ بدین معنی است که اطلاعات داخل براکت ممکن است یک یا چند بار تکرار شود . ما میتوانیم از پرانتز ها نیز برای جدا کردن اولویت عمل کردن AND و OR استفاده کنیم. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
19
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
عملگرهای AND , OR مثال: فرض کنید جدولی مانند زیر داریم . جاهایی که فروش بیش از هزار دلار است یا بین 275 و 500 است را می خواهیم: Table Store_Information SELECT store_name FROM Store_Information WHERE (Sales > 1000) OR (Sales < 500 AND Sales > 275); store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه store_name Los Angeles San Francisco آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
20
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور IN و not IN در SQL دو استفاده از کلمه کلیدی IN میشود . این بخش قسمت اول آنرا که در ارتباط با کلمه کلیدی where است توضیح می دهد . ما از این کلمه کلیدی وقتی استفاده می کنیم که مقدار یکی از فیلد ها را دقیقا تعیین کنیم . شما میتوانید بیش از یک مقدار را برای فیلد ها تعیین کنید و بین هر مقدار یک کاما بگذارید . مقادیر می توانند کاراکتر و عددی باشند . اگر فقط یک مقدار میگذارید نیازی به پرانتز نیست . SELECT <column_name> FROM <table_name> WHERE <column_name> IN ('value1', 'value2', ...) اگر از عبارت Not IN بجای IN استفاده شود مقادیری که مخالف مجموعه تعیین شده هستند انتخاب می شوند. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
21
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور IN مثال: فرض کنید جدولی مانند زیر داریم .رکوردهایی که مربوط به لوس آنجلس و سان دیگو است را میخواهیم انتخاب کنیم . Table Store_Information SELECT * FROM Store_Information WHERE store_name IN ('Los Angeles', 'San Diego'); store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
22
دستور Between, Not Between
همانطور که کلمه IN به ما کمک میکند تا محدوده انتخاب را به یک یا چند مقدار محدود کنیم، کلمه BETWEEN کمک میکند تا محدوده را یک بازه تعریف کنیم . در این حال تمام مقادیری که بین value1 و value2 باشند انتخاب میشوند. SELECT <column_name> FROM <table_name> WHERE <column_name> BETWEEN 'value1' AND 'value2‘ اگر از عبارت Not Between استفاده شود تمام مقادیری که بین Value1 و Value2 نیستند انتخاب میشوند. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
23
دستور Between, Not Between
مثال :فرض کنید جدولی مانند زیر داریم .رکوردهایی که تاریخ آنها بین January 6, و January 10, 1999 است را میخواهیم . Table Store_Information SELECT * FROM Store_Information WHERE Date BETWEEN 'Jan ' AND 'Jan ‘ ; store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه store_name Sales Date San Diego $250 Jan San Francisco $300 Jan Boston $700 آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
24
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Like این کلمه نیز با کلمه where بکار میرود. اساساً Like به شما اجازه میدهد که جستجویی را بر مبنای عبارت باقاعده (Regular Expression) که در آن از الگوهای Wildcard استفاده میشود، انجام دهید. (مثلا انتخاب رکوردهایی که یکی از فیلدهایش با کلمه خاصی شروع میشود .) SELECT <column_name> FROM <table_name> WHERE <column_name> LIKE {PATTERN} اگر از عبارت Not Like استفاده شود. عملی عکس عبارت Like اتفاق می افتد. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
25
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Like روش ساخت الگو (Pattern) به کمک مثال: 'ABC%' : تمام رشته هایی که با ABC شروع میشوند. '%XYZ' : تمام رشته هایی که به XYZ خاتمه می یابند. '%AN%' : تمام رشته هایی که شامل عبارت AN هستند . '[MT]%' : تمام رشته هایی که با M یا T شروع می شوند. '%[^M]-' : تمام رشته هایی که کاراکتر ماقبل آخر آنها M نیست. مهمترین وایلد کارد ها وایلد کارد کاربرد % رشته ای از کاراکترها با طول 0 تا n - یک کاراکتر [ ] یک کاراکتر در محدوده خاص [^] یک کاراکتر خارج از محدوده خاص آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
26
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Like مثال: فرض کنید جدولی مانند زیر داریم. نتیحه را طبق دستور داده شده مشاهده کنید . Table Store_Information SELECT * FROM Store_Information WHERE store_name LIKE ‘%AN%’ store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه store_name Sales Date LOS ANGELES $1500 Jan SAN FRANCISCO $300 Jan SAN DIEGO $250 Jan این مثال نام رکوردهایی که فیلد نام شهر آنها شامل رشته ‘an’ است را بر می گرداند. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
27
مرتب سازی نتایج با دستور Order By
SELECT <column_name> FROM <table_name> [WHERE <condition>] ORDER BY <column_name> [ASC, DESC] علامات [] در اطراف where بدین معناست که میتوانید where را بکار نبرید. اما اگر بکار بردید حتما باید قبل از order باشد . ASC به معنای صعودی بودن (a to z) و DESC به معنای نزولی بودن است (z to a).پیش فرضش ASC است. همچنین این نیز امکان پذیرست که مرتب سازی را بر مبنای بیش از یک ستون انجام دهید. برای این منظور بخش مرتب سازی کد بالا بصورت زیر در میاید : ORDER BY <column_name1> [ASC, DESC], <column_name2> [ASC, DESC] آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
28
مرتب سازی نتایج با دستور Order By
مثال :فرض کنید جدولی مانند زیر داریم . نتیحه را طبق دستور داده شده مشاهده کنید . Table Store_Information SELECT * FROM Store_Information ORDER BY Sales DESC store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه store_name Sales Date Los Angeles $1500 Jan Boston $700 Jan San Francisco $300 San Diego $250 Jan آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
29
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Distinct اگر بخواهیم اطلاعات تکراری بازیابی شده بر اساس یک یا چند فیلد نمایش داده نشوند باید از عبارت Distinct استفاده کنیم. SELECT DISTINCT <Column_name> FROM <Table_Name> مثال: SELECT DISTINCT name FROM student; این دستور باعث می شود تا اسامی دانشجویان از جدول داشنجویان انتخاب شوند با این نکته که نام های تکراری نمایش داده نمی شوند. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
30
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
توابع جمعی در Select در SQL می توان از توابع آماده جمعی (محاسباتی و ریاضی) در دستور Select استفاده کرد. به عنوان مثال اگر بخواهیم میانگین مقادیر یک فیلد عددی را محاسبه کنیم و یا مثلاً تعداد رکوردهای بازگشتی از یک پرس و جو را بدست آوریم می توانیم از توابع آماده ای که به همین منظور ایجاد شده اند استفاده کنیم. مهمترین توابع مورد استفاده در SQL عبارتند از: COUNT: این تابع تعداد رکوردهای بازگشتی را محاسبه و بر می گرداند. MAX: این تابع بزرگترین مقدار فیلد ورودی خود را بدست آورده و بر می گرداند. MIN: این تابع کوچکترین مقدار فیلد ورودی خود را بدست آورده و بر می گرداند. AVG: این تابع میانگین مقادیر فیلد ورودی خود را محاسبه و بر می گرداند. SUM: این تابع مجموع مقادیر فیلد ورودی خود را محاسبه و بر می گرداند. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
31
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
توابع ریاضی در Select قالب کلی استفاده از توابع در دستور Select بصورت زیر است: SELECT Function Type (column_name) FROM <table_name> مثال: اگر ما بخواهیم جمع کل فروش های جدول را بدست آوریم بصورت زیر عمل میکنیم. Table Store_Information SELECT SUM(Sales) FROM Store_Information store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه: SUM: Sales $2750 آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
32
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
تابع Count یکی دیگر از توابع، COUNT است. این به ما اجازه میدهد تا تعداد سطرهای یک جدول را بشماریم . گرامر دستوری بصورت زیر است . SELECT COUNT(<column_name>) FROM <table_name> مثال: شمردن سطر های جدول فروش : Table Store_Information SELECT COUNT (store_name) FROM Store_Information store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه: count(store_name) 4 آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
33
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
تابع Count COUNT و DISTINCT را میتوان برای بدست آوردن مقادیر خاص جدول، با هم در یک عبارت نوشت. مثلا اگر ما بخواهیم تعداد فروش های ویژه جدول را بشماریم باید تایپ کنیم : SELECT COUNT (DISTINCT store_name) FROM Store_Information store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه: Count (DISTINCT store_name) 3 آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
34
دستور گروه بندی نتایج Group By
به یاد داریدکه از تابع SUM برای محاسبه کل فروش استفاده کردیم؟ حالا اگر بخواهیم کل فروش فروشگاه های هر شهر را بدست آوریم چه باید بکنیم؟ اینجا 2 چیز لازم است. اول باید نام فروشگاه ها را مانند کل فروش جمع ببندیم و سپس باید مطمئن شویم که تمام فروش ها طبق نام فروشگاه ها باید دسته بندی شود. قالب کلی استفاده از Group By بصورت زیر است. SELECT <column_name1>, SUM(<column_name2>) FROM <table_name> GROUP BY <column_name1> آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
35
دستور گروه بندی نتایج Group By
مثال: جدول زیر را در نظر بگیرید . Table Store_Information SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه کلمه کلیدی Group By وقتی استفاده میشود که ما در حال انتخاب چند ستون هستیم و حداقل یک عملگر محاسباتی در عبارت select داریم . در این زمان ما باید تمام ستونهای دیگر را گروه کنیم. store_name SUM(Sales) Los Angeles $1800 San Diego $250 Boston $700 آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
36
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Having اگر بخواهیم شرطها را روی گروه ها اعمال کنیم از عبارت Having استفاده می کنیم. این عبارت دقیقاً شبیه به Where عمل میکند با این تفاوت که شرط را روی خروجی دستور Group By اعمال میکند. بطور مثال ممکن است بخواهیم فروشگاه هایی که بیش از 1500 دلار فروش دارند را استخراج کنیم . بجای استفاده از where ما باید از Having استفاده کنیم که برای توابع جمعی استفاده میشود. Having معمولا در انتهای جمله query شما استفاده میشود. جمله ای که Having دارد میتواند group by هم داشته باشد . SELECT <column_name1>, SUM(<column_name2>) FROM <table_name> GROUP BY <column_name1> HAVING (arithmetic function condition) آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
37
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Having مثال: جدول زیر را در نظر بگیرید . Table Store_Information SELECT store_name, SUM(sales) FROM Store_Information GROUP BY store_name HAVING SUM(sales) > 1500 store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 این دستور لیست فروشگاههایی که بیش از 1500 دلار فروش کرده اند را بر می گرداند. در این حالت ابتدا جمع کل فروش فروشگاه با تابع SUM محاسبه شده و سپس بوسیله Having بررسی می شود که آیا جمع کل از 1500 بیشتر بوده است یا نه. نتیجه store_name SUM(Sales) Los Angeles $1800 آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
38
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
َاسامی مستعار، Alias دو نوع نام مستعار وجود دارند که اکثرا استفاده میشود . یکی نام مستعار ستون و یکی نام مستعار جدول. بطور خلاصه نام مستعار ستون برای سامان دادن به خروجی استفاده میشود. یعنی نام بالای ستون ها در خروجی قابل تغییر است . نوع دوم نام مستعار جداول است: با نوشتن نام مستعار درست بعد از نام جدول بعد از From انجام میشود. راحتی استفاده از این کلمه کلیدی در هنگام استفاده از دو جدول در استخراج جداول است که اطلاعات توسط کلمه Join متحد و سپس استخراج می گردد. قبل از اینکه به Join برسیم بیایید نگاهی به Alias بیندازیم . SELECT <table_alias>.<column_name1> <column_alias> FROM <table_name> <table_alias> بطور خلاصه هر دو نوع مستعار ها بعد از آیتمی میایند که نام مستعارش هستند . البته با یک فاصله . آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
39
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
َاسامی مستعار، Alias مثال: جدول زیر را در نظر بگیرید . Table Store_Information SELECT A1.store_name Store, SUM(A1.Sales) ‘Total Sales’ FROM Store_Information A1 GROUP BY A1.store_name ; store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 نتیجه Store Total Sales Los Angeles $1800 San Diego $250 Boston $700 در این دستور A1 یک آلیاس یا نام مستعار برای جدول Store_Information می باشد. آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
40
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Join برای ترکیب نتایج دو دو یا چند جدول از دستور Join استفاده میشود. برای یادگیری join نیاز به بسیاری از کلمات کلیدی ای داریم که در دروس قبل آموختیم. به دو جدول زیر توجه کنید . Table Store_Information Table Geography store_name Sales Date Los Angeles $1500 Jan San Diego $250 Jan $300 Jan Boston $700 region_name store_name East Boston New York West Los Angeles San Diego آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
41
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Join چیزی که ما نیاز داریم اینه که میخواهیم فروش را در هر منطقه جغرافیایی بدست بیاریم . می بینیم که جدول Geography اطلاعات مناطق جغرافیایی را در بر دارد و جدول Store_Information اطلاعات فروش شهر ها را . برای بدست آوردن فروش در هر منطقه ، ما باید اطلاعات بدست آمده از هر منطقه را در هم ترکیب کنیم . با نگاهی به دو جدول می فهمیم که یک فیلد مشترک در هر دو موجود است و آن store_name میباشد که با یک کاما بهم وصل میشوند . کد زیر را ببینید تا توضیحات را شرح دهیم . SELECT A1.region_name REGION, SUM (A2.Sales) SALES FROM Geography A1, Store_Information A2 WHERE A1.store_name = A2.store_name GROUP BY A1.region_name نتیجه REGION SALES East $700 West $2050 آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
42
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Join دو خط اول کد به SQL-Server میگوید که دو فیلد را انتخاب کند. اولین خط فیلد region_name است از جدول Geography که نام مستعار REGION گرفته است. و دومین خط حاصل فیلد sales از جدول Store_Information که نام مستعار SALES گرفته است. دقت کنید که چگونه مستعار های جدول در اینجا بکار گرفته شده . Geography بعنوان A1 مستعار شده و Store_information بنام A2. بدون استفاده از مستعار ها خط اول بصورت زیر در میاید . SELECT Geography.region_name REGION, SUM (Store_Information.Sales) SALES اساسا کار مستعار ها قابل درک کردن کد های طولانی SQL است . بخصوص هنگامی که چند جدول در کار است . آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
43
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
دستور Join حال بخط سوم کد اصلی توجه کنید ،یعنی کلمهwhere. اینجا جائیست که کار join معلوم میشود . در این حالت ما میخواهیم مطمئن شویم که محتوای "store_name” در جدول Geography با مقادیر آن در جدول Store_Information نظیر میشود و راه آن این است که آنها را برابر هم قرار دهیم . کلمه where به این دلیل لازم است که مطمئن شویم اطلاعات درست بدست می آید. بدون یک کلمه where درست ، یک نتیجه ضرب دکارتی بدست میاید . نتیجه دکارتی در اصل ترکیبی از تمام حالات بوجود آمده از دو جدول را ارائه میکند. یعنی نتیجه برابر می شود با 4 × 4 = 16 آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
44
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
45
آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
پایان بخش هشتم ؟ آزمایشگاه پایگاه داده ها - دستورات مهم SQL در SQL Server
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.