هداد هاگیاپ2 هسلج6
نایجرف
5/7/2015 1 سردم:نایجرف یلع دمحم
2 6 5/7/2015 1 : - - PowerPoint PPT Presentation
2 6 5/7/2015 1 : SQL ANY ALL
نایجرف
5/7/2015 1 سردم:نایجرف یلع دمحم
ALL هسیاقم ربارب”ریداقم همه“ رگلمع و ANY ( SOME ) يارب“ریداقم زا کی ره” دنا هدش فیرعت.
10 تسا رتشیب.
SELECT * FROM stud WHERE avg > ALL ( SELECT avg FROM stud
WHERE clg# = 10)
More SQL SELECT
Find the names of the employee(s) who earn the highest salary
SELECT Name FROM Employee WHERE Salary >= ALL ( SELECT Salary FROM Employee) Name Salary Mary 20,000 John 15,000 Jane 25,000 Paul 30,000
More SQL SELECT
Find the names of employee(s) who earn more than someone else
SELECT Name FROM Employee WHERE Salary > ANY ( SELECT Salary FROM Employee)
Name Salary Mary 20,000 John 15,000 Jane 25,000 Paul 30,000
لاثم :تسا يمقر کي و درف يددع اهنآ دک هک يياه هدکشناد.
select * from clg where clg# = ANY(1 , 3 , 5 , 7 , 9)
عباوت COUNT ای و CONTAINS تسا ریذپ ناکما.
لاثم :دنا هتفرگ ار ناشا هدکشناد ياه سرد همه هک ينايوجشناد هرامش.
SELECT stud.s# FROM stud,sec,crs WHERE stud.s#=sec.s# AND sec.c#=crs.c# GROUP BY stud.s# HAVING COUNT(DISTINCT sec.c#) = (SELECT COUNT(c#)
FROM crs
WHERE crs.clg#=stud.clg#);
لاثم :دنا هتفرگ ار يزيربت داتسا طسوت هدش هيارا سورد يمامت هک ينايوجشناد هرامش.
SELECT sec.s# FROM sec WHERE pname=‘يزیربت’ GROUP BY sec.s# HAVING c# CONTAINS ( SELECT c#
FROM sec WHERE pname=‘يزیربت’)
SELECT * FROM Student NATURAL JOIN Enrolment
Enrolment ID Code 123 DBS 124 PRG 124 DBS 126 PRG Student ID Name 123 John 124 Mary 125 Mark 126 Jane ID Name 123 John 124 Mary 124 Mary 126 Jane Code DBS PRG DBS PRG
روتسد يلک مرف: SELECT <select list> FROM <first_table> <join_type> <second_table> [ON <join_condition>]
SELECT * FROM Buyer INNER JOIN Property ON Price <= Budget
Property Address Price 15 High St 85,000 12 Queen St 125,000 87 Oak Row 175,000 Buyer Name Budget Smith 100,000 Jones 150,000 Green 80,000 Name Budget Address Price Smith 100,000 15 High St 85,000 Jones 150,000 15 High St 85,000 Jones 150,000 12 Queen St 125,000
لاثم :رتويپماک هدکشناد ديتاسا يماسا
SELECT prof.pname FROM prof JOIN clg ON prof.clg#=clg.clg# WHERE clgname=‘رتویپماک’ SELECT prof.pname FROM prof, clg WHERE prof.clg#=clg.clg# AND clgname=‘رتویپماک’
يلک راتخاس: SELECT <SELECT list> FROM <the table you want to be the "LEFT" table> <LEFT|RIGHT> [OUTER] JOIN <table you want to be the "RIGHT" table> ON <join condition>
OUTER تسا يرایتخا .
LEFT OUTER JOIN دشاب يم پچ تمس لودج تاعلبطا همه لماش.
RIGHT OUTER JOIN دشاب يم تسار تمس لودج تاعلبطا همه لماش.
لاثم :نآ هدنهد هيارا هدکشناد مان هارمهب ،سورد مامت مان.
SELECT cname, clgname FROM crs LEFT OUTER JOIN clg ON crs.clg# = clg.clg#
لاثم :دنهد يم هيارا هک يسورد مان هارمهب ،اه هدکشناد مامت مان.
SELECT cname, clgname FROM crs RIGHT OUTER JOIN clg ON crs.clg# = clg.clg#
LEFT JOIN و RIGHT JOIN ار زا میشاب هتشاد مه اب FULL JOIN مییامن يم هدافتسا.
دهد يم دنویپ تسار تمس لودج( .يتراکد برض هباشم)
رگلمع
درادن.
SELECT <select list> FROM <first_table> <cross join> <second_table>
SELECT * FROM Student CROSS JOIN Enrolment
Enrolment ID Code 123 DBS 124 PRG 124 DBS 126 PRG Student ID Name 123 John 124 Mary 125 Mark 126 Jane
ID Name ID Code 123 John 123 DBS 124 Mary 123 DBS 125 Mark 123 DBS 126 Jane 123 DBS 123 John 124 PRG 124 Mary 124 PRG 125 Mark 124 PRG 126 Jane 124 PRG 123 John 124 DBS 124 Mary 124 DBS
SELECT * FROM A CROSS JOIN B
SELECT * FROM A, B SELECT * FROM A NATURAL JOIN B
SELECT A.col1,… A.coln, [and all other columns apart from B.col1,…B.coln] FROM A, B WHERE A.col1 = B.col1 AND A.col2 = B.col2 ...AND A.coln = B.col.n (this assumes that col1… coln in A and B have common names)
base table ) : روتسد اب create table دوش يم داجیا.
intermediate table :) داجیا متسیس طسوت دوش يم.
veiws ) : اما درادن يکیزیف و يجراخ دوجو داد رییغت ارنآ و تشاد يسرتسد نآ هب ناوت يم.
تسا ناربراک دید ندرک دودحم و دوجوم.
CREATE VIEW view_name [(attributes)] AS SELECT…
لاثم :سرد داتسا و اه هورگ ،مان لماش يزاجم لودج.
Create view v_tablae as Select cname, sec#, pname From crs,sec Where crs.c#=sec.c#
درک. Create view v_tablae (course , section , professor) as Select cname, sec#, pname From crs,sec Where crs.c#=sec.c#
دوش يم میسقت:
تارايتخا ءاطعا روتسد
GRANT Privileges | ALL Privileges ON Object TO Users [WITH GRANT OPTION];
Privileges تاملک زا يبیکرت ای يکی زا
INSERT ، DELETE ، UPDATE ، SELECT ددرگ يم هدافتسا.
Object ددرگ يم باختنا کناب رد دوجوم ءایشا زا يکی.
Users ددرگ يم باختنا هداد هاگیاپ ناربراک زا يکی مان.
WITH GRANT OPTION
نیا دناوت يم ربراک ينعی ،دوش هدافتسا دیامن راذگاو زین رگید ناربراک هب ار اه زایتما.
لاثم:
GRANT INSERT, SELECT, UPDATE ON crs, sec TO haghjoo, rahimi; GRANT UPDATE(degree, esp) ON prof TO naime; GRANT SELECT ON university TO Rahimi WITH GRANT OPTION;
REVOKE ددرگ يم هدافتسا.
REVOKE Privileges | ALL Privileges ON Object FROM Users
REVOKE INSERT ON crs, sec FROM haghjoo;
5/7/2015 سردم:نایجرف یلع دمحم 29