SlideShare a Scribd company logo
1 of 87
Download to read offline
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫مدرس‬:
‫شیرافکن‬ ‫فرشید‬
‫دانشجوی‬‫تهران‬ ‫دانشگاه‬ ‫دکتری‬
(‫ارشد‬ ‫کارشناسی‬ ‫و‬ ‫کارشناسی‬:‫افزار‬ ‫نرم‬ ‫کامپیوتر‬( )‫دکتری‬:‫انفورماتیک‬ ‫بیو‬)
‫ها‬ ‫داده‬ ‫پایگاه‬
‫پنجم‬ ‫فصل‬:SQL
1
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
1-‫ای‬ ‫رویه‬ ‫غیر‬ ‫زبانی‬(‫بیانی‬)
2-‫قوی‬ ‫بسیار‬ ‫عملگرهای‬ ‫دارای‬
3-‫ای‬ ‫داده‬ ‫استقالل‬ ‫کننده‬ ‫تامین‬
4-‫شامل‬‫استاندارد‬ ‫های‬ ‫داده‬ ‫تمام‬
5-‫هم‬ ‫استفاده‬ ‫قابل‬‫شد‬ ‫ادغام‬ ‫صورت‬ ‫به‬ ‫هم‬ ‫و‬ ‫مستقل‬ ‫صورت‬ ‫به‬‫ه‬
2
‫ویژگی‬‫های‬SQL
Structured Query Language
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
3
‫در‬ ‫ها‬ ‫داده‬ ‫انواع‬SQL
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
1-‫محاسباتی‬(%,/,*,-,+)
2-‫ای‬ ‫رابطه‬(=,>,<,<=,>=, != )
3-‫منطقی‬(AND,OR,NOT)
4-‫بیتی‬(^,|,&,~)
5-‫انتساب‬(=)
6-‫ویژه‬(IN,BETWEEN,ALL,ANY,LIKE)
4
‫در‬ ‫عملگرها‬ ‫انواع‬SQL
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
CREATE TABLE Student
(
ID smallint PRIMARY KEY ,
Name Char (20)
);
5
‫جدول‬ ‫ایجاد‬(CREATE TABLE)
ID NAME
‫دانشجو‬ ‫جدول‬ ‫ایجاد‬‫دانشجو‬ ‫نام‬ ‫و‬ ‫دانشجویی‬ ‫شماره‬ ‫های‬ ‫فیلد‬ ‫با‬:
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
INSERT INTO Student (ID,Name)
VALUES ( 1 , 'Ali' );
6
‫درج‬
ID NAME
1 ALI
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫بازیابی‬‫های‬ ‫نام‬ ‫نمایش‬ ‫بدون‬ ‫دانشجویان‬ ‫نام‬‫تکراری‬:
7
‫بازیابی‬
SELECT DISTINCT
Name
FROM Student;
ID NAME
1 ALI
7 SARA
3 ALI
NAME
ALI
SARA
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫شماره‬ ‫به‬ ‫دانشجو‬ ‫حذف‬1:
8
‫حذف‬
DELETE
FROM Student
WHERE ID=1;
ID NAME
1 ALI
7 SARA
3 ALI
ID NAME
7 SARA
3 ALI
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫شماره‬ ‫تغییر‬‫دانشجویی‬1‫به‬5:
9
‫بهنگام‬‫سازی‬
UPDATE Student
SET ID=5
WHERE ID=1;
ID NAME
1 ALI
7 SARA
3 ALI
ID NAME
5 ALI
7 SARA
3 ALI
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫توسط‬‫امکان‬ORDER BY‫می‬‫توان‬‫جدول‬‫جواب‬‫را‬‫برحسب‬‫یک‬‫یا‬‫بیش‬‫از‬‫یک‬‫ستون‬‫به‬‫صورت‬‫صعودی‬
(ASC)‫یا‬‫نزولی‬(DESC)‫مرتب‬‫کرد‬.(ASC‫پیش‬‫فرض‬‫است‬).
10
‫مرتب‬‫سازی‬
SELECT *
FROM Student
ORDER BY ID DESC;
ID NAME
1 ALI
7 SARA
3 ALI
ID NAME
7 SARA
3 ALI
1 ALI
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT COUNT(*)
FROM Student;
11
‫توابع‬‫جمعی‬(Aggregate Functions )
COUNT , MAX , MIN , SUM , AVG
‫مثال‬:‫گرداند‬ ‫می‬ ‫بر‬ ‫را‬ ‫دانشجویان‬ ‫تعداد‬ ‫که‬ ‫جویی‬ ‫و‬ ‫پرس‬:
ID NAME
1 ALI
7 SARA
3 ALI
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫توسط‬‫این‬‫امکان‬‫در‬SQL‫می‬‫توان‬‫عمل‬‫بازیابی‬‫را‬‫بر‬‫اساس‬‫نشانوند‬‫جستجوی‬‫کاراکتر‬‫با‬‫شرایط‬‫مورد‬‫ن‬‫ظر‬
‫انجام‬‫داد‬.‫به‬‫عبارتی‬‫مشخص‬‫می‬‫کند‬‫که‬‫آیا‬‫رشته‬‫ای‬‫در‬‫قسمتی‬‫از‬‫فیلد‬‫قرار‬‫دارد‬‫یا‬‫خیر‬.
12
‫عملگر‬LIKE
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫مشخصات‬‫دانشجویانی‬‫را‬‫بدهید‬‫که‬‫نام‬‫آنها‬4‫حرفی‬‫است‬‫و‬‫حرف‬‫دوم‬‫در‬‫نام‬‫آنها‬A،‫باشد‬‫مانند‬.SARA
SELECT *
FROM Student
WHERE Name LIKE '-A--';
‫تذکر‬:‫به‬‫جای‬‫کاراکتر‬–‫می‬‫تواند‬‫یک‬‫کاراکتر‬‫و‬‫به‬‫جای‬‫کاراکتر‬%‫می‬‫تواند‬‫تعدادی‬‫کاراکتر‬‫قرار‬‫گیرد‬.
13
ID NAME
1 ALI
7 SARA
3 ALI
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫مشخصات‬‫با‬ ‫آنها‬ ‫نام‬ ‫که‬ ‫بدهید‬ ‫را‬ ‫دانشجویانی‬‫کاراکتر‬A‫شود‬ ‫شروع‬.
14
ID NAME
1 ALI
7 SARA
3 ALI
SELECT *
FROM Student
WHERE Name LIKE 'A%';
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫مشخصات‬‫دانشجویانی‬‫را‬‫بدهید‬‫که‬‫نام‬‫آنها‬3‫حرفی‬‫است‬‫و‬‫حرف‬،‫اول‬‫یکی‬‫از‬‫کاراکترهای‬
A,B,C,D‫باشد‬.
SELECT *
FROM Student
WHERE Name LIKE ' [A-D]- - ';
15
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫مشخصات‬‫دانشجویانی‬‫را‬‫بدهید‬‫که‬‫نام‬‫آنها‬4‫حرفی‬‫است‬‫و‬‫حرف‬‫اول‬‫یکی‬‫از‬‫کاراکترهای‬A,B,C
‫نباشد‬:
SELECT *
FROM Student
WHERE Name LIKE '[^A-C] - - - ';
16
ID NAME
1 ALI
7 SARA
3 ALI
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
DROP TABLE Student;
‫وقتی‬‫جدولی‬‫حذف‬،‫شود‬‫تعریف‬‫جدول‬‫از‬‫کاتالوگ‬‫خارج‬‫می‬‫شود‬.
17
‫جدول‬ ‫حذف‬(DROP TABLE)
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫توسط‬‫امکان‬‫گروه‬،‫بندی‬‫می‬‫توان‬‫سطرهای‬‫یک‬‫جدول‬‫را‬‫برحسب‬‫مقادیر‬‫یک‬‫ستون‬‫گروه‬‫بندی‬‫ک‬‫رد‬‫به‬
‫نحوی‬‫که‬‫در‬‫هر‬‫گروه‬‫مقدار‬‫آن‬‫ستون‬‫یکسان‬‫باشد‬.
18
‫بندی‬ ‫گروه‬‫اطالعات‬
SELECT *
FROM R
GROUP BY Y;
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫مثال‬
19
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫با‬‫رابطه‬ ‫دو‬ ‫به‬ ‫توجه‬R(a,b)‫و‬S(c,d)‫دستورات‬ ‫از‬ ‫یک‬ ‫هر‬ ‫ای‬ ‫رابطه‬ ‫جبر‬ ‫معادل‬ ،SQL‫در‬ ‫شده‬ ‫داده‬‫مقابل‬
‫است‬ ‫شده‬ ‫آورده‬ ‫آن‬:
SELECT a FROM R;
SELECT * FROM R WHERE a=2;
SELECT a FROM R WHERE b=5;
SELECT * FROM R,S;
SELECT b,d FROM R,S WHERE a=c;
a(R)
a 2(R)
a b 5( (R)) 
R S
b,d a c( (R S))  
20
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
CREATE TABLE A(
ID INT NOT NULL,
NAME CHAR (20) NOT NULL,
AGE INT NOT NULL,
SALARY INT,
PRIMARY KEY (ID)
);
‫مشتری‬ ‫جدول‬ ‫ایجاد‬(A)
ID NAME AGE SALARY
.
.
.
.
.
.
.
.
.
.
.
.
21
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
INSERT INTO A (ID,NAME,AGE,SALARY)
VALUES (1, ‘ALI', 32, 2000 );
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
22
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT *
FROM A
WHERE SALARY >= 6500;
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
23
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT *
FROM A
WHERE AGE BETWEEN 25 AND 27 ;
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
24
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT ID, NAME, SALARY
FROM A
WHERE SALARY > 2000 OR age < 25;
ID NAME SALARY
3 TAHA 2000
4 FARSHID 6500
5 ARMAN 8500
6 SETAYESH 4500
7 MARYAM 10000
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
25
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT *
FROM A
WHERE SALARY LIKE '200%';
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
26
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT COUNT(*) AS “K"
FROM A;
K
7
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
27
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT DISTINCT SALARY
FROM A
ORDER BY SALARY;
SALARY
1500
2000
4500
6500
8500
10000
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
28
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT NAME, SUM(SALARY)
FROM A
GROUP BY NAME;
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 SAMAN 27 8500
6 ALI 22 4500
7 MARYAM 24 10000
NAME SALARY
ALI 6500
FARSHID 6500
MARYAM 10000
SAMAN 8500
SARA 1500
TAHA 2000
29
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT *
FROM A
WHERE AGE > ALL ( SELECT AGE FROM A
WHERE SALARY > 7000);
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
30
‫مثال‬
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT *
FROM A
WHERE AGE > ANY (SELECT AGE FROM A
WHERE SALARY > 7000);
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
31
‫مثال‬
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
CREATE TABLE SALARY AS
SELECT ID, SALARY FROM A;
ID SALARY
1 2000
2 1500
3 2000
4 6500
5 8500
6 4500
7 10000
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
32
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT *
FROM A
WHERE ID IN ( SELECT ID FROM A
WHERE SALARY > 4500 ) ;
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000 33
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
CREATE TABLE B (
OID INT NOT NULL,
CID INT References A(ID),
AMOUNT double,
PRIMARY KEY (OID)
);
‫سفارش‬ ‫جدول‬ ‫ایجاد‬(B)
OID CID AMOUNT
102 3 3000
100 3 1500
101 2 1560
103 4 2060
34
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT ID, NAME, AMOUNT
FROM A, B
WHERE A.ID = B.CID;
ID NAME AMOUNT
2 SARA 1560
3 TAHA 3000
3 TAHA 1500
4 FARSHID 2060
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
OID CID AMOUNT
102 3 3000
100 3 1500
101 2 1560
103 4 2060
35
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT ID, NAME, AMOUNT
FROM A, B
WHERE A.ID = B.CID;
‫معادل‬
36
SELECT ID, NAME, AMOUNT
FROM A INNER JOIN B
ON A.ID = B.CID;
SELECT x.ID, x.NAME , y.AMOUNT
FROM A AS x, B AS y
WHERE x.ID = y.CID;
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT ID, NAME, AMOUNT
FROM A LEFT JOIN B
ON A.ID = B.CID;
ID NAME AMOUNT
2 SARA 1560
3 TAHA 3000
3 TAHA 1500
4 FARSHID 2060
1 ALI NULL
5 ARMAN NULL
6 SETAYESH NULL
7 MARYAM NULL
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
OID CID AMOUNT
102 3 3000
100 3 1500
101 2 1560
103 4 2060
37
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT ID, NAME, AMOUNT
FROM A RIGHT JOIN B
ON A.ID = B.CID;
OID CID AMOUNT
102 3 3000
100 3 1500
101 2 1560
103 4 2060
ID NAME AGE SALARY
1 ALI 32 2000
2 SARA 25 1500
3 TAHA 23 2000
4 FARSHID 25 6500
5 ARMAN 27 8500
6 SETAYESH 22 4500
7 MARYAM 24 10000
38
ID NAME AMOUNT
2 SARA 1560
3 TAHA 1500
3 TAHA 1500
4 FARSHID 2060
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT ID, NAME, AMOUNT
FROM A FULL JOIN B
ON A.ID = B.CID;
‫تمرین‬
39
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
40
‫داده‬ ‫پایگاه‬
"‫کننده‬ ‫تهیه‬-‫قطعه‬" ‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫داده‬ ‫پایگاه‬"‫کننده‬ ‫تهیه‬-‫قطعه‬"
41
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫شماره‬‫قطعاتی‬‫را‬‫بیابید‬‫که‬‫یا‬‫وزن‬‫آنها‬‫بیشتر‬‫از‬16‫باشد‬‫یا‬‫توسط‬S2‫تهیه‬‫شده‬‫است‬‫یا‬‫هر‬‫دو‬‫شرط‬‫را‬‫دارد‬.
SELECT P# FROM P WHERE WEIGHT > 16
UNION
SELECT P# FROM SP WHERE S# = 'S2' ;
‫مثال‬
42
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫قطعه‬ ‫که‬ ‫بیابید‬ ‫را‬ ‫کنندگانی‬ ‫تهیه‬ ‫نام‬P2‫کنند‬ ‫می‬ ‫تهیه‬ ‫را‬.
SELECT SNAME
FROM S
WHERE S# IN ( SELECT S#
FROM SP
WHERE P# = 'P2'
);
‫مثال‬
43
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫رنگ‬ ‫به‬ ‫قطعه‬ ‫یک‬ ً‫ال‬‫اق‬ ‫که‬ ‫بیابید‬ ‫را‬ ‫کنندگانی‬ ‫تهیه‬ ‫نام‬‫آبی‬‫تهیه‬‫کنند‬ ‫می‬.
SELECT SNAME
FROM S
WHERE S# IN ( SELECT S# FROM SP
WHERE P# IN ( SELECT P# FROM P WHERE COLOR = BLUE' (
);
‫مثال‬
44
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫باشد‬ ‫شده‬ ‫تهیه‬ ،‫کننده‬ ‫تهیه‬ ‫یک‬ ‫از‬ ‫بیش‬ ‫توسط‬ ‫که‬ ‫بیابید‬ ‫را‬ ‫قطعاتی‬ ‫شماره‬.
SELECT P#
FROM SP
GROUP BY P#
HAVING COUNT(*) > 1;
‫مثال‬
45
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫بیابید‬ ‫را‬ ‫قطعه‬ ‫هر‬ ‫از‬ ‫شده‬ ‫تهیه‬ ‫مقدار‬ ‫حداکثر‬.
SELECT P# , MAX(QTY)
FROM SP
GROUP BY P#;
‫مثال‬
46
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫داده‬ ‫پایگاه‬
‫دانشگاه‬
47
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
clg#moadelcitysnames#
10117hamedanAli6
10016tehransara2
10218hamedantaha5
10314ahvazarman9
10019tabrizfarshid3
clg#degreeesppname
100doctracomputershirafkan
100doctracomputermohamadi
102doctrariazihasani
101doctrazabanrasti
102doctrariaziamini
scorepnametermc#s#sec#
15hasani941226502
16rasti931232501
17shirafkan921206500
18hasani942223502
14shirafkan912215505
15amini932229505
Clg#unitcnamec#
1023riazi22
1004C++21
1003algorithm20
1012zaban23
pnamecityclgnameclg#
shirafkantehrancomputer100
rastishirazzaban101
aminihamedanriazi102
course college
student prof
section
48
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
49
‫مثال‬
‫جدول‬ ‫ایجاد‬course
clg#unitcnamec#
CREATE TABLE course
( c# char(5) NOT NULL,
cname char(30) NOT NULL,
unit smallint NOT NULL,
clg# smallint,
PRIMARY KEY(c#),
UNIQUE(cname),
FOREIGN KEY(clg#) REFRENCE
[ON DELETE CASCADE]
[ON UPDATE CASCADE]
CHECK(unit >0 AND unit<5 )
);
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
50
‫دانشجو‬ ‫جدول‬ ‫سطرهای‬ ‫تعداد‬
SELECT COUNT(*)
FROM student;
clg#moadelcitysnames#
10117hamedanAli6
10016tehransara2
10218hamedantaha5
10314ahvazarman9
10019tabrizfarshid3
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
51
‫همدانی‬ ‫دانشجویان‬ ‫تعداد‬
SELECT COUNT(S#)
FROM student
Where city=“hamedan”;
clg#moadelcitysnames#
10117hamedanAli6
10016tehransara2
10218hamedantaha5
10314ahvazarman9
10019tabrizfarshid3
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
52
‫ریاضی‬ ‫دانشکده‬ ‫در‬ ‫همدانی‬ ‫دانشجویان‬ ‫کامل‬ ‫اطالعات‬
SELECT *
FROM student
Where city=“hamedan” AND clg#=102;
clg#moadelcitysnames#
10117hamedanAli6
10016tehransara2
10218hamedantaha5
10314ahvazarman9
10019tabrizfarshid3
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
53
‫موجود‬ ‫های‬ ‫تخصص‬ ‫تعداد‬
SELECT COUNT(DISTINCT esp) AS k
FROM prof;
clg#degreeesppname
100doctracomputershirafkan
100doctracomputermohamadi
102doctrariazihasani
101doctrazabanrasti
102doctrariaziamini
k
3
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
54
‫همدان‬ ‫و‬ ‫تهران‬ ‫شهرهای‬ ‫در‬ ‫واقع‬ ‫هایی‬ ‫دانشکده‬.
SELECT *
FROM college
WHERE city IN(“hamedan” , ”tehran”);
pnamecityclgnameclg#
shirafkantehrancomputer100
rastishirazzaban101
aminihamedanriazi102
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
55
‫مختلف‬ ‫دروس‬ ‫در‬ ‫دانشجویان‬ ‫نمره‬ ‫و‬ ‫درس‬ ‫شماره‬ ‫و‬ ‫نام‬
clg#moadelcitysnames#
10117hamedanAli6
10016tehransara2
10218hamedantaha5
10314ahvazarman9
10019tabrizfarshid3
scorepnametermc#s#sec#
15hasani941226502
16rasti931232501
17shirafkan921206500
18hasani942223502
14shirafkan912215505
15amini932229505
SELECT sname , c# , score
FROM student , section
WHERE student.s# = section.s#
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
56
‫شماره‬‫سال‬ ‫اول‬ ‫ترم‬ ‫از‬ ‫بعد‬ ‫که‬ ‫درسی‬ ‫نام‬ ‫و‬ ‫درس‬1394‫است‬ ‫شده‬ ‫ارائه‬.
SELECT course.c# , cname
FROM course , section
WHERE course.c# = section.c# AND term > 941 ;
scorepnametermc#s#sec#
15hasani941226502
16rasti931232501
17shirafkan921206500
18hasani942223502
14shirafkan912215505
15amini932229505
Clg#unitcnamec#
1023riazi22
1004C++21
1003algorithm20
1012zaban23
cnamec#
riazi22
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
57
‫دانشکده‬ ‫هر‬ ‫در‬ ‫دانشجویان‬ ‫میانگین‬ ‫مینیمم‬ ‫و‬ ‫ماکزیمم‬
SELECT clg# , MAX(moadel) , MIN(moadel)
FROM student
GROUP BY clg#;
clg#moadelcitysnames#
10117hamedanAli6
10016tehransara2
10218hamedantaha5
10314ahvazarman9
10019tabrizfarshid3
clg#
1717101
1619100
1818102
1414103
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
58
‫است‬ ‫نفر‬ ‫یک‬ ‫از‬ ‫بیش‬ ‫آنها‬ ‫اساتید‬ ‫تعداد‬ ‫که‬ ‫هایی‬ ‫دانشکده‬ ‫شماره‬.
SELECT clg#
FROM prof
GROUP BY clg#
HAVING COUNT (pname)>1;
clg#degreeesppname
100doctracomputershirafkan
100doctracomputermohamadi
102doctrariazihasani
101doctrazabanrasti
102doctrariaziamini
‫مثال‬
clg#degreeesppname
100doctracomputershirafkan
100doctracomputermohamadi
102doctrariazihasani
102doctrariaziamini
101doctrazabanrasti
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
59
‫اند‬ ‫گرفته‬ ‫را‬ ‫ها‬ ‫درس‬ ‫همه‬ ‫که‬ ‫دانشجویانی‬ ‫شماره‬.
SELECT s#
FROM section
GROUP BY s#
HAVING COUNT(DISTINCT c#) = (SELECT COUNT(c#) FROM course);
scorepnametermc#s#sec#
15hasani941226502
17shirafkan921206500
16rasti931232501
18hasani942223502
14shirafkan912215505
15amini932229505
Clg#unitcnamec#
1023riazi22
1004C++21
1003algorithm20
1012zaban23
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
60
‫است‬ ‫بیشتر‬ ‫ها‬ ‫معدل‬ ‫همه‬ ‫میانگین‬ ‫از‬ ‫آنها‬ ‫معدل‬ ‫که‬ ‫دانشجویانی‬ ‫نمرات‬ ‫میانگین‬ ‫و‬ ‫نام‬.
clg#moadelcitysnames#
10117hamedanAli6
10016tehransara2
10218hamedantaha5
10314ahvazarman9
10019tabrizfarshid3
SELECT sname,moadel
FROM student
WHERE moadel> (SELECT AVG(moadel) FROM student);
moadelsname
17Ali
18taha
19farshid
(‫ستون‬ ‫میانگین‬moadel‫برابر‬16.8‫است‬).
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
61
‫کامپیوتر‬ ‫دانشکده‬ ‫دانشجویان‬ ‫همه‬ ‫از‬ ‫آنها‬ ‫معدل‬ ‫که‬ ‫دانشجویانی‬(100)‫است‬ ‫بیشتر‬.
clg#moadelcitysnames#
10120hamedanAli6
10016tehransara2
10218hamedantaha5
10314ahvazarman9
10019tabrizfarshid3
SELECT *
FROM student
WHERE moadel > ALL ( SELECT moadel FROM student WHERE clg#=100);
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
62
‫است‬ ‫داده‬ ‫ارائه‬ ‫درس‬ ‫کامپیوتر‬ ‫دانشکده‬ ‫که‬ ‫هایی‬ ‫ترم‬.
SELECT term
FROM section , college, course
WHERE section.c# =course.c# AND college.clg#=course.clg# AND college.clgname=“computer”;
scorepnametermc#s#sec#
15hasani941226502
16rasti931232501
17shirafkan921206500
18hasani942223502
14shirafkan912215505
15amini932229505
Clg#unitcnamec#
1023riazi22
1004C++21
1003algorithm20
1012zaban23
pnamecityclgnameclg#
shirafkantehrancomputer100
rastishirazzaban101
aminihamedanriazi102
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫اطالعاتی‬ ‫بانک‬
‫کارمند‬-‫شرکت‬
63
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
cityname
hamedanali
tehranfarshid
hamedantaha
ahvazmohamad
tehransara
comp
citycname
hamedanansar
tehrantabesh
hamedanfaradars
ahvazansar
emp
salarycnamename
1000000ansarmohamad
2000000tabeshfarshid
1000000ansarali
3000000ansartaha
2000000faradarssara
2000000faradarsali
work
‫مثال‬
64
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫کنند‬ ‫می‬ ‫دریافت‬ ‫را‬ ‫حقوق‬ ‫بیشترین‬ ‫که‬ ‫کارکنانی‬.
cityname
hamedanali
tehranfarshid
hamedantaha
ahvazmohamad
tehransara
salarycnamename
1000000ansarmohamad
2000000tabeshfarshid
1000000ansarali
3000000ansartaha
2000000faradarssara
2000000faradarsali
SELECT *
FROM Emp
WHERE name IN ( SELECT name FROM work
WHERE salary = ( SELECT MAX(salary) FROM work) );
‫مثال‬
65
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
66
‫شرکت‬ ‫محل‬ ‫شهرهای‬ ‫از‬ ‫یکی‬ ‫در‬ ‫که‬ ‫کارکنانی‬ansar‫کنند‬ ‫می‬ ‫زندگی‬.
SELECT *
FROM Emp
WHERE city IN ( SELECT city FROM comp
WHERE cname=“ansar” );
cityname
hamedanali
tehranfarshid
hamedantaha
ahvazmohamad
tehransara
citycname
hamedanansar
tehrantabesh
hamedanfaradars
ahvazansar
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
67
‫آنها‬ ‫شرکت‬ ‫نام‬ ‫و‬ ‫بومی‬ ‫کارکنان‬SELECT emp.name , emp.city , comp.cname
FROM emp , work , comp
WHERE emp.name = work.name AND
work.cname = comp.cname AND
emp.city = comp.city;
salarycnamename
1000000ansarmohamad
2000000tabeshfarshid
1000000ansarali
3000000ansartaha
2000000faradarssara
2000000faradarsali
cityname
hamedanali
tehranfarshid
hamedantaha
ahvazmohamad
tehransara
citycname
hamedanansar
tehrantabesh
hamedanfaradars
ahvazansar
SELECT emp.name , emp.city , comp.cname
FROM emp Natural Join work Natural Join comp;
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫بگیرد‬ ‫حقوق‬ ‫تومان‬ ‫میلیون‬ ‫یک‬ ‫از‬ ‫کمتر‬ ‫نباید‬ ‫کس‬ ‫هیچ‬.
‫مثال‬(‫جامعیت‬ ‫قید‬)
salarycnamename
1000000ansarmohamad
2000000tabeshfarshid
1000000ansarali
3000000ansartaha
2000000faradarssara
2000000faradarsali
CREATE ASSERTION m
CHECK (NOT EXISTS ( SELECT salary FROM work
WHERE salary<1000000));
68
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
69
‫ستون‬ ‫دو‬ ‫تغییر‬ ‫یا‬ ‫داشتن‬ ‫نگه‬ ‫روز‬ ‫به‬ ‫حق‬ ‫دادن‬city‫و‬name‫جدول‬ ‫روی‬emp‫نام‬ ‫به‬ ‫کاربری‬ ‫به‬omid
GRANT UPDATE (name , city)
ON emp
TO omid;
cityname
hamedanali
tehranfarshid
hamedantaha
ahvazmohamad
tehransara
‫مثال‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫اطالعاتی‬ ‫بانک‬
‫کننده‬ ‫تهیه‬-‫قطعه‬-‫پروژه‬
70
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫داده‬ ‫پایگاه‬"‫کننده‬ ‫تهیه‬-‫قطعه‬–‫پروژه‬"
S ( S# , SNAME , STATUS , CITY )
P ( P# , PNAME , COLOR , WEIGHT , CITY )
J ( J# , JNAME , CITY )
SPJ ( S# , P# , J# , QTY )
71
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
72
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫شماره‬‫پروژه‬‫هایی‬‫را‬‫مشخص‬‫کنید‬‫که‬‫شهر‬‫آن‬،‫پروژه‬‫اولین‬‫شهر‬‫به‬‫ترتیب‬‫الفبا‬‫باش‬‫د‬.
SELECT J.J#
FROM J
WHERE J.CITY = ( SELECT MIN(J.CITY) FROM J );
‫مثال‬
73
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫شماره‬‫پروژه‬‫هایی‬‫را‬‫مشخص‬‫کنیدکه‬‫به‬‫طور‬‫کامل‬‫توسط‬S1‫پشتیبانی‬‫می‬‫شوند‬.
SELECT J.J#
FROM J
WHERE NOT EXISTS ( SELECT * FROM SPJ
WHERE SPJ.J# = J.J# AND NOT ( SPJ.S# = 'S1' )
);
‫مثال‬
74
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫تمام‬‫جفت‬‫هایی‬‫از‬‫نام‬‫شهرها‬‫را‬‫مشخص‬‫کنید‬‫که‬‫عرضه‬‫کننده‬‫ای‬‫در‬‫شهر‬،‫اول‬‫پروژه‬‫ای‬‫در‬‫شهر‬‫دوم‬‫را‬
‫پشتیبانی‬‫کند‬.
SELECT DISTINCT S.CITY AS A , J.CITY AS B
FROM S , J
WHERE EXISTS ( SELECT * FROM SPJ
WHERE SPJ.S# = S.S# AND SPJ.J# =J.J# );
‫مثال‬
75
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
SELECT DISTINCT SPJ.P#
FROM SPJ
GROUP BY SPJ.P# , SPJ.J#
HAVING AVG ( SPJ.QTY )> 300 ;
‫تمرین‬
76
SELECT S.S# , P.P#
FROM S CROSS JOIN P
EXCEPT
SELECT SPJ.S# , SPJ.P#
FROM SPJ;
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫مجوز‬
77
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫جدول‬ ‫در‬ ‫درج‬ ‫مجوز‬ ‫اعطای‬S‫کاربر‬ ‫به‬ali:
GRANT INSERT
ON S
TO ali ;
‫با‬‫استفاده‬‫از‬‫عبارت‬WITH GRANT OPTION‫در‬‫انتهای‬‫دستور‬،‫باال‬‫این‬‫امکان‬‫به‬‫کاربر‬ALI‫داده‬
‫می‬‫شود‬‫که‬‫بتواند‬‫مجوز‬‫خودش‬‫را‬‫به‬‫کاربران‬‫دیگر‬‫نیز‬‫بدهد‬.
‫مثال‬
78
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫جدول‬ ‫در‬ ‫درج‬ ‫مجوز‬ ‫گرفتن‬ ‫پس‬S‫از‬‫کاربر‬ALI:
REVOKE INSERT
ON S
FROM ali;
‫اگر‬‫از‬‫عبارت‬Cascade‫در‬‫انتهای‬‫دستور‬‫باال‬‫استفاده‬،‫شود‬‫لغو‬‫مجوز‬‫به‬‫صورت‬‫آبشاری‬‫خواه‬‫د‬
‫بود‬.
‫یعنی‬‫اگر‬‫به‬‫طور‬‫نمونه‬‫در‬‫گراف‬،‫مجوز‬ali‫پدر‬‫کاربری‬‫مانند‬sara‫باشد‬،‫آنگاه‬‫مجوز‬sara‫نیز‬‫لغو‬
‫می‬‫شود‬.
‫مثال‬
79
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫اعطای‬‫مجوز‬‫انتخاب‬‫ستون‬‫ها‬‫و‬‫به‬‫روز‬‫در‬‫آوردن‬‫فیلدهای‬SNAME , CITY‫جدول‬S‫به‬‫کاربر‬sara:
GRANT SELECT , UPDATE(SNAME,CITY)
ON S
TO sara;
‫مثال‬
80
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫دید‬
81
(VIEW)
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫نام‬ ‫به‬ ‫دید‬ ‫یک‬ ‫تعریف‬V1‫جدول‬ ‫روی‬S:CREATE VIEW V1 (A,B,C ) AS
SELECT S # , STATUS , CITY
FROM S
WHERE STATUSE > 15 ;
‫دید‬
82
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫دید‬ ‫روی‬ ‫دید‬ ‫یک‬ ‫تعریف‬V1:CREATE VIEW V2 (M,N,P) AS
SELECT A,B,C
FROM V1
WHERE P < > 'London' ;
‫دستور‬DROP VIEW V1 CASCADE‫موجب‬‫حذف‬‫دید‬V1‫و‬V2‫خواهد‬‫شد‬.‫یعنی‬‫با‬‫حذف‬‫جدول‬،‫پایه‬‫تمام‬‫دیدهای‬‫تعریف‬
‫شده‬‫روی‬‫آن‬‫نیز‬‫حذف‬‫می‬‫شوند‬.
‫مثال‬
83
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫دید‬ ‫تعریف‬PQ‫جدول‬ ‫روی‬SP:CREATE VIEW PQ ( P# , TQ) AS
SELECT P# , SUM (QTY)
FROM SP
GROUP BY P#;
‫مثال‬
84
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫دید‬V1‫کنیم‬ ‫می‬ ‫تعریف‬ ‫زیر‬ ‫صورت‬ ‫به‬ ‫را‬:CREATE VIEW V1 AS
SELECT S # , STATUS , CITY
FROM S
WHERE STATUS > 15 ;
‫کند‬ ‫صادر‬ ‫را‬ ‫زیر‬ ‫بازیابی‬ ‫حکم‬ ،‫کاربری‬ ‫اگر‬ ‫حال‬:
SELECT *
FROM V1
WHERE CITY = 'PARIS';
‫آید‬ ‫می‬ ‫در‬ ‫زیر‬ ‫صورت‬ ‫به‬ ‫تبدیل‬ ‫از‬ ‫بعد‬ ‫حکم‬ ‫این‬:
SELECT S # , STATUS , CITY
FROM S
WHERE CITY = 'PARIS' AND STATUS > 15;
‫مثال‬
85
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫پنجم‬ ‫فصل‬ ‫پایان‬
86
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫فرادرس‬ ‫در‬ ‫شده‬ ‫مطرح‬ ‫نکات‬ ‫مبنای‬ ‫بر‬ ‫ها‬ ‫اسالید‬ ‫این‬
«‫ها‬ ‫داده‬ ‫پایگاه‬»
‫تهیه‬‫است‬ ‫شده‬.
‫نمایید‬ ‫مراجعه‬ ‫زیر‬ ‫لینک‬ ‫به‬ ‫آموزش‬ ‫این‬ ‫مورد‬ ‫در‬ ‫بیشتر‬ ‫اطالعات‬ ‫کسب‬ ‫برای‬
faradars.org/fvsft105
‫داده‬ ‫پایگاه‬‫ها‬
faradars.org/fvsft105
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org

More Related Content

What's hot

What's hot (20)

آموزش ساختمان داده ها - بخش هفتم
آموزش ساختمان داده ها - بخش هفتمآموزش ساختمان داده ها - بخش هفتم
آموزش ساختمان داده ها - بخش هفتم
 
آموزش ساختمان داده ها - بخش ششم
آموزش ساختمان داده ها - بخش ششمآموزش ساختمان داده ها - بخش ششم
آموزش ساختمان داده ها - بخش ششم
 
آموزش پایگاه داده ها - بخش یکم
آموزش پایگاه داده ها - بخش یکمآموزش پایگاه داده ها - بخش یکم
آموزش پایگاه داده ها - بخش یکم
 
آموزش ساختمان داده ها - بخش هشتم
آموزش ساختمان داده ها - بخش هشتمآموزش ساختمان داده ها - بخش هشتم
آموزش ساختمان داده ها - بخش هشتم
 
آموزش ذخیره و بازیابی اطلاعات - درس سوم
آموزش ذخیره و بازیابی اطلاعات - درس سومآموزش ذخیره و بازیابی اطلاعات - درس سوم
آموزش ذخیره و بازیابی اطلاعات - درس سوم
 
آموزش ذخیره و بازیابی اطلاعات - درس دهم
آموزش ذخیره و بازیابی اطلاعات - درس دهمآموزش ذخیره و بازیابی اطلاعات - درس دهم
آموزش ذخیره و بازیابی اطلاعات - درس دهم
 
آموزش ساختمان داده ها - بخش چهارم
آموزش ساختمان داده ها - بخش چهارمآموزش ساختمان داده ها - بخش چهارم
آموزش ساختمان داده ها - بخش چهارم
 
آموزش ساختمان داده ها - بخش نهم
آموزش ساختمان داده ها - بخش نهمآموزش ساختمان داده ها - بخش نهم
آموزش ساختمان داده ها - بخش نهم
 
آموزش ذخیره و بازیابی اطلاعات - درس هشتم
آموزش ذخیره و بازیابی اطلاعات - درس هشتمآموزش ذخیره و بازیابی اطلاعات - درس هشتم
آموزش ذخیره و بازیابی اطلاعات - درس هشتم
 
آموزش ذخیره و بازیابی اطلاعات - درس هفتم
آموزش ذخیره و بازیابی اطلاعات - درس هفتمآموزش ذخیره و بازیابی اطلاعات - درس هفتم
آموزش ذخیره و بازیابی اطلاعات - درس هفتم
 
آموزش روش های حل روابط بازگشتی - بخش یکم
آموزش روش های حل روابط بازگشتی - بخش یکمآموزش روش های حل روابط بازگشتی - بخش یکم
آموزش روش های حل روابط بازگشتی - بخش یکم
 
آموزش مرتبه اجرایی در ساختمان داده و طراحی الگوریتم (مرور – تست کنکور ارشد)
آموزش مرتبه اجرایی در ساختمان داده و طراحی الگوریتم (مرور – تست کنکور ارشد)آموزش مرتبه اجرایی در ساختمان داده و طراحی الگوریتم (مرور – تست کنکور ارشد)
آموزش مرتبه اجرایی در ساختمان داده و طراحی الگوریتم (مرور – تست کنکور ارشد)
 
آموزش ذخیره و بازیابی اطلاعات - درس نهم
آموزش ذخیره و بازیابی اطلاعات - درس نهمآموزش ذخیره و بازیابی اطلاعات - درس نهم
آموزش ذخیره و بازیابی اطلاعات - درس نهم
 
آموزش ساختمان داده ها - بخش اول
آموزش ساختمان داده ها - بخش اولآموزش ساختمان داده ها - بخش اول
آموزش ساختمان داده ها - بخش اول
 
آموزش نظریه زبان ها و ماشین ها - بخش هفتم
آموزش نظریه زبان ها و ماشین ها - بخش هفتمآموزش نظریه زبان ها و ماشین ها - بخش هفتم
آموزش نظریه زبان ها و ماشین ها - بخش هفتم
 
آموزش نظریه زبان ها و ماشین ها - بخش یکم
آموزش نظریه زبان ها و ماشین ها - بخش یکمآموزش نظریه زبان ها و ماشین ها - بخش یکم
آموزش نظریه زبان ها و ماشین ها - بخش یکم
 
آموزش نظریه زبان ها و ماشین ها - بخش دوم
آموزش نظریه زبان ها و ماشین ها - بخش دومآموزش نظریه زبان ها و ماشین ها - بخش دوم
آموزش نظریه زبان ها و ماشین ها - بخش دوم
 
آموزش روش های حل روابط بازگشتی - بخش دوم
آموزش روش های حل روابط بازگشتی - بخش دومآموزش روش های حل روابط بازگشتی - بخش دوم
آموزش روش های حل روابط بازگشتی - بخش دوم
 
آموزش ذخیره و بازیابی اطلاعات - درس دوم
آموزش ذخیره و بازیابی اطلاعات - درس دومآموزش ذخیره و بازیابی اطلاعات - درس دوم
آموزش ذخیره و بازیابی اطلاعات - درس دوم
 
آموزش روش های حل روابط بازگشتی - بخش چهارم
آموزش روش های حل روابط بازگشتی - بخش چهارمآموزش روش های حل روابط بازگشتی - بخش چهارم
آموزش روش های حل روابط بازگشتی - بخش چهارم
 

Viewers also liked

Poolback Presentacion 2012
Poolback Presentacion 2012Poolback Presentacion 2012
Poolback Presentacion 2012
javierescudero
 
The boy who drew cat
The boy who drew catThe boy who drew cat
The boy who drew cat
thaleenuddh
 

Viewers also liked (13)

Planificacion sistemas
Planificacion sistemasPlanificacion sistemas
Planificacion sistemas
 
Un dia al camp
Un dia al campUn dia al camp
Un dia al camp
 
آموزش محاسبات عددی - بخش سوم
آموزش محاسبات عددی - بخش سومآموزش محاسبات عددی - بخش سوم
آموزش محاسبات عددی - بخش سوم
 
Curso: Control de acceso y seguridad: 02 Análisis de riesgos 1
Curso: Control de acceso y seguridad: 02 Análisis de riesgos 1Curso: Control de acceso y seguridad: 02 Análisis de riesgos 1
Curso: Control de acceso y seguridad: 02 Análisis de riesgos 1
 
Poolback Presentacion 2012
Poolback Presentacion 2012Poolback Presentacion 2012
Poolback Presentacion 2012
 
Tbxlha 6565 c-vtm
Tbxlha 6565 c-vtmTbxlha 6565 c-vtm
Tbxlha 6565 c-vtm
 
Contaminacion del Agua y el Aire
Contaminacion del Agua y el AireContaminacion del Agua y el Aire
Contaminacion del Agua y el Aire
 
The Importance of Growing Trees
The Importance of Growing TreesThe Importance of Growing Trees
The Importance of Growing Trees
 
Informe del proceso administrativo (empresa)
Informe del proceso administrativo (empresa)Informe del proceso administrativo (empresa)
Informe del proceso administrativo (empresa)
 
The boy who drew cat
The boy who drew catThe boy who drew cat
The boy who drew cat
 
ارزیابی ابعاد شخصیت Tci مقاله
ارزیابی ابعاد شخصیت Tci مقالهارزیابی ابعاد شخصیت Tci مقاله
ارزیابی ابعاد شخصیت Tci مقاله
 
Análisis FODA
Análisis FODAAnálisis FODA
Análisis FODA
 
Manual do técnico_e_auxiliar_de_enfermagem
Manual do técnico_e_auxiliar_de_enfermagemManual do técnico_e_auxiliar_de_enfermagem
Manual do técnico_e_auxiliar_de_enfermagem
 

More from faradars

More from faradars (20)

آموزش شبیه سازی مدارات الکتریکی با OrCAD
آموزش شبیه سازی مدارات الکتریکی با OrCADآموزش شبیه سازی مدارات الکتریکی با OrCAD
آموزش شبیه سازی مدارات الکتریکی با OrCAD
 
آموزش فیزیک الکتریسیته - فصل ششم تا نهم
آموزش فیزیک الکتریسیته - فصل ششم تا نهمآموزش فیزیک الکتریسیته - فصل ششم تا نهم
آموزش فیزیک الکتریسیته - فصل ششم تا نهم
 
آموزش فیزیک الکتریسیته - فصل یکم تا پنجم
آموزش فیزیک الکتریسیته - فصل یکم تا پنجمآموزش فیزیک الکتریسیته - فصل یکم تا پنجم
آموزش فیزیک الکتریسیته - فصل یکم تا پنجم
 
آموزش ذخیره و بازیابی اطلاعات - درس ششم
آموزش ذخیره و بازیابی اطلاعات - درس ششمآموزش ذخیره و بازیابی اطلاعات - درس ششم
آموزش ذخیره و بازیابی اطلاعات - درس ششم
 
آموزش ذخیره و بازیابی اطلاعات - درس پنجم
آموزش ذخیره و بازیابی اطلاعات - درس پنجمآموزش ذخیره و بازیابی اطلاعات - درس پنجم
آموزش ذخیره و بازیابی اطلاعات - درس پنجم
 
آموزش ذخیره و بازیابی اطلاعات - درس چهارم
آموزش ذخیره و بازیابی اطلاعات - درس چهارمآموزش ذخیره و بازیابی اطلاعات - درس چهارم
آموزش ذخیره و بازیابی اطلاعات - درس چهارم
 
آموزش ذخیره و بازیابی اطلاعات - درس یکم
آموزش ذخیره و بازیابی اطلاعات - درس یکمآموزش ذخیره و بازیابی اطلاعات - درس یکم
آموزش ذخیره و بازیابی اطلاعات - درس یکم
 
آموزش ترمودینامیک ۲ بخش سوم
آموزش ترمودینامیک ۲ بخش سومآموزش ترمودینامیک ۲ بخش سوم
آموزش ترمودینامیک ۲ بخش سوم
 
آموزش ترمودینامیک ۲ بخش هشتم
آموزش ترمودینامیک ۲ بخش هشتمآموزش ترمودینامیک ۲ بخش هشتم
آموزش ترمودینامیک ۲ بخش هشتم
 
آموزش ترمودینامیک ۲ بخش دوم
آموزش ترمودینامیک ۲ بخش دومآموزش ترمودینامیک ۲ بخش دوم
آموزش ترمودینامیک ۲ بخش دوم
 
آموزش ترمودینامیک ۲ بخش هفتم
آموزش ترمودینامیک ۲ بخش هفتمآموزش ترمودینامیک ۲ بخش هفتم
آموزش ترمودینامیک ۲ بخش هفتم
 
آموزش ترمودینامیک ۲ بخش ششم
آموزش ترمودینامیک ۲ بخش ششمآموزش ترمودینامیک ۲ بخش ششم
آموزش ترمودینامیک ۲ بخش ششم
 
آموزش ترمودینامیک ۲ بخش اول
آموزش ترمودینامیک ۲ بخش اولآموزش ترمودینامیک ۲ بخش اول
آموزش ترمودینامیک ۲ بخش اول
 
آموزش ترمودینامیک ۲ بخش پنجم
آموزش ترمودینامیک ۲ بخش پنجمآموزش ترمودینامیک ۲ بخش پنجم
آموزش ترمودینامیک ۲ بخش پنجم
 
آموزش ترمودینامیک ۲ بخش چهارم
آموزش ترمودینامیک ۲ بخش چهارمآموزش ترمودینامیک ۲ بخش چهارم
آموزش ترمودینامیک ۲ بخش چهارم
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
 

آموزش پایگاه داده ها - بخش یکم