Professional Documents
Culture Documents
یناخ یداه رتکد هداد هاگیاپ = مارگلت لاناک @Dbkonkur: روتسد drop table
یناخ یداه رتکد هداد هاگیاپ = مارگلت لاناک @Dbkonkur: روتسد drop table
مثل
پاسخ) خیر کلید اصلی این جدول یعنی cnameدر جدول attبه عنوان کلید خارجی تعریف شده است .اجرا
این دستور referential integrity errorمیدهد.
پاسخ) بلی .البته به شرط آنکه جدول attخالی باشد ،هیچ سطری نداشته باشد.
1
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
پاسخ) به جدول attیک ستون جدید به نام attdateاز نوع DATETIMEاضافه میکند.
سواال) بعد از این که چند سطر وارد کردیم .به این نتیجه میرسیم که تنها 10کاراکتر برای ستون cnameکافی
است ،چه باید کرد؟
پاسخ) هیچ کار نمیتوان کرد! در دستور ALTERنوع قبلی باید زیر مجموعه نوع جدید باشد .مگر اینکه این
ستون جدول خالی باشد و هیچ مقداری نداشته باشد.
پاسخ(
2
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
int
smallint
پاسخ) در برخی از پیادهسازی های این امکان وجود دارد .مثل دستور زیر meetingو مقادیر آن را از جدول
attحذف میکند.
نکته این حذف در صورتی امکانپذیر است که ستون مورد نظر کلید اصلی نباشد.
دستورات DML
دستور Insert Into
برای اضافه کردن سطر به جدول از این دستور استفاده میکنیم.
پاسخ)
3
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
پاسخ) این دستور به خطا مواجه میشود ،زیرا attnoستون اصلی است و نباید nullباشد.
طبق تعریف نباید nullباشد. پاسخ) این دستور خطا دارد .زیرا ستونsname
)INSERT INTO att VALUES ('amin', 'AI', 2005 سوال) خروجی این دستور چیست؟
پاسخ) خطا .نمیتوان در یک جدول با 5ستون ،سطر 3ستونی وارد کرد! شرط نخست سازگاری عمل اجتماع
را نقض کردهاست.
پاسخ) خطا .در ستون meetingفقط باید مقادیر intوارد کرد .شرط دوم سازگاری را نقض کرده است.
INSERT INTO att (sname, cname, meeting, hour, attno) VALUES ('amin', 'AI', 3, 3.5,
)1760
ً
صراحتا مشخص شده و بقیه ستونها nullمیشوند. در این شکل ستونهایی که باید مقدار بگیرند،
4
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
)INSERT INTO att (sname, cname, attno) VALUES ('amin', 'AI', 2005
نکته) در دستور insert intoکلید خارجی باید در جدول مرجع وجود داشته باشد.
به عنوان نمونه اگر در جدول courseدرس AIو در جدول sara ،studentنداشته باشیم دستور زیر خطا تولید
میکند.
5
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
دستور Delete
با این دستور میتوان یک سطر یا چند سطر از پایگاه داده حذف کرد.
نکته) با این دستور میتوان تمام سطرهای یک جدول را حذف کرد ولی خود جدول را نمیتواند از ساختار
پایگاه داده حذف کند!
نکته) در عمل برای جلوگیری از حذف سهوی داده شرط حذف بر اساس کلید اصلی نوشته میشود.
6
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
@DBKONKUR= کانال تلگرام پایگاه داده دکتر هادی خانی
7
. برای درک بهتر حتما فیلمها را هم مشاهده کنید.این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
نکته) برای حذف یک سطر باید کلید اصلی آن مرجع هیچ کلید خارجی نباشد.
دستور update
با استفاده از این دستور میتوان تغییرات دلخواه را روی محتوی جدول انجام داد .مثل فرض کنید .شهر محل
سکونت یک دانشجو عوض شود.
UPDATE att SET hour = hour * 1.5 WHERE hour > 2
مثال) حضورهای attبیشتر از 2ساعت را 50درصد زیاد کنید .و کمتر از 2ساعت را 20درصد
8
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
@DBKONKUR= کانال تلگرام پایگاه داده دکتر هادی خانی
تغییر نام باعث نقض قانون. ارجاع میدهدstudent در جدولamin هست و بهatt در جدولamin )پاسخ
!سوم جامعیت از نظر محتوایی می شود
. به هنگام ایجاد جدول و تعریف کلید خارجی میباشدon update cascade راه حل استفاده
Student
sname city Univ
Ali Tehran Sharif
Reza Sari Kerman
9
. برای درک بهتر حتما فیلمها را هم مشاهده کنید.این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
Att
Sname cname meeting Hour Attno
Ali DB 2 2.5 1576
Reza AI 1 1.5 1760
Amin ala AI 3 3.5 1790
Sara AI null null 2040
سوال) خروجی پرسوجوی زیر چیست؟
Student
sname city Univ
Ali Tehran Sharif
Reza Sari Kerman
Sara Bam Tabriz
Amin Kish Babol
پاسخ) این دستور خطای duplicateمیدهد زیرا snameکلید اصلی است و نمیتواند تکراری باشد.
پاسخ) در updateما یک تعداد سطر را حذف deleteکرده و دوباره با مقادیر بروزرسانی وارد insertکردهایم .در
جبر رابطهای معادل updateرا نداریم.
10
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
دستور SELECT
دستور selectمهمترین و پرکاربردترین دستور SQLبرای گزارشگیری از جدولهای پایگاه داده کاربرد دارد.
ً
بعدا امکانات دستور selectرا با مثال و پرسوجوهای متنوعی در هفته اول درس توضیح دادیم .علوه بر آن
به هنگام پیادهسازی آن پرسوجوها با عملگرهای جبر رابطهای دوباره آنها را یادآوری کردیم.
student Att
sname City Univ Sname cname meeting Hour Attno
Ali Tehran Sharif Ali DB 2 2.5 1576
Reza Sari Kerman Reza AI 1 1.5 1760
Sara Bam Tabriz Amin ala AI 3 3.5 1790
Amin Kish Babol Sara AI null null 2040
اطلعات شهر دانشجویان در جدول studentو اطلعات حضور در جدول attاست .پس ما باید این دو جدول
را در پرسوجو با هم ترکیب(الحاق)(ضرب) کنیم.
مثال) نام دانشجویانی که با rezaدر یک شهر زندگی میکنند و با رضا هم دانشگاهی نیز هستند.
Student
sname city Univ
11
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
@DBKONKUR= کانال تلگرام پایگاه داده دکتر هادی خانی
B
city Univ
Sari Kerman
. الحاق (ضرب) میکنیمstudent این جدول را با جدول
B x Student
city Univ sname city Univ
sari Kerman Ali Tehran Sharif
Sari Kerman Reza Sari Kerman
Sari Kerman Sara Bam Tabriz
Sari Kerman Amin Sari Kerman
دارند جوابB.city = student.city AND B.uni = student.uni در جدول حاصلضرب باال سطرهایی که شرط
.هستند
SELECT B.city
from (
SELECT city, uni
FROM student
WHERE sname = 'Reza') AS B, student
WHERE B.city = student.city AND B.uni = student.uni
. ولی میتوان با یک نامگذاری دیگر آن را سادهتر نوشت.نوشتن پرسوجو اینجا به پایان میرسد
SELECT B.city
from (
SELECT city, uni
FROM student
WHERE sname = 'Reza') AS B, student AS S
WHERE B.city = S.city AND B.uni = S.uni
. استفاده نشده و به شکل زیر نوشتهمیشودAS نکته در برخی از پیادهسازی ( و بعضی از سواالت کنکور) از
SELECT B.city
from (
SELECT city, uni
12
. برای درک بهتر حتما فیلمها را هم مشاهده کنید.این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
FROM student
WHERE sname = 'Reza') B, student S
WHERE B.city = S.city AND B.uni = S.uni
تعریف جدول پایه )baseجدولی که توسط طراح پایگاهداده با استفاده از create tableبه طور دایمی
ایجادمیشود.
(مشتق) DBMS ) intermediateنتیجهی هر پرسوجو SQLبه طور موقت در یک تعریف جدول میانی
جدول میانی ذخیره میکند.
مثال) نام دانشجویانی که در کلس AIشرکت کردهاند ولی درس پایگاه داده را خریدهاند.
شکل اول)
SELECT B.sname
FROM buy AS B, Att AS A
'WHERE B.sname = A.sname and B.cname = 'DB' and A.cname = 'AI
شکل دوم)
SELECT B.sname
* FROM ( SELECT
FROM buy
WHERE cname = 'DB') AS B, Att AS A
'WHERE B.sname = A.sname and A.cname = 'AI
شکل سوم)
SELECT B.sname
FROM buy AS B,
* ( SELECT
FROM Att
WHERE cname = 'AI' ) AS A
'WHERE B.sname = A.sname and B.cname = 'DB
شکل چهارم)
13
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
SELECT B.sname
* FROM ( SELECT
FROM buy
WHERE cname = 'DB') AS B,
* ( SELECT
FROM Att
WHERE cname = 'AI' ) AS A
WHERE B.sname = A.sname
عملگرهای ویژه
این عملگرها کار نوشتن پرسوجوها را راحتتر میکند .مزایای استفاده از این عملگرها به شرح زیر است.
در بین این عملگرها in ،not exists ،existsو not inمهمتر هستند.
ستونها Select
جدولها Form
شرطها Where
Between
Att
Sname cname Meeting hour Attno
Ali DB 2 2.5 1576
Reza AI 1 1.5 1760
Amin AI 3 3.5 1790
sara AI 2 4 2040
مثال) مطلوب است دانشجویانی که بیش از 2و کمتر از 4ساعت در کلسها حضور داشتهاند.
SELECT sname
FROM att
WHERE hour > 2 AND HOUR < 4
این پرسوجو را با betweenمیتوان بازنویسی کرد.
SELECT sname
FROM att
WHERE hour BETWEEN 2 AND 4
14
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
Student
sname city Univ
Ali Tehran Sharif
Reza Sari Kerman
Sara Bam Null
Amin Sari Kerman
SELECT sname
FROM student
WHERE univ IS NOT NULL
با توجه به اینکه nullبا nullمساوی نیست .این پرسوجو را به شکل زیر هم میتوان نوشت.
SELECT sname
FROM student
WHERE univ=univ
مثال) مطلوب است دانشجویانی که نام دانشگاه آنها معلوم نیست.
SELECT sname
FROM student
WHERE univ IS NULL
Likeو not like
مثال) مطلوب است ،نام دانشجویانی که نام آنها به حرف Aختم میشود.
SELECT sname
FROM student
'WHERE sname IS LIKE '%A
نکته :در برخی از پیادهسازیها ممکن است ISوجود نداشتهباشد .و به شکل زیر نوشته شود.
SELECT sname
FROM student
'WHERE sname LIKE '%A
مثال) مطلوبست دانشجویانی که نام آنها با حرف Aشروع نمیشود.
SELECT sname
FROM student
'WHERE snmae IS NOT LIKE 'A%
مثال) مطلوبست دانشجویانی که نام شهر آنها شامل حرف Aمیشود.
SELECT sname
FROM student
'WHERE city IS LIKE '%A%
مثال) مطلوبست دانشجویانی که نام آنها چهار کاراکتری است.
SELECT sname
FROM student
'WHERE city IS LIKE '----
نکته :امکانات نوشتن رشتههای کاراکتری در پیادهسازیهای مختلف خیلی با هم متفاوت است.
توصیهمیشود به مستندات پیادهسازیها مراجعهکنید.
15
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
SELECT city
FROM student
)'WHERE sname IN ('Ali', ’Reza’, 'Sara
پاسخ) شهر aliو reza ، saraاز جدول studentنمایش میدهد.
Student
sname City Univ
Ali Tehran Sharif
Sara Bam Tabriz
مثال)نام و شهر دانشجویانی که در کلس AIحضور داشتهاند.
student Att
sname City Univ Sname Cname meeting Hour Attno
Ali Tehran Sharif Ali DB 2 2.5 1576
Reza Sari Kerman Reza AI 1 1.5 1760
Sara Bam Tabriz Ala AI 3 3.5 1790
Amin Kish Babol Sara AI Null null 2040
اطلعات شهر دانشجویان در جدول studentو اطلعات حضور در جدول attاست .در گذشته این دو جدول را
با ضرب دکارتی ترکیبکرده و جواب را به دست آوردیم .حاال میخواهیم از inاستفاده کنیم.
SELECT sname
FROM att
'WHERE cname = 'AI
Sname
Reza
Ala
Sara
گام دوم) حاال با INاز مجموعه بدست آمده با queryباال در نوشتن queryنهایی استفاده میکنیم.
16
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
SELECT city
FROM student
WHERE sname IN (SELECT sname
FROM att
= WHERE cname
''AI
)
تعریف زیرپرسوجو) اگر یک جفت
select ..fromداخل بدنه یک
select…fromدیگر باشد ،به جفت
select..fromداخلی ،زیرپرسجو subquery
گفته میشود .به پرسوجوی اصلی
پرسوجوی والد ( پدر یا مادر) گفته
میشود.
SELECT B.sname
FROM buy AS B,
* ( SELECT
FROM Att
WHERE cname = 'AI' ) AS A
'WHERE B.sname = A.sname and B.cname = 'DB
نکته) نوع و معنای مجموعهای بعد از INباید همنوع و هممعنا با خصیصهی قبل از INباشد .مثل sname
نام دانشجو است .و زیرپرسوهم مجموعه از نام دانشجویان است .پس درست است.
سوال) نام دانشجویانی اهل Bamکه در کلس DBحضور داشتهاند ولی هیچ کدام از درسهای دکتر خانی را
نخریدهاند.
پاسخ)
17
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
SELECT sname
FROM att
'WHERE cname = 'DB
دانشجویانی که در درس DBحضور داشتهاند
SELECT sname
FROM att
WHERE cname IN ( SELECT CITY
)FROM student
پاسخ) این پرسوجو بیمعنی و غلط است .زیرا cnameاسم درس نمیتواند عضوی از مجموعه cityشهرها
باشد .توجه کنید با اینکه پرسوجو بیمعنی است ،ولی به خاطر اینکه cnameو cityهر دو رشته کاراکتری و
همنوع هستند ،خطای نحوی نخواهیم داشت.
SELECT sname
FROM att
WHERE cname IN ( SELECT attno
)FROM att
پاسخ) این پرسوجو خطای نحوی تولید میکند .زیر cnameاز نوع رشته کاراکتری است ولی attnoاز نوع int
است.
نکته) نوع و معنای مجموعهای بعد از INباید همنوع و هممعنا با خصیصهی قبل از INباشد .مثل sname
نام دانشجو است .و زیرپرسوهم مجموعه از نام دانشجویان است .پس درست است.
Some
مثل INدر بخش شرط نوشته میشود.
18
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
SELECT sname FROM att پاسخ) نام دانشجویانی که کلسها را خریدهاند در جدول attاست.
SELECT sname FROM buy نام دانشجویانی که کلسها را خریدهاند در جدول buyاست.
Buy Att
Sname Cname Tr_no Amount Sname Cname meeting Hour Attno
Ali AI 1720 300 Ali DB 2 2.5 1576
Reza DB 1500 550 Amin AI 1 1.5 1760
Sara AI 1755 430 Ala AI 3 3.5 1790
Hadi DB 3466 550 Sara AI Null null 2040
B A
reza Ali amin
Hadi sara
ala
برای اینکه با existsبهتر آشنا شویم .این پرسوجو را اینبار بدون استفاده از intersectمینویسیم.
فرم )2هر عضو Aکه وجود دارد عضوی از Bکه همنام باشد.
که داشته باشیم فرم )3هر snameسطری (عضو) attکه وجود داشته باشد سطری (عضوی) ازbuy
buy.sname = att.sname
SELECT sname
FROM att
* WHERE EXISTS (SELECT
FROM buy
)WHERE buy.sname = att.sname
اینجا هم زیر پرسوجو داریم .سوال این زیر پرسوجو با زیرپرسوجوهای قبلی چه تفاوتی دارد.
پاسخ) در قسمت whereزیرپرسوجو سمت چپ ،قسمتی از FROMپرسوجوی مادر آمده است .اصطلحا
گفته میشود زیرپرسوجو به پرسوجوی مادر متصل شدهاست .و به attمیگوییم نقطه اتصال.
تعریف پرسوجوی متصل) اگر زیر پرسوجو در بخش شرط به پرسوجوی مادر مرتبط باشد .پرسوجوی
متصل ) (Correlated queryگفته میشود.
تعریف زیرپرسوجوی مستقل) زیر پرسوجوی بدون نقطه اتصال ،پرسوجوی مستقل نامیده میشود.
نکته) برای عملگرهای existsو not existsوجود نقطه اتصال الزامی است.
20
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
سوال) اگر attبه جای 4سطر 4000سطر داشت ،به چند سوال باید جواب میدادید.
SELECT sname
FROM att
* WHERE EXISTS (SELECT
FROM buy
)WHERE buy.sname = att.sname
سوال) به نظر شما این دو پرسجو با پرسوجوی باال چه تفاوتی دارد؟
پاسخ) هیچ تفاوتی ندارد .هر سه نام دانشجویانی که هم دورهها را خریدهاند و هم در دورهها شرکت کردهاند
را نمایش میدهد.
نکته) پرسوجوی با existsرا به گونهی دیگر هم میتوان تفسیر کرد .سطرهایی از attکه به ازای آن عبارت
(مجموعه) بعد از existsتهی نباشد.
نکته) اگر به جای existsاز not existsاستفاده کنیم می شود .سطرهایی از attکه به ازای آن عبارت
(مجموعه) بعد از existsتهی باشد.
مثالی که تا اینجا گفتیم فقط برای آشنایی با existsبود .هنر اصلی existsدر شبیهسازی تقسیم دیده میشود.
در sqlعملگر تقسیم جبر رابطهای پیادهسازی نشده و باید آن را شبیهسازی کنیم.
21
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
@DBKONKUR= کانال تلگرام پایگاه داده دکتر هادی خانی
. همه دورهها را خریدهاست،هر دانشجویی که نتیجه تفاضل لیست خریدش از لیست دورهها تهی باشد
SELECT student.sname
FROM student
WHERE NOT EXISTS ( SELECT cname FROM course
EXCEPT
SELECT buy.cname FROM buy
WHERE student.sname = buy.sname)
. استفاده میکنیمRename نکته) برای سادهسازی از
SELECT S.sname
FROM student S
WHERE NOT EXISTS ( SELECT cname FROM course
EXCEPT
SELECT B.cname FROM buy B
WHERE S.sname = B.sname)
.یادآوری) دقت کنید که همچنان نقطه اتصال داریم
وnot exists این روش از. استSQL نکته) این اولین روش پیادهسازی (شبیهسازی) تقسیم با دستورات
. استفاده میکندexcept
22
. برای درک بهتر حتما فیلمها را هم مشاهده کنید.این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است
کانال تلگرام =@DBKONKUR پایگاه داده دکتر هادی خانی
Sara Qom Sharif Hadi DB 500 8997 Reza AI 3 4 5052
Ala AI 430 9097 Sara AI 1 2.2 5456
Ala DB 1 3.5 6873
Amin DB 2 1 7365
پاسخ) این پرسوجو شبیه پرسوجوی قبل است .فقط به جای همه کلسها گفته همه کلسهای دکتر خانی.
پس هر دانشجویی که نتیجه تفاضل لیست خریدش از لیست دورههای دکتر خانی تهی باشد ،همه دورهها را
خریدهاست.
SELECT S.sname
FROM student S
’WHERE NOT EXISTS ( SELECT cname FROM course WHERE tname = ‘Khani
EXCEPT
SELECT B.cname FROM buy B
)WHERE S.sname = B.sname
پیاده سازی دوم تقسیم NOT EXISTS … NOT EXISTS
عملگر تقسیم را به شکل دومی هم میتوان پیادهسازی کرد.
دانشجویانی
دانشجویانی
SELECT S.sname
FROM student S
WHERE NOT EXISTS (SELECT C.cname
FROM course C
'WHERE tname = 'Khani
AND NOT EXISTS ( SELECT B.cname
FROM buy B
WHERE B.cname = C.cname
)AND S.sname = B.sname
نکته) در این پیاده سازی چون دو تا NOT EXISTSداریم ،دو نقطه اتصال الزم داریم.
23
این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است .برای درک بهتر حتما فیلمها را هم مشاهده کنید.
@DBKONKUR= کانال تلگرام پایگاه داده دکتر هادی خانی
.نکته) این تابع یک ستون را به عنوان ورودی گرفته و مقدار کمینه را به خروجی میدهد
MAX تابع
. هستندBam دانشجویانی که اهلDB مثال) طوالنی ترین حضور در کلس
24
. برای درک بهتر حتما فیلمها را هم مشاهده کنید.این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است
@DBKONKUR= کانال تلگرام پایگاه داده دکتر هادی خانی
تعدادی از سطرها انتخاب، با شرطهای نوشته شده.نکته) تابع عددی روی تمامی سطرها اعمال نمیشود
.شده و تابع فقط روی آن سطرها اعمال میشود
AVG تابع
مثال) میانگین رقم پرداخت شده برای خرید چند بودهاست؟
. را خریدهاند و از میانگین رقم خرید همه دانشجویان بیشتر استAI مثال) دانشجویانی که درس
SELECT sname
FROM Buy
WHERE amount > AVG (amoutn)
and cname = 'AI'
. بیادSECLECT مانند بقیه توابع عددی باید بعد ازAVG . خطای نحوی داردSQL نکته) این عبارت
25
. برای درک بهتر حتما فیلمها را هم مشاهده کنید.این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است
@DBKONKUR= کانال تلگرام پایگاه داده دکتر هادی خانی
)پاسخ صحیح
SELECT sname
FROM Buy
WHERE amount > (SELECT AVG (amount)
FROM Buy)
and cname = 'AI'
سوال) در عبارت باال پرسوجوی مادر و فرزند را مشخص کنید؟
exists, not exists )2 ) توابع عددی1 یک جدول است به غیر ازSELECT نکته) خروجی هر
Count تابع
. را مشخص کنیدDB مثال) تعداد حضورهای درس
)پرسوجوی اول
در آنnull عملیات مربوطه بدون در نظر گرفتن مقادیر،نکته) در اجرای توابع عددی روی ستونی از جدول
.ستون انجام میگیرد
26
. برای درک بهتر حتما فیلمها را هم مشاهده کنید.این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است
@DBKONKUR= کانال تلگرام پایگاه داده دکتر هادی خانی
27
. برای درک بهتر حتما فیلمها را هم مشاهده کنید.این جزوه برای استفاده به همراه فیلمهای آموزشی آماده شده است