پاسخ تمرین‌های SQL - بخش دوم و مثال‌های تکمیلی | آموزش SQL Server

پاسخ تمرین‌های SQL - بخش دوم و مثال‌های تکمیلی

توسط admin | گروه SQL Server | 1405/05/22

نظرات 0

پاسخ تمرین‌های SQL - بخش دوم و مثال‌های تکمیلی

عنوان اصلی: Answers to Exercises (Part 2)
عنوان ترجمه: پاسخ تمرین‌های SQL - بخش دوم و مثال‌های تکمیلی
صاحب/سازمان اثر: Relational Systems Corporation
زبان اصلی: انگلیسی
حق نشر منبع: Copyright © 2001
تاریخ ترجمه: 2026-08-13 / 1405/05/22
اعتبار ترجمه: ترجمه با کمک هوش مصنوعی
بازه صفحات PDF: 104 تا 111

پاسخ تمرین‌ها - صفحات 58 و 60 منبع

صفحه 58

SELECT NAME, LANGUAGE
FROM PERSONS, COUNTRIES
WHERE PERSONS.COUNTRY = COUNTRIES.COUNTRY
  AND JOB = 'S'
  AND BDATE LIKE '19%';

SELECT COUNTRIES.COUNTRY, GNP, BUDGET
FROM COUNTRIES, ARMIES
WHERE COUNTRIES.COUNTRY = ARMIES.COUNTRY
  AND POP > 100000000;

SELECT COUNTRIES.COUNTRY, GNP, BUDGET,
       BUDGET / GNP * 100
FROM COUNTRIES, ARMIES
WHERE COUNTRIES.COUNTRY = ARMIES.COUNTRY
  AND POP > 100000000;

SELECT TROOPS * PERCENT / 100
FROM ARMIES, RELIGIONS
WHERE ARMIES.COUNTRY = RELIGIONS.COUNTRY
  AND ARMIES.COUNTRY = 'GERMANY'
  AND RELIGION = 'PROTESTANT';

اگر فرض شود اعضای ارتش آلمان از نظر دینی نمونه‌ای متناسب از کل جمعیت هستند، حدود 165,285 نفر از آنان پروتستان خواهند بود.

صفحه 60

SELECT C.COUNTRY, POP, TROOPS
FROM COUNTRIES AS C, ARMIES AS A
WHERE C.COUNTRY = A.COUNTRY
  AND POP > 100000000;

SELECT DISTINCT LANGUAGE
FROM COUNTRIES AS C, RELIGIONS AS R
WHERE C.COUNTRY = R.COUNTRY
  AND RELIGION = 'MUSLIM'
  AND PERCENT > 90;

SELECT NAME, TITLE, LANGUAGE
FROM PERSONS AS P, JOBS AS J, COUNTRIES AS C
WHERE P.JOB = J.JOB
  AND P.COUNTRY = C.COUNTRY
  AND BDATE < '1400-01-01';
اسکن صفحه 104 فایل PDFتصویر کامل صفحه 104 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 104 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

پاسخ تمرین‌ها - صفحات 62 و 65 منبع

صفحه 62

SELECT COUNTRY
FROM RELIGIONS
WHERE RELIGION = 'PROTESTANT'
  AND PERCENT > 40
UNION
SELECT COUNTRY
FROM COUNTRIES
WHERE LANGUAGE = 'GERMAN';
-- 10 rows

SELECT COUNTRY
FROM PERSONS
WHERE JOB = 'S'
UNION
SELECT COUNTRY
FROM ARMIES
WHERE BUDGET > 10000
ORDER BY 1;

SELECT NAME
FROM PERSONS
WHERE NAME LIKE '_Z%'
UNION
SELECT COUNTRY
FROM COUNTRIES
WHERE COUNTRY LIKE '_Z%'
UNION
SELECT LANGUAGE
FROM COUNTRIES
WHERE LANGUAGE LIKE '_Z%';
-- 9 rows

صفحه 65

SELECT MAX(POP)
FROM COUNTRIES;

SELECT *
FROM COUNTRIES
WHERE POP = (SELECT MAX(POP) FROM COUNTRIES);
-- China wins.

SELECT *
FROM ARMIES
WHERE BUDGET > (SELECT AVG(BUDGET) FROM ARMIES);

SELECT LANGUAGE, NAME, TITLE, BDATE
FROM PERSONS AS P, JOBS AS J, COUNTRIES AS C
WHERE P.JOB = J.JOB
  AND P.COUNTRY = C.COUNTRY
  AND P.JOB = (SELECT JOB
               FROM PERSONS
               WHERE NAME = 'LUTHER')
ORDER BY LANGUAGE, NAME;

