Download presentation
Presentation is loading. Please wait.
1
(Structured Query Language)
جلسه ششم 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 بايتي ( تا 32767) int: عدد صحيح 4 بايتي ( تا ) bigint : عدد صحيح 8 بايتي decimal : اعداد حقيقي از -10^ تا 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 : متن شامل حداکثر کاراکتر ntext: متن شامل حداکثر کاراکتر: ذخيره Unicode image : براي ذخيره هر نوع داده با حجم زياد تا بايت. مثلا براي ذخيره يک فايل يا يک عکس در DB
8
دستورات کار با اسکيما (DDL)
9
تعريف جدول جديد CREATE TABLE "table_name" ( "column 1“ "data_type", "column 2" "data_type", ) Example1: CREATE TABLE Students ( Id int 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 TABLE Students
12
تغيير در اسکيماي يک جدول
Alter TABLE "table_name“ [Drop| Add | Alter] column … Examples: Alter TABLE Students Add BirthDate nvarchar(20) Alter TABLE Students Alter column name nvarchar(6) null Alter TABLE Students Drop column 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’ مثال: ليست اسامي دانشجويان کامپيوتر که شماره آنها کمتر از است. Select Name from S where Field=‘Computer’ and Id<84110 رابطه S Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Math Chemistry 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 Name Unknown Column Ali Reza Hassan 5 Name NewID Ali Reza Hassan 8411 8412 8413 نام گذاري يک ستون در خروجي CompleteName Ali Ahmadi Reza Rezaei Hassan Hassani
17
بررسي خالي بودن يک فيلد SELECT اسامي فيلدها FROM جدول رابطه S
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 Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Null Chemistry = Null
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 Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Computer Math Chemistry نزولي صعودي
19
عملگر Between - براي مقادير عددي و تاريخ است. رابطه S
- خود مقادير ابتدا و انتهاي بازه را هم در نظر مي گيرد. مثال: ليست نام خ تمام دانشجويان که شماره آنها بين و84120 است. Select Id,Name from S where Id>=84110 and Id<=84120 يا Select Id,Name from S where Id between and 84120 رابطه S Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Math Chemistry
20
عملگر Like - براي مقادير رشته اي است. رابطه S
- براي يافتن مقاديري که نه الزاما دقيقا يکسان بلکه مشابه کلمه مورد نظر باشند. - منظور از مشابه بودن اين است که کلمه مورد نظر جزئي از آن باشد. مثال: ليست دانشجوياني که نام آنها با 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 Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Math Chemistry
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 Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Math Chemistry
22
بازيابي رکوردهاي تکراري
رابطه S - گاهي ممکن است خروجي يک دستور Select شامل رکوردهاي تکراري باشد. - اگر نخواهيم رکورد تکراري بازيابي شود بايد از عملگرDISTINCT استفاده کنيم. - عملگر ALL برعکس DISTINCT عمل مي کند. - اگر هيچکدام نوشته نشود، بطور پيش فرض ALL در نظر گرفته مي شود. مثال: ليستي از تمام رشته هاي دانشگاه. Select Distinct Field from S مثال: ليست نام و نام خ تمام دانشجويان. Select all Name , Family from S يا Select Name , Family from S Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Math 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’ UNION Select * from S where Field= ‘Chemistry’ رابطه S رابطه T Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Math Chemistry TId TName TFamily 1 2 3 Hadi Karim Ali Ahmadi Hassani Omidi
24
عملگر IN - عضويت يک مقدار را در يک مجموعه بررسي مي کند. رابطه S
حالت اول) مجموعه ثابت و مشخص است. مثال: ليست مشخصات تمام دانشجويان رشته هاي کامپيوتر، رياضي و شيمي. Select * from S where Field IN (‘Computer’ , ’Math’ , ’Chemistry’) رابطه S رابطه T رابطه STC (جدول نمرات) Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Math Chemistry TId TName TFamily 1 2 3 Hadi Karim Ali Ahmadi Hassani Omidi SId TId CId mark 84110 84130 2 1 01 03 02 12 8 18
25
عملگر IN رابطه S حالت دوم) مجموعه ثابت و مشخص نيست. (Nested Query)
مثال: ليست مشخصات تمام دانشجويان که تاکنون درس گرفته اند. (بايد Id آنها عضو مجموعه SId هاي موجود در STC باشد) SELECT * from S where Id IN (SELECT Sid from STC) SELECT * from S where Id IN (SELECT * from STC) رابطه S رابطه T رابطه STC (جدول نمرات) Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Math Chemistry TId TName TFamily 1 2 3 Hadi Karim Ali Ahmadi Hassani Omidi SId TId CId mark 84110 84130 2 1 01 03 02 12 8 18 مجموعه SId هاي موجود در STC Nested Query يک روش پاسخ به پرس و جوهايي است که به بيش از يک جدول نياز دارند
26
يک مثال ديگر مثال: ليست مشخصات دانشجوياني که تاکنون درس 3 واحدي نگرفته اند. (بايد Id آنها عضو مجموعه SId هاي موجود در STC که درس 3واحدي گرفتند نباشد) SELECT * from S where Id NOT IN (SELECT Sid from STC Where CID IN (SELECT CId from C Where Units=3) ) رابطه S رابطه STC (جدول نمرات) رابطه C Id Name Family Field 84110 84120 84130 Ali Reza Hassan Ahmadi Rezaei Hasani Computer Math Chemistry SId TId CId mark 84110 84130 2 1 01 03 02 12 8 18 CId CName Units 01 02 DB OS 3 شماره دانشجويانی که تاکنون درس 3 واحدی گرفته اند
27
تست دستورات SQL در Query Analyzer
29
راه دوم باز کردن Query Analyzer
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.