1 / 33

جلسه ششم

جلسه ششم. SQL (Structured Query Language). آنچه در اين جلسه مي خوانيد:. 1) زبان SQL - انواع داده اي در SQL - انواع دستورات SQL دستورات مربوط به اسکيما ( DDL ) دستورات کار با داده ها ( DML ) دستورات کنترلي ( DCL ). آنچه در اين جلسه مي خوانيد:.

Download Presentation

جلسه ششم

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. جلسه ششم SQL (Structured Query Language)

  2. آنچه در اين جلسه مي خوانيد: • 1) زبان SQL • - انواع داده اي درSQL • - انواع دستورات SQL • دستورات مربوط به اسکيما (DDL) • دستورات کار با داده ها (DML) • دستورات کنترلي (DCL)

  3. آنچه در اين جلسه مي خوانيد: • تست دستورات SQL در Query Analyzer

  4. انواع داده اي در SQL

  5. انواع عددي • tinyint : عدد صحيح 1 بايتي مثبت (0 تا 255) • smallint : عدد صحيح 2 بايتي (32768- تا 32767) • int: عدد صحيح 4 بايتي (2147483648- تا 2147483647) • bigint : عدد صحيح 8 بايتي • decimal : اعداد حقيقي از -10^38 - 1 تا 10^38 - 1 • real : اعداد اعشار 4 بايتي با دقت 7 رقم • float : اعداد اعشار 8 بايتي با دقت 15 رقم

  6. انواع کاراکتري • char : رشته تا حداکثر 8000 کاراکتر : ذخيره با طول ثابت • varchar : رشته تا حداکثر 8000 کاراکتر : ذخيره با طول متغير • nchar: رشته تا حداکثر 4000 کاراکتر: ذخيره با طول ثابت و بصورت Unicode • nvarchar : رشته تا حداکثر 4000 کاراکتر: ذخيره با طول متغير و بصورت Unicode

  7. انواع ديگر • bit : مقادير منطقي 0 و 1 • text : متن شامل حداکثر 2147483647 کاراکتر • ntext: متن شامل حداکثر 1073741823کاراکتر: ذخيره Unicode • image : براي ذخيره هر نوع داده با حجم زياد تا 2147483647 بايت. • مثلا براي ذخيره يک فايل يا يک عکس در DB

  8. دستورات کار با اسکيما (DDL)

  9. تعريف جدول جديد • CREATE TABLE "table_name"("column 1“ "data_type","column 2" "data_type",... • ) • Example1: • CREATE TABLEStudents( Idint primary key, Name Nvarchar(15)not null,SurName Nvarchar(20) not null, • Field Nvarchar(10))

  10. Example2: CREATE TABLE TelNums (Id int Identity, TelNum Nvarchar(15), Type Nvarchar(5), SId int, Primary Key (Id), Foreign Key (SId) references Students(Id) )

  11. از بين بردن يک جدول DROP TABLE "table_name" Example: Drop TABLEStudents

  12. تغيير در اسکيماي يک جدول • Alter TABLE "table_name“ • [Drop| Add | Alter] column … • Examples: • Alter TABLEStudents Add BirthDate nvarchar(20) • Alter TABLEStudents Altercolumn name nvarchar(6) null • Alter TABLEStudents Dropcolumn Field افزودن يک فيلد جديد تغيير در تعريف يک فيلد حذف يک فيلد

  13. دستورات کار با داده ها (DML)

  14. 1- دستور Select بازيابي داده ها از جداول

  15. ساختار يک دستور ساده Select • SELECTاسامي فيلدهاFROMجدول • WHEREشرط • مثال: ليست شماره و نام تمام دانشجويان. • Select Id,Name from S • مثال: ليست مشخصات تمام دانشجويان رشته هاي کامپيوترو شيمي. • Select * from S where Field=‘Computer’ or Field= ‘Chemistry’ • مثال: ليست اسامي دانشجويان کامپيوتر که شماره آنها کمتر از 84110 است. • Select Name from S where Field=‘Computer’ and Id<84110 رابطه S projection selection

  16. مقادير ممکن بجاي اسامي فيلدها: • يک عدد ثابت • Select Name, 5 from S • 2) يک فرمول • Select Name, Id/10 as NewID from S • 3) ترکيب چند فيلد رشته اي • مثال: ليست نام و نام خ دانشجويان. • Select Name + ‘ ’ + Family as CompleteName from S نام گذاري يک ستون در خروجي

  17. = Null بررسي خالي بودن يک فيلد • SELECTاسامي فيلدهاFROMجدول • WHEREفيلدIS NULL • مثال: ليست شماره و رشته دانشجوياني که رشته آنها وارد شده است. • Select Id,Field from S where not Field Is Null • مثال: ليست شماره دانشجوياني که نه رشته و نه نام خ آنها وارد نشده است. • Select Id from S where Family Is Null and Field is Null رابطه S

  18. عملگر Order By : مرتب کردن نتايج • SELECTاسامي فيلدهاFROMجدول • WHEREشرط • ORDER BYنام فيلدها [desc | asc] • مثال: ليست شماره و نام خ تمام دانشجويان، مرتب شده براساس شماره بطور صعودي. • Select Id, family from S order by Id • مثال: ليست مشخصات تمام دانشجويان مرتب بر اساس نام خ و سپس نام. • Select * from S order by family, name • مثال: ليست اسامي دانشجويان کامپيوتر بترتيب نزولي شماره آنها • Select Name from S where Field=‘Computer’ order by Id desc رابطه S صعودي نزولي

  19. عملگر Between - براي مقادير عددي و تاريخ است. - خود مقادير ابتدا و انتهاي بازه را هم در نظر مي گيرد. مثال: ليست نام خ تمام دانشجويان که شماره آنها بين 84110 و84120 است. Select Id,Name from S where Id>=84110 and Id<=84120 يا Select Id,Name from S where Id between 84110 and 84120 رابطه S

  20. عملگر Like - براي مقادير رشته اي است. - براي يافتن مقاديري که نه الزاما دقيقا يکسان بلکه مشابه کلمه مورد نظر باشند. - منظور از مشابه بودن اين است که کلمه مورد نظر جزئي از آن باشد. مثال: ليست دانشجوياني که نام آنها با A شروع مي شود. Select * from S where name Like ‘A%’ مثال: ليست دانشجوياني که نام خ آنها با i تمام مي شود. Select * from S where family Like ‘%i’ مثال: ليست دانشجوياني که در نام آنها حرف A يا a وجود دارد. Select * from S where name Like ‘%A%’ or name like ‘%a%’ نکته:اگر علامت % را فراموش کنيم، عملگر Like معادل = عمل مي کند. رابطه S

  21. چند مثال ديگر: • مثال: ليست مشخصات تمام دانشجويان رشته کامپيوتر که نام آنها 3 حرفي و حرف مياني آن l است. • Select * from S where Field=‘Computer’ and name Like ‘_l_’ • مثال: ليست مشخصات تمام دانشجويان که نام آنها با A شروع و به i ختم مي شود . • Select * from S where name Like ‘A%i’ • مثال: ليست اسامي دانشجوياني که حرف دوم و چهارم نام آنها aو s است. • Select name from S where name like ‘_a_s%’ رابطه S

  22. بازيابي رکوردهاي تکراري رابطه S - گاهي ممکن است خروجي يک دستور Select شامل رکوردهاي تکراري باشد. - اگر نخواهيم رکورد تکراري بازيابي شود بايد از عملگرDISTINCT استفاده کنيم. - عملگر ALL برعکس DISTINCT عمل مي کند. - اگر هيچکدام نوشته نشود، بطور پيش فرض ALL در نظر گرفته مي شود. مثال: ليستي از تمام رشته هاي دانشگاه. Select Distinct Field from S مثال: ليست نام و نام خ تمام دانشجويان. Select all Name , Family from S يا Select Name , Family from S SELECT [DISTINCT | ALL] اسامي فيلدهاFROMجدول

  23. عملگر UNION و UNION ALL - اجتماع رکوردهاي دو جدول را برمي گرداند. مثال: ليستي از نام خ تمام اساتيد و دانشجويان. Select Family from S UNION Select Family From T Select Family from S UNION ALL Select Family From T دستور اول دقيقا اجتماع است يعني رکورد هاي تکراري يکبار در خروجي مي آيند. اما در دومي تکرار مي شوند. مثال: ليست مشخصات تمام دانشجويان رشته هاي کامپيوترو شيمي. Select * from S where Field=‘Computer’ UNIONSelect * from S whereField= ‘Chemistry’ رابطه S رابطه T

  24. عملگر IN - عضويت يک مقدار را در يک مجموعه بررسي مي کند. حالت اول) مجموعه ثابت و مشخص است. مثال: ليست مشخصات تمام دانشجويان رشته هاي کامپيوتر، رياضي و شيمي. Select * from S where Field IN (‘Computer’ , ’Math’ , ’Chemistry’) رابطه S رابطه STC (جدول نمرات) رابطه T

  25. عملگر IN حالت دوم) مجموعه ثابت و مشخص نيست. (Nested Query) مثال: ليست مشخصات تمام دانشجويان که تاکنون درس گرفته اند. (بايد Id آنها عضومجموعهSId هاي موجود در STC باشد) SELECT* from S where IdIN (SELECT Sid from STC) SELECT* from S where Id IN (SELECT * from STC) رابطه S رابطه STC (جدول نمرات) رابطه T مجموعه SId هاي موجود در STC Nested Query يک روش پاسخ به پرس و جوهايي است که به بيش از يک جدول نياز دارند

  26. يک مثال ديگر مثال: ليست مشخصات دانشجوياني که تاکنون درس 3 واحدي نگرفته اند. (بايد Id آنها عضومجموعهSId هاي موجود در STC که درس 3واحدي گرفتند نباشد) SELECT* from S where IdNOTIN (SELECT Sid from STC Where CID IN (SELECT CId from C Where Units=3) ) رابطه S رابطه STC (جدول نمرات) رابطه C شماره دانشجويانی که تاکنون درس 3 واحدی گرفته اند

  27. تست دستورات SQL در Query Analyzer

  28. راه دوم باز کردن Query Analyzer

More Related