در پاسخ منبع، چین بیشترین جمعیت را دارد.

اسکن صفحه 105 فایل PDFتصویر کامل صفحه 105 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 105 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

پاسخ تمرین‌ها - صفحات 67 و 69 منبع

صفحه 67

SELECT COUNTRY
FROM COUNTRIES
WHERE LITERACY < 50;

SELECT *
FROM PERSONS
WHERE JOB = 'W'
  AND COUNTRY IN
      (SELECT COUNTRY
       FROM COUNTRIES
       WHERE LITERACY < 50);

SELECT *
FROM PERSONS
WHERE COUNTRY IN
      (SELECT COUNTRY
       FROM RELIGIONS
       WHERE RELIGION = 'CATHOLIC'
         AND PERCENT > 95);

SELECT *
FROM PERSONS
WHERE JOB = 'M'
  AND COUNTRY IN
      (SELECT COUNTRY
       FROM COUNTRIES
       WHERE LANGUAGE = 'ENGLISH')
  AND COUNTRY IN
      (SELECT COUNTRY
       FROM ARMIES
       WHERE TROOPS < (SELECT AVG(TROOPS) FROM ARMIES));

صفحه 69

SELECT JOB, NAME
FROM PERSONS AS P
WHERE BDATE =
      (SELECT MAX(BDATE)
       FROM PERSONS
       WHERE JOB = P.JOB);

SELECT *
FROM PERSONS AS P
WHERE BDATE =
      (SELECT MAX(BDATE)
       FROM PERSONS
       WHERE GENDER = P.GENDER);

SELECT COUNTRY, RELIGION
FROM RELIGIONS AS R
WHERE PERCENT =
      (SELECT MAX(PERCENT)
       FROM RELIGIONS
       WHERE COUNTRY = R.COUNTRY)
  AND COUNTRY IN
      (SELECT COUNTRY
       FROM COUNTRIES
       WHERE LANGUAGE = 'GERMAN');

طبق پاسخ منبع، جوان‌ترین مرد و جوان‌ترین زن هر دو اهل Liechtenstein هستند، از خاندان سلطنتی‌اند، در نیمه نخست سال متولد شده‌اند و نام‌هایی بسیار دشوار برای تلفظ دارند.

اسکن صفحه 106 فایل PDFتصویر کامل صفحه 106 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 106 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

پاسخ تمرین‌ها - صفحات 72 و 74 منبع

صفحه 72

SELECT * FROM JOBS;

INSERT
INTO JOBS (JOB, TITLE)
VALUES ('A', 'Author');

SELECT *
FROM PERSONS
WHERE PERSON >= 500;

INSERT
INTO PERSONS (PERSON, NAME, BDATE, GENDER, COUNTRY, JOB)
VALUES (500, 'name', 'bdate', 'gen', 'country', 'job');

INSERT
INTO PERSONS (PERSON, NAME, BDATE, GENDER, COUNTRY, JOB)
VALUES (501, 'name', 'bdate', 'gen', 'country', 'job');

صفحه 74

UPDATE PERSONS
SET JOB = 'A'
WHERE JOB = 'W';
SELECT * FROM PERSONS ORDER BY JOB;

UPDATE PERSONS
SET BDATE = 'bdate', JOB = 'E'
WHERE PERSON = 500;
SELECT * FROM PERSONS WHERE PERSON = 500;

UPDATE PERSONS
SET JOB = 'W'
WHERE JOB = 'A';
SELECT * FROM PERSONS ORDER BY JOB;
اسکن صفحه 107 فایل PDFتصویر کامل صفحه 107 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 107 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

پاسخ تمرین‌ها - صفحات 76 و 78 منبع

صفحه 76

DELETE FROM PERSONS WHERE PERSON = 501;
DELETE FROM PERSONS WHERE PERSON = 500;
SELECT * FROM PERSONS WHERE PERSON >= 500;

SELECT COUNT(*)
FROM PERSONS
WHERE BDATE LIKE '17%';
DELETE FROM PERSONS WHERE BDATE LIKE '17%';
SELECT COUNT(*)
FROM PERSONS
WHERE BDATE LIKE '17%';

SELECT COUNT(*) FROM RELIGIONS;
DELETE FROM RELIGIONS
WHERE RELIGION LIKE '%ORTHODOX%';
SELECT COUNT(*) FROM RELIGIONS;

طبق پاسخ منبع، پس از حذف موارد Orthodox باید 389 سطر در RELIGIONS باقی بماند.

صفحه 78

ROLLBACK;
SELECT * FROM JOBS;
SELECT COUNT(*) FROM RELIGIONS;

DELETE FROM PERSONS;
DELETE FROM ARMIES;
SELECT * FROM PERSONS;
SELECT * FROM ARMIES;
ROLLBACK;
SELECT * FROM PERSONS;
SELECT * FROM ARMIES;

INSERT
INTO PERSONS (PERSON, NAME, BDATE, GENDER, COUNTRY, JOB)
VALUES (500, 'name', 'bdate', 'gen', 'country', 'job');
COMMIT;
ROLLBACK;
SELECT * FROM PERSONS WHERE PERSON = 500;
DELETE FROM PERSONS WHERE PERSON = 500;
COMMIT;

پس از Commit، Rollback رکورد Commit‌شده را برنمی‌گرداند؛ بنابراین شخص هنوز در جدول است تا زمانی که حذف و دوباره Commit شود.

اسکن صفحه 108 فایل PDFتصویر کامل صفحه 108 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 108 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

پاسخ تمرین‌ها - صفحات 81 و 83 منبع

صفحه 81

CREATE TABLE SCIENTISTS
(
    NAME CHAR(20),
    BDATE DATE,
    GENDER CHAR(6),
    COUNTRY CHAR(20)
);

INSERT
INTO SCIENTISTS (NAME, BDATE, GENDER, COUNTRY)
VALUES ('name', 'bdate', 'gen', 'country');

SELECT * FROM SCIENTISTS;
DROP TABLE SCIENTISTS;

صفحه 83

CREATE TABLE SCIENTISTS
(
    NAME CHAR(20),
    BDATE DATE,
    GENDER CHAR(6),
    COUNTRY CHAR(20)
);

INSERT
INTO SCIENTISTS (NAME, BDATE, GENDER, COUNTRY)
(SELECT NAME, BDATE, GENDER, COUNTRY
 FROM PERSONS
 WHERE JOB = 'S' AND GENDER = 'FEMALE');
-- 1 female scientist

INSERT
INTO SCIENTISTS (NAME, BDATE, GENDER, COUNTRY)
(SELECT NAME, BDATE, GENDER, COUNTRY
 FROM PERSONS
 WHERE JOB = 'S' AND GENDER = 'MALE');
SELECT COUNT(*) FROM SCIENTISTS;
-- 29 scientists

INSERT
INTO SCIENTISTS (NAME, BDATE, GENDER, COUNTRY)
(SELECT NAME, BDATE, GENDER, COUNTRY
 FROM PERSONS
 WHERE JOB = 'T');
SELECT COUNT(*) FROM SCIENTISTS;
-- 42 rows total

DROP TABLE SCIENTISTS;
اسکن صفحه 109 فایل PDFتصویر کامل صفحه 109 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 109 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

پاسخ تمرین‌ها - صفحات 87 و 89 منبع

صفحه 87

CREATE TABLE THEOLOGIANS
(
    NAME CHAR(20),
    BDATE DATE,
    GENDER CHAR(6) NOT NULL DEFAULT 'male',
    COUNTRY CHAR(20),
    CHECK (GENDER IN ('male', 'female')),
    PRIMARY KEY (NAME),
    FOREIGN KEY (COUNTRY)
        REFERENCES COUNTRIES (COUNTRY)
);

INSERT
INTO THEOLOGIANS (NAME, BDATE, GENDER, COUNTRY)
(SELECT NAME, BDATE, GENDER, COUNTRY
 FROM PERSONS
 WHERE JOB = 'T');

INSERT INTO THEOLOGIANS (NAME, BDATE, GENDER, COUNTRY)
VALUES ('name', 'bdate', 'gen', 'Prussia');

INSERT INTO THEOLOGIANS (NAME, BDATE, GENDER, COUNTRY)
VALUES ('name', 'bdate', NULL, 'country');

DROP TABLE THEOLOGIANS;

صفحه 89

CREATE TABLE REGIONS (NAME CHAR(10));
INSERT INTO REGIONS(NAME) VALUES ('north');
INSERT INTO REGIONS(NAME) VALUES ('south');
INSERT INTO REGIONS(NAME) VALUES ('east');
INSERT INTO REGIONS(NAME) VALUES ('west');

INSERT INTO REGIONS(NAME)
(SELECT NAME FROM REGIONS);
-- Execute the preceding self-insert about 14 times.

SELECT NAME, COUNT(*)
FROM REGIONS
GROUP BY NAME;

CREATE INDEX RX ON REGIONS(NAME);

DROP INDEX RX;
DROP TABLE REGIONS;

طبق متن منبع، Query گروه‌بندی پیش از ایجاد Index باید محسوساً کند باشد؛ پس از ایجاد Index، همان Query باید به‌طور قابل‌توجهی سریع‌تر اجرا شود، زیرا Index برای گردآوری سطرهای هر گروه استفاده می‌شود.

اسکن صفحه 110 فایل PDFتصویر کامل صفحه 110 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 110 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

پاسخ تمرین‌ها - صفحه 91 و «امتیاز اضافه»

صفحه 91

CREATE VIEW IV
(PERSON, NAME, BDATE, GENDER, COUNTRY, JOB)
AS
SELECT *
FROM PERSONS
WHERE COUNTRY = 'ISRAEL';

SELECT * FROM IV;

INSERT
INTO IV (PERSON, NAME, BDATE, GENDER, COUNTRY, JOB)
VALUES (502, 'name', 'bdate', 'gen', 'Israel', 'job');

INSERT
INTO IV (PERSON, NAME, BDATE, GENDER, COUNTRY, JOB)
VALUES (503, 'name', 'bdate', 'gen', 'USA', 'job');

CREATE VIEW IJV (NAME, BDATE, COUNTRY, TITLE)
AS
SELECT NAME, BDATE, COUNTRY, TITLE
FROM IV, JOBS
WHERE IV.JOB = JOBS.JOB;

DROP VIEW IJV;
DROP VIEW IV;

دوست قدیمی در جدول زیرین PERSONS درج می‌شود، اما در View دیده نمی‌شود، زیرا شرط تعریف View یعنی کشور Israel را برآورده نمی‌کند. متن با عبارت خداحافظی چندزبانه «So long. Farewell. Aufwiedersein. Shalom.» پایان می‌یابد.

پاسخ‌های «امتیاز اضافه» خارج از دامنه درس

ستون دوم صفحه منبع پاسخ‌هایی را به پرسش‌هایی «فراتر از دامنه این متن» ارائه می‌کند. ترجمه وفادار دیدگاه خودِ منبع در ادامه آمده است:

  1. «بله، انسان‌ها شرورند.» منبع می‌گوید این موضوع از سه راه قابل مشاهده است: الف) کتاب مقدس، ب) استدلال و ج) تجربه. برای بخش کتاب مقدس به عبارتی از ارمیا درباره فریبکار و شرور بودن دل اشاره می‌کند. در بخش استدلال می‌پرسد اگر انسان‌ها اساساً خوب‌اند، چرا دارایی‌ها را قفل می‌کنیم و چرا پلیس و ارتش لازم است. در بخش تجربه به دروغ‌گفتن کودکان و گرایش به خودخواهی یا تنبلی اشاره می‌کند.
  2. منبع پاسخ می‌دهد انسان‌هایی که اساساً بد هستند برای بهشت مناسب نیستند، زیرا آن مکان را خراب می‌کنند.
  3. منبع می‌گوید «خودِ قدیمی» باید بمیرد و «خودِ جدید» جای آن را بگیرد؛ این را کاملاً کار خدا معرفی می‌کند و کشف آن توسط فرد را به کشف دست و پا توسط نوزاد تشبیه می‌کند.
  4. اصطلاح الهیاتی ارائه‌شده regeneration است که در زبان رایج «دوباره متولد شدن» (being born again) نامیده می‌شود.
  5. منبع می‌گوید افراد بسیار کمی این «تولد جدید» را تجربه می‌کنند و برای نمونه به نوح و نجات هشت نفر از طوفان و نیز لوط و دو دخترش در ماجرای سدوم اشاره می‌کند.
  6. منبع می‌گوید «پایان جهان» هنوز فاصله دارد، اما «عصر فیض» به‌سرعت رو به پایان است و تأخیر را توصیه نمی‌کند.
  7. در پایان می‌گوید کل طرح در کتاب مقدس توصیف شده و کتابی با عنوان The Truth نیز در دسترس مخاطب است.
اسکن صفحه 111 فایل PDFتصویر کامل صفحه 111 منبع برای حفظ جدول‌ها، نمودارها، نمونه‌ها و چیدمان اصلی.
صفحه PDF 111 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکن‌شده

امتیاز کاربران به این مقاله

☆☆☆☆☆

0 نفر امتیاز داده اند. میانگین: 0.0 از 5

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

0 / 500

اطلاعات تماس

  • آدرس:اصفهان-خیابان ام کلثوم غربی - بعد خیابان تخم چی - بیست متر بعد از پیتزا ننه شب - کوچه تعمیر گاه سمار زغالی - پلاک 354 - درب مشکی - طبقه هفتم
  • آدرس ایمیل:najafzade@gmail.com
  • وب سایت:http://www.a00b.com/
  • تلفن ثابت:(+98)9131253620
  • تلفن همراه:09131253620