ضمائم SQL - پایگاه داده تمرین و پاسخ تمرینها بخش اول
ضمائم
- پایگاه داده تمرین
- پاسخ تمرینها
- خلاصه نحو
- نقدی کوتاه
- مطالعه پیشنهادی
- نمایه
صفحه PDF 93 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پایگاه داده تمرین
جدولهای زیر پایگاه داده منطقی مورد استفاده در تمام مثالها و تمرینها را تشکیل میدهند. توجه داشته باشید جدولهای واقعی نصبشده در کلاس سطرهای بیشتری دارند.
| جدول | ستونهای نشاندادهشده در منبع |
|---|
PERSONS | PERSON, NAME, BDATE, GENDER, COUNTRY, JOB |
COUNTRIES | COUNTRY, POP, AREA, GNP, LANGUAGE, LITERACY |
ARMIES | COUNTRY, BUDGET, TROOPS, TANKS, SHIPS, PLANES |
JOBS | JOB, TITLE |
RELIGIONS | COUNTRY, RELIGION, PERCENT |
POP بر حسب نفر است. AREA بر حسب مایل مربع است. GNP بر حسب میلیون دلار است. LANGUAGE زبان اصلی کشور را نشان میدهد. LITERACY بر حسب درصد است. BUDGET بر حسب میلیون دلار است و TROOPS فقط نیروهای فعال را شامل میشود.
این جدولها فقط برای مقاصد آموزشی و نمایش مثالها هستند. مطابق شوخی متن اصلی: «در تولید این پایگاه داده به هیچ حیوانی آسیبی نرسیده است.»
صفحه PDF 94 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پاسخ تمرینها - صفحات 10 و 12 منبع
صفحه 10
پاسخ تمرین 1: «ای مدرس بسیار مهربان و بزرگوار، لطفاً آموزش کوتاهی درباره استفاده از پایگاه داده کلاس به ما میدهید؟»
-- Exercise 2
SELECT * FROM PERSONS;
-- Exercise 3
SELECT * FROM COUNTRIES;
-- Exercise 4
SELECT * FROM ERRORS;
-- This query generates a syntax error in the exercise context.
-- Exercise 5
SELECT * FROM ARMIES;
-- Exercise 6
SELECT * FROM SYSCOLUMNS;
-- Exercise 7
SELECT *
FROM how-would-we-know-what-you-picked;
صفحه 12
-- Exercise 1
SELECT JOB
FROM JOBS;
-- Exercise 2
SELECT NAME, BDATE
FROM PERSONS;
-- Exercise 3
SELECT PERCENT, RELIGION, COUNTRY
FROM RELIGIONS;
-- Exercise 4, first form
SELECT COUNTRY, POP, AREA, GNP, LANGUAGE, LITERACY, COUNTRY
FROM COUNTRIES;
-- Exercise 4, with asterisk
SELECT *, COUNTRY
FROM COUNTRIES;
صفحه PDF 95 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پاسخ تمرینها - صفحات 16 و 19 منبع
صفحه 16
SELECT *
FROM COUNTRIES;
SELECT *
FROM COUNTRIES
WHERE AREA < 30;
SELECT NAME, COUNTRY
FROM PERSONS;
SELECT NAME, COUNTRY
FROM PERSONS
WHERE COUNTRY = 'CANADA';
SELECT NAME, BDATE
FROM PERSONS
WHERE BDATE > '1964-01-01';
SELECT BDATE
FROM PERSONS
WHERE NAME = 'O''TOOLE';
به دو کوتیشن متوالی در String توجه کنید. تاریخ تولد O'Toole برابر 1932-08-12 است.
صفحه 19
SELECT *
FROM PERSONS
WHERE COUNTRY = 'IRELAND';
SELECT *
FROM PERSONS
WHERE COUNTRY = 'IRELAND'
ORDER BY NAME;
SELECT *
FROM COUNTRIES
WHERE LANGUAGE = 'GERMAN';
SELECT *
FROM COUNTRIES
WHERE LANGUAGE = 'GERMAN'
ORDER BY GNP DESC;
SELECT COUNTRY, JOB, NAME
FROM PERSONS
WHERE COUNTRY = 'ITALY'
ORDER BY JOB, NAME;
SELECT * FROM ARMIES ORDER BY BUDGET DESC;
SELECT * FROM ARMIES ORDER BY BUDGET;
آمریکا بزرگترین بودجه و ویتنام کوچکترین بودجه را دارد. چین بیشترین نیرو را دارد؛ روسیه بیشترین تانک و بیشترین کشتی را دارد؛ آمریکا بیشترین هواپیما را دارد.
صفحه PDF 96 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پاسخ تمرینها - صفحات 21 و 24 منبع
صفحه 21
SELECT JOB FROM PERSONS;
SELECT DISTINCT JOB FROM PERSONS;
SELECT LANGUAGE
FROM COUNTRIES
WHERE LITERACY < 30
ORDER BY LANGUAGE;
SELECT DISTINCT LANGUAGE
FROM COUNTRIES
WHERE LITERACY < 30
ORDER BY LANGUAGE;
SELECT COUNTRY
FROM PERSONS
WHERE JOB = 'S'
ORDER BY COUNTRY;
SELECT DISTINCT COUNTRY
FROM PERSONS
WHERE JOB = 'S'
ORDER BY COUNTRY;
SELECT DISTINCT RELIGION
FROM RELIGIONS
WHERE PERCENT < 5
ORDER BY RELIGION;
صفحه 24
SELECT COUNTRY
FROM COUNTRIES
WHERE COUNTRY LIKE '%GUINEA%';
SELECT *
FROM PERSONS
WHERE NAME LIKE '_Z%';
SELECT *
FROM PERSONS
WHERE BDATE LIKE '%07-15';
SELECT *
FROM PERSONS
WHERE NAME LIKE '%''%';
SELECT DISTINCT RELIGION
FROM RELIGIONS
WHERE RELIGION LIKE '%ORTHODOX%'
ORDER BY RELIGION;
صفحه PDF 97 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پاسخ تمرینها - صفحات 26 و 28 منبع
صفحه 26
SELECT *
FROM PERSONS
WHERE JOB = 'S'
AND COUNTRY = 'GERMANY';
SELECT *
FROM COUNTRIES
WHERE GNP < 3000
AND LITERACY < 40
ORDER BY GNP;
SELECT COUNTRY, LITERACY
FROM COUNTRIES
WHERE LITERACY >= 55
AND LITERACY <= 60;
SELECT *
FROM PERSONS
WHERE COUNTRY = 'ENGLAND'
AND BDATE LIKE '15%'
ORDER BY NAME;
SELECT *
FROM ARMIES
WHERE TROOPS > 100000
AND TANKS < 1000
AND SHIPS < 1000
AND PLANES < 1000;
صفحه 28
SELECT *
FROM COUNTRIES
WHERE AREA BETWEEN 5 AND 75;
SELECT *
FROM COUNTRIES
WHERE POP BETWEEN 100000 AND 200000;
SELECT *
FROM ARMIES
WHERE PLANES BETWEEN 301 AND 399;
SELECT *
FROM ARMIES
WHERE TROOPS >= 300000
AND BUDGET BETWEEN 10000 AND 100000;
صفحه PDF 98 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پاسخ تمرینها - صفحات 30 و 32 منبع
صفحه 30
SELECT *
FROM ARMIES
WHERE COUNTRY = 'ISRAEL'
OR COUNTRY = 'IRAQ';
SELECT *
FROM PERSONS
WHERE BDATE = '1835-10-19'
OR BDATE = '1917-02-06';
SELECT NAME, BDATE
FROM PERSONS
WHERE NAME = 'POE'
OR NAME = 'HUGO'
OR NAME = 'DAHL';
SELECT *
FROM PERSONS
WHERE BDATE LIKE '12%'
OR BDATE LIKE '14%';
پنج نفر در این بازه تاریخی متولد شدهاند.
صفحه 32
SELECT *
FROM PERSONS
WHERE NAME IN ('EINSTEIN', 'GALILEI', 'NEWTON');
SELECT *
FROM COUNTRIES
WHERE LITERACY IN (20, 40, 60);
SELECT NAME, COUNTRY
FROM PERSONS
WHERE JOB = 'S'
AND COUNTRY IN ('GERMANY', 'AUSTRIA', 'ITALY');
SELECT *
FROM PERSONS
WHERE JOB IN ('W', 'E', 'B')
AND COUNTRY IN ('GERMANY', 'AUSTRIA', 'ITALY');
صفحه PDF 99 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پاسخ تمرینها - صفحات 34 و 36 منبع
صفحه 34
SELECT *
FROM COUNTRIES
WHERE GNP IS NULL;
SELECT *
FROM PERSONS
WHERE JOB = 'E'
AND GENDER IS NULL;
SELECT *
FROM PERSONS
WHERE COUNTRY = 'ISRAEL'
AND BDATE IS NULL;
SELECT * FROM COUNTRIES WHERE AREA < 10 AND GNP > 250;
SELECT * FROM COUNTRIES WHERE AREA < 10 AND GNP <= 250;
SELECT * FROM COUNTRIES WHERE AREA < 10;
پرسوجوی اول 1 کشور و پرسوجوی دوم 2 کشور برمیگرداند. ممکن است حدس بزنید مجموعاً 3 کشور مساحت کمتر از 10 مایل مربع دارند، اما در واقع 4 کشور هستند؛ یک کشور به دلیل Null بودن GNP در هیچیک از دو پرسوجوی نخست ظاهر نمیشود.
صفحه 36
SELECT *
FROM PERSONS
WHERE COUNTRY = 'GERMANY'
AND (JOB = 'B' OR JOB = 'T')
ORDER BY NAME;
SELECT *
FROM PERSONS
WHERE COUNTRY = 'GERMANY'
AND NOT (JOB = 'B' OR JOB = 'T')
ORDER BY NAME;
SELECT *
FROM ARMIES
WHERE NOT COUNTRY IN ('USA', 'RUSSIA')
AND BUDGET > 30000;
پرسوجوی آخر 3 سطر برمیگرداند.
صفحه PDF 100 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پاسخ تمرینها - صفحات 40 و 42 منبع
صفحه 40
SELECT POP * .2
FROM COUNTRIES
WHERE COUNTRY = 'CANADA';
SELECT BUDGET * 1000000 / TROOPS
FROM ARMIES
WHERE COUNTRY = 'USA';
SELECT BUDGET * 1000000 / TROOPS
FROM ARMIES
WHERE COUNTRY = 'CHINA';
SELECT TANKS + SHIPS + PLANES
FROM ARMIES
WHERE COUNTRY = 'USA';
SELECT BUDGET * 1000000 * .45 / 125
FROM ARMIES
WHERE COUNTRY = 'USA';
نتایج منبع: 5,686,909 مهاجر کانادایی به آمریکا؛ هزینه هر سرباز در آمریکا حدود 170,000.09 دلار و در چین 921.50 دلار؛ مجموع 25,354 وسیله نظامی برای آمریکا؛ و 1,010,160,000 چکش.
صفحه 42
SELECT COUNTRY, POP, AREA, POP / AREA
FROM COUNTRIES
WHERE POP / AREA < 7
ORDER BY POP / AREA DESC;
SELECT COUNTRY, POP, LITERACY, LITERACY / 100 * POP
FROM COUNTRIES
WHERE LITERACY / 100 * POP > 100000000;
SELECT COUNTRY,
BUDGET * 1000000 * .3 / 650 / TROOPS
FROM ARMIES
WHERE BUDGET * 1000000 * .3 / 650 / TROOPS > 10
ORDER BY BUDGET * 1000000 * .3 / 650 / TROOPS DESC;
صفحه PDF 101 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پاسخ تمرینها - صفحات 44 و 48 منبع
صفحه 44
SELECT COUNTRY, POP, LITERACY,
LITERACY / 100 * POP AS READERS
FROM COUNTRIES
WHERE READERS > 100000000;
SELECT COUNTRY, POP, GNP,
GNP * 1000000 / POP AS GPP
FROM COUNTRIES
WHERE GPP > 20000
ORDER BY GPP DESC;
SELECT COUNTRY,
TROOPS * .20 * 20000 AS FISSION_FUND
FROM ARMIES
WHERE FISSION_FUND >= 2000000000
ORDER BY FISSION_FUND DESC;
طبق منبع 11 کشور مشارکتکننده وجود دارد.
صفحه 48
SELECT SUM(TROOPS)
FROM ARMIES;
SELECT MIN(LITERACY), MAX(LITERACY), AVG(LITERACY)
FROM COUNTRIES
WHERE LANGUAGE = 'FRENCH';
SELECT COUNT(COUNTRY), COUNT(DISTINCT LANGUAGE)
FROM COUNTRIES;
صفحه PDF 102 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
پاسخ تمرینها - صفحات 50 و 53 منبع
صفحه 50
SELECT LANGUAGE, SUM(POP)
FROM COUNTRIES
WHERE LANGUAGE IN ('HEBREW', 'SPANISH', 'ENGLISH', 'FRENCH')
GROUP BY LANGUAGE;
SELECT LANGUAGE, MIN(LITERACY), MAX(LITERACY), AVG(LITERACY)
FROM COUNTRIES
WHERE LANGUAGE IN ('HEBREW', 'SPANISH', 'ENGLISH', 'FRENCH')
GROUP BY LANGUAGE;
SELECT COUNTRY, GENDER, COUNT(PERSON)
FROM PERSONS
WHERE COUNTRY IN ('CANADA', 'FRANCE')
GROUP BY COUNTRY, GENDER
ORDER BY COUNTRY, GENDER;
SELECT JOB, GENDER, COUNT(PERSON)
FROM PERSONS
WHERE NOT GENDER IS NULL
GROUP BY JOB, GENDER
ORDER BY JOB, GENDER;
صفحه 53
SELECT COUNTRY, COUNT(PERSON)
FROM PERSONS
WHERE JOB = 'W'
GROUP BY COUNTRY
ORDER BY COUNT(PERSON);
SELECT LANGUAGE, SUM(POP)
FROM COUNTRIES
GROUP BY LANGUAGE
HAVING SUM(POP) < 1000000;
SELECT LANGUAGE, MIN(LITERACY), MAX(LITERACY), AVG(LITERACY)
FROM COUNTRIES
GROUP BY LANGUAGE
HAVING MIN(LITERACY) <> MAX(LITERACY);
SELECT LANGUAGE, SUM(AREA), SUM(POP)
FROM COUNTRIES
GROUP BY LANGUAGE
HAVING COUNT(*) > 1
ORDER BY SUM(AREA) DESC;
صفحه PDF 103 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده