羅德興老師的教學歷程檔案 - 111-1 作業系統 (資料庫) - 期中考試題 A 卷
 

企業資訊與管理系
助理教授/日導
羅德興


歷程檔案 Portfolio

    期中考試題 A 卷

    -- 期中考試題 A 卷 part1
    -- 以下代碼 _xxx 表示 -您的學號後三碼
    -- 一、請建立一個 資料庫 test_xxx,完成後請  (30%)
    -- (1) 在答案紙上寫下三個表格的欄位 (並標出關鍵值),與表格之間的關係 
    -- (2) 展示給老師評分
    -- 有三個表格 (tables) 如下 
     
    DROP DATABASE IF EXISTS test_xxx;  -- 刪除資料庫
    CREATE DATABASE `test_xxx` CHARACTER SET utf8; -- 建立資料庫 採 utf8 編碼
    -- 新增 table
     
    USE test_xxx;
    -- 利用 AUTO_INCREMENT 自動累加,給該筆記錄一個獨一無二的編號,
    -- 像是給它一個ID,或是一個Index等等,自動從一開始設定的值 (預設是1) 一直累加上去。 
     
    CREATE TABLE supplier_xxx (
        s_id int NOT NULL AUTO_INCREMENT,
        s_name char(100),
        address char(120) NOT NULL,
        PRIMARY KEY (s_id)
    ) CHARACTER SET=utf8, ENGINE=INNODB; 
     
    CREATE TABLE product_xxx (
        p_id char(10) NOT NULL,
        name char(50),
        cost int NOT NULL,
        PRIMARY KEY (p_id)
    ) CHARACTER SET=utf8, ENGINE=INNODB; 
     
    CREATE TABLE ordering_xxx (
        s int NOT NULL,
        p char(10) NOT NULL,
        qty int,
        PRIMARY KEY (s,p),
     
       CONSTRAINT sp_fk2
            FOREIGN KEY (s) REFERENCES supplier_xxx(s_id)
            ON DELETE NO ACTION
            ON UPDATE CASCADE,
     
       CONSTRAINT sp_fk3
            FOREIGN KEY (p) REFERENCES product_xxx(p_id)
            ON DELETE NO ACTION
            ON UPDATE CASCADE
     
     ) CHARACTER SET=utf8, ENGINE=INNODB; 
    -- type=innodb 相當於 engine=innodb
    -- 新增 table 內的資料
     
    INSERT INTO supplier_xxx
    (s_name, address) VALUES 
    ('大華公司', '台北'),
    ('中華公司', '新北市'),
    ('小華公司', '花蓮'),
    ('大同公司', '高雄'),
    ('大夏公司', '台南'),
    ('大東公司', '台中'),
    ('中西公司', '宜蘭');
     
    INSERT INTO product_xxx
    (p_id, name, cost) VALUES 
    ('10', '蘋果', 110),
    ('11', '青蘋果', 20),
    ('12', '檸檬', 10),
    ('13', '芭樂', 150),
    ('20', '番茄', 165),
    ('21', '香蕉', 140),
    ('23', '蓮霧', 250),
    ('24', '橘子', 100),
    ('30', '奇異果', 290),
    ('31', '梨子', 510),
    ('32', '富士蘋果', 410),
    ('33', '小蘋果', 105),
    ('34', '柳丁', 115),
    ('40', '西瓜', 290);
     
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('1', '10', 50);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('1', '11', 150);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('1', '12', 250);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('2', '10', 450);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('2', '11', 50);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('2', '13', 550);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('2', '12', 650);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('7', '20', 150);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('7', '21', 250);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('7', '23', 550);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('7', '30', 250);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('5', '31', 120);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('5', '32', 50);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('5', '33', 250);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('5', '10', 450);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('5', '11', 250);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('5', '12', 150);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('5', '20', 50);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('6', '30', 10);
    INSERT INTO ordering_xxx (s, p, qty) VALUES('6', '31', 750);
    INSERT INTO ordering_xxx (s, p, qty) VALUES ('6', '32', 250);
    INSERT INTO ordering_xxx (s, p, qty) VALUES('6', '33', 505);
    INSERT INTO ordering_xxx (s, p, qty) VALUES('6', '20', 20);


    -- 期中考試題 A 卷 part 2
    -- 以下代碼 _xxx 表示 -您的學號後三碼
    -- 二、請依序回答各題,或寫出各題的 SQL 程式並執行
    -- 1 - 10 題為必答題,每題 7 分 (70%)
     
    -- 1.      列出 ordering_xxx 資料表(Relation)中 S (以廠商作為別名 alias)、P、QTY (以訂購量作為別名)。
    -- 請在答案紙上寫下前三筆的結果
     
    -- 2. ordering_xxx 資料表中,各P (產品編號)之訂購量加總
    -- 請在答案紙上寫下前三筆的結果
     
    -- 3. 列出 廠商之訂購金額加總大於 80,000者。
    -- 訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost
    -- 請在答案紙上寫下前三筆的結果
     
    -- 4. 按廠商編號 由大到小排序,列出 ordering_xxx 資料表中 訂購 p 小於等於 '12' 的所有資料列
    -- 另存到一個資料表 temp_xxx
    -- 請在答案紙上寫下 temp_xxx 前三筆的結果
     
    -- 5. 列出 product_xxx 資料表中,未被訂購者的 P_id (產品編號)與 cost(單價)。
    -- 請在答案紙上寫下前三筆的結果
     
    -- 6. 下列SQL可完成什麼? 請在答案紙上寫下答案。                                                   ]
     
    -- 7. 列出 supplier_xxx 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address)
    -- 請在答案紙上寫下結果
     
    -- 8. 列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總
    -- 請在答案紙上寫下前三筆的結果
     
    -- 9.  列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。
    -- 請在答案紙上寫下前三筆的結果
     
    -- 10.  列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)、品名(name),價格 (cost),和數量(qty),
    -- 以及各項商品的訂購金額 (qty*cost)。
    -- 請在答案紙上寫下前三筆的結果
     
    -- 11. 列出 廠商之訂購金額加總 (訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost) 小於 250,000者。
    -- >> 寫下 其中最多的一家廠商、與其訂購金額加總
     
    -- 12. 列出 ordering_xxx 資料表中,被訂購總數量 大於 900 者的 P_id (產品編號)與 總數量
    -- >> 在答案紙上寫下來即可
     
    -- 13. 出訂購總金額最多的一項商品
    -- >> 寫下它的 商品編號、與品名
     
    -- 14. 列出有訂購產品的廠商中,但並沒訂購 '10' 商品的  公司編號 (s_id)
    -- >> 寫下它的 公司編號  即可
     
    -- 15. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)> '32' 者、品名(name),價格 (cost),和數量(qty),
    -- 以及各項商品的訂購金額 (qty*cost)。
    -- >> 寫下它的 公司名稱  即可
     
    -- 16. 將 表格 (Relation) product_xxx 中 40 號商品的 價格 改為 199 元
    -- >> 請在答案紙上寫下 您的 SQL 程式
    全部共 85則留言
    04-11 10:43:-- 1. 列出 ordering_xxx 資料表(Relation)中 S (以廠商作為別名 alias)、P、QTY (以訂購量作為別名)。 -- 請在答案紙上寫下前三筆的結果 SELECT s "廠商", p, qty "訂購量" FROM ordering_xxx LIMIT 3;
    04-11 10:45: 1. 列出 ordering_xxx 資料表(Relation)中 S (以廠商作為別名 alias)、P、QTY (以訂購量作為別名)。 -- 請在答案紙上寫下前三筆的結果 SELECT s "廠商", p, qty "訂購量" FROM ordering_012 LIMIT 3;
    04-11 10:52:-- 1. 列出 ordering_xxx 資料表(Relation)中 S (以廠商作為別名 alias)、P、QTY (以訂購量作為別名)。 -- 請在答案紙上寫下前三筆的結果 SELECT s"廠商",p,qty"訂購量" FROM ordering_019 LIMIT 3;
    04-11 10:55:-- 1. 列出 ordering_018 資料表(Relation)中 S (以廠商作為別名 alias)、P、QTY (以訂購量作為別名)。 -- 請在答案紙上寫下前三筆的結果 SELECT s "廠商" ,p , qty "訂購量" FROM ordering_018 LIMIT 3
    04-11 11:06: 1. 列出 ordering_012 資料表(Relation)中 S (以廠商作為別名 alias)、P、QTY (以訂購量作為別名)。 -- 請在答案紙上寫下前三筆的結果 SELECT s "廠商", p, qty "訂購量" FROM ordering_012 LIMIT 3;
    04-11 11:14:留言...
    04-11 11:14:-- 1. 列出 ordering_xxx 資料表(Relation)中 S (以廠商作為別名 alias)、P、QTY (以訂購量作為別名)。 -- 請在答案紙上寫下前三筆的結果 SELECT s "客戶", p, qty "訂購數量" FROM ordering_014 LIMIT 5;
    04-11 11:18:-- 2. ordering_xxx 資料表中,各P (產品編號)之訂購量加總 SELECT p, SUM(qty) FROM ordering_014 GROUP BY p;
    04-11 11:19:-- 2. ordering_019 資料表中,各P (產品編號)之訂購量加總 -- 請在答案紙上寫下前三筆的結果 SELECT p , SUM(qty) FROM ordering_019 GROUP BY p ;
    04-11 11:20:-- 2. ordering_018 資料表中,各P (產品編號)之訂購量加總 -- 請在答案紙上寫下前三筆的結果 SELECT p , SUM(qty) FROM ordering_018 GROUP BY p;
    04-11 11:20:2. ordering_xxx 資料表中,各P (產品編號)之訂購量加總 SELECT p, SUM(qty) FROM ordering_014 GROUP BY p;
    04-11 11:27:-- 2. ordering_012 資料表中,各P (產品編號)之訂購量加總 SELECT p, SUM(qty) FROM ordering_012 GROUP BY p;
    04-11 11:55:-- 3. 列出 廠商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost -- 請在答案紙上寫下前三筆的結果 SELECT s, SUM(qty*cost) cc FROM ordering_014 OO JOIN product_014 PP ON OO.p = PP.p_id GROUP BY OO.s HAVING cc > 80000;
    04-11 11:56:-- 3. 列出 廠商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_018 之訂購量 qty * table product_xxx 的 價格 cost -- 請在答案紙上寫下前三筆的結果 SELECT s,sum(qty*cost) FROM ordering_018 oo JOIN product_018 pp ON oo.p=pp.p_id GROUP by oo.s HAVING cc>80000
    04-11 11:59:-- 3. 列出 廠商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_012 之訂購量 qty * table product_012 的 價格 cost SELECT s ,SUM(qty*cost) cc FROM ordering_012 OO JOIN product_012 PP ON OO.p = PP.p_id GROUP BY OO.s HAVING cc > 80000;
    04-11 12:00:-- 3. 列出 廠商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_012 之訂購量 qty * table product_012 的 價格 cost SELECT s ,SUM(qty*cost) cc FROM ordering_012 OO JOIN product_012 PP ON OO.p = PP.p_id GROUP BY OO.s HAVING cc > 80000;
    04-11 12:08:-- 4. 按廠商編號 由大到小排序,列出 ordering_xxx 資料表中 訂購 p 小於等於 '12' 的所有資料列 -- 另存到一個資料表 temp_xxx -- 請在答案紙上寫下 temp_xxx 前三筆的結果 CREATE TABLE temp_014 SELECT * FROM ordering_014 WHERE p <= '12' ORDER BY s DESC;
    04-18 11:12:-- 5. 列出 product_xxx 資料表中,未被訂購者的 P_id (產品編號)與 cost(單價)。 -- 請在答案紙上寫下前三筆的結果 SELECT p_id, cost FROM product_xxx WHERE p_id not in ( SELECT DISTINCT p FROM ordering_xxx);
    04-18 11:20:-- 7. 列出 supplier_xxx 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address) -- 請在答案紙上寫下結果 SELECT * FROM supplier_xxx WHERE s_id IN (SELECT DISTINCT s FROM ordering_xxx);
    04-18 11:26:-- 8. 列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總 -- 請在答案紙上寫下前三筆的結果 SELECT *, SUM(OO.qty*PP.cost) AS tot FROM ordering_xxx OO JOIN product_xxx PP ON OO.p = PP.p_id GROUP BY OO.s ORDER BY tot;
    04-18 11:29:-- 9. 列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。 -- 請在答案紙上寫下前三筆的結果 SELECT * FROM supplier_xxx WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_xxx);
    04-18 11:41:-- 7. 列出 supplier_xxx 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address) SELECT * FROM supplier_014 WHERE s_id IN (SELECT DISTINCT s FROM ordering_014);
    04-18 11:44:-- 8. 列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總 SELECT *, SUM(OO.qty*PP.cost) AS tot FROM ordering_014 OO JOIN product_014 ON OO.p = PP.p_id GROUP BY OO.s ORDER BY tot;
    04-18 11:45:-- 11. 列出 廠商之訂購金額加總 (訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost) 小於 250,000者。 -- >> 寫下 其中最多的一家廠商、與其訂購金額加總 SELECT s, SUM(qty*cost) total FROM ordering_xxx OO JOIN product_xxx PP ON OO.p=PP.p_id GROUP BY s HAVING total < 250000;
    04-18 11:45:-- 9. 列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。 SELECT * FROM supplier_014 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_014);
    04-18 11:48:-- 10. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 SELECT * FROM supplier_014 SS JOIN (SELECT *, OO.qty*PP.cost AS total FROM ordering_014 OO JOIN product_014 PP ON OO.p = PP.p_id) TT ON SS.s_id = TT.s;
    04-18 11:51:-- 12. 列出 ordering_xxx 資料表中,被訂購總數量 大於 900 者的 P_id (產品編號)與 總數量 -- >> 在答案紙上寫下來即可 SELECT p_id, product_xxx.name, SUM(qty) allqty FROM product_xxx JOIN ordering_xxx ON product_xxx.p_id=ordering_xxx.p GROUP BY p_id HAVING allqty > 900;
    04-18 11:54:-- 13. 出訂購總金額最多的一項商品 -- >> 寫下它的 商品編號、與品名 SELECT p, name, SUM(qty*cost) total FROM product_xxx JOIN ordering_xxx ON product_xxx.p_id=ordering_xxx.p GROUP BY p ORDER BY total DESC LIMIT 1;
    04-18 11:58:-- 14. 列出有訂購產品的廠商中,但並沒訂購 '10' 商品的 公司編號 (s_id) -- >> 寫下它的 公司編號 即可 SELECT s_id FROM supplier_xxx WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_xxx WHERE p=10);
    04-18 12:00:-- 11. 列出 廠商之訂購金額加總 (訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost) 小於 250,000者。 -- >> 寫下 其中最多的一家廠商、與其訂購金額加總 SELECT s, SUM(qty*cost) total FROM ordering_014 OO JOIN product_014 PP ON OO.p=PP.p_id GROUP BY s HAVING total < 250000;
    04-18 12:03:-- 12. 列出 ordering_xxx 資料表中,被訂購總數量 大於 900 者的 P_id (產品編號)與 總數量 -- >> 在答案紙上寫下來即可 SELECT p_id, product_014.name, SUM(qty) allqty FROM product_014 JOIN ordering_014 ON product_014.p_id=ordering_014.p GROUP BY p_id HAVING allqty > 900
    04-18 12:06:-- 15. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)> '32' 者、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- >> 寫下它的 公司名稱 即可 SELECT s_id, SS.s_name, address FROM supplier_xxx SS WHERE s_id IN (SELECT DISTINCT s FROM ordering_xxx OO WHERE OO.p > 32);
    04-18 12:06:-- 13. 出訂購總金額最多的一項商品 -- >> 寫下它的 商品編號、與品名 SELECT p, name, SUM(qty*cost) total FROM product_014 JOIN ordering_014 ON product_014.p_id=ordering_014.p GROUP BY product_014 ORDER BY total DESC LIMIT 1;
    04-18 12:08:-- 16. 將 表格 (Relation) product_xxx 中 40 號商品的 價格 改為 199 元 -- >> 請在答案紙上寫下 您的 SQL 程式 UPDATE product_xxx PP SET PP.cost = 199 WHERE PP.p_id = '40';
    04-18 12:11:-- 14. 列出有訂購產品的廠商中,但並沒訂購 '10' 商品的 公司編號 (s_id) -- >> 寫下它的 公司編號 即可 SELECT s_id FROM supplier_014 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_014 WHERE p=10);
    04-18 12:12:-- 15. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)> '32' 者、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- >> 寫下它的 公司名稱 即可 SELECT s_id, SS.s_name, address FROM supplier_014 SS WHERE s_id IN (SELECT DISTINCT s FROM ordering_014 OO WHERE OO.p > 32);
    04-18 12:13:-- 16. 將 表格 (Relation) product_xxx 中 40 號商品的 價格 改為 199 元 -- >> 請在答案紙上寫下 您的 SQL 程式 UPDATE product_014 PP SET PP.cost = 199 WHERE PP.p_id = '40';
    04-18 12:17:-- 4. 按廠商編號 由大到小排序,列出 ordering_018 資料表中 訂購 p 小於等於 '12' 的所有資料列 -- 另存到一個資料表 temp_018 -- 請在答案紙上寫下 temp_018 前三筆的結果 CREATE TABLE temp_018 SELECT * FROM ordering_018 WHERE p <= '12' ORDER BY s DESC;
    04-18 12:17:-- 5. 列出 product_018 資料表中,未被訂購者的 P_id (產品編號)與 cost(單價)。 -- 請在答案紙上寫下前三筆的結果 SELECT p_id, cost FROM product_018 WHERE p_id not in ( SELECT DISTINCT p FROM ordering_018);
    04-18 12:18:-- 7. 列出 supplier_018 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address) -- 請在答案紙上寫下結果 SELECT * FROM supplier_018 WHERE s_id IN (SELECT DISTINCT s FROM ordering_018);
    04-18 12:18:-- 8. 列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總 -- 請在答案紙上寫下前三筆的結果 ELECT *, SUM(OO.qty*PP.cost) AS tot FROM ordering_018 OO JOIN product_018 PP ON OO.p = PP.p_id GROUP BY OO.s ORDER BY tot;
    04-18 12:18:-- 9. 列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。 -- 請在答案紙上寫下前三筆的結果 SELECT * FROM supplier_018 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_018);
    04-18 12:19:-- 10. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 SELECT * FROM supplier_014 SS JOIN (SELECT *, OO.qty*PP.cost AS total FROM ordering_014 OO JOIN product_014 PP ON OO.p = PP.p_id) TT ON SS.s_id = TT.s;
    04-18 12:19:-- 11. 列出 廠商之訂購金額加總 (訂購金額 為 table ordering_018 之訂購量 qty * table product_018 的 價格 cost) 小於 250,000者。 -- >> 寫下 其中最多的一家廠商、與其訂購金額加總 SELECT s, SUM(qty*cost) total FROM ordering_018 OO JOIN product_018 PP ON OO.p=PP.p_id ROUP BY s HAVING total < 250000;
    04-18 12:19:-- 12. 列出 ordering_018 資料表中,被訂購總數量 大於 900 者的 P_id (產品編號)與 總數量 -- >> 在答案紙上寫下來即可 SELECT p_id, product_018.name, SUM(qty) allqty FROM product_018 JOIN ordering_018 ON product_018.p_id=ordering_018.p GROUP BY p_id HAVING allqty > 900;
    04-18 12:19:-- 13. 出訂購總金額最多的一項商品 -- >> 寫下它的 商品編號、與品名 SELECT p, name, SUM(qty*cost) total FROM product_018 JOIN ordering_018 ON product_018.p_id=ordering_018.p GROUP BY p ORDER BY total DESC LIMIT 1;
    04-18 12:20:-- 14. 列出有訂購產品的廠商中,但並沒訂購 '10' 商品的 公司編號 (s_id) -- >> 寫下它的 公司編號 即可 SELECT s_id FROM supplier_018 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_018 WHERE p=10);
    04-18 12:20:-- 15. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address), -- 及其訂購的商品編號(p_id)> '32' 者、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- >> 寫下它的 公司名稱 即可 SELECT s_id, SS.s_name, address FROM supplier_018 SS WHERE s_id IN (SELECT DISTINCT s FROM ordering_018 OO WHERE OO.p > 32);
    04-18 12:20:-- 16. 將 表格 (Relation) product_018 中 40 號商品的 價格 改為 199 元 -- >> 請在答案紙上寫下 您的 SQL 程式 UPDATE product_018 PP SET PP.cost = 199 WHERE PP.p_id = '40';
    04-18 12:22:-- 3. 列出 廠商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_019 之訂購量 qty * table product_019 的 價格 cost -- 請在答案紙上寫下前三筆的結果 SELECT s, SUM(qty*cost) cc FROM ordering_019 oo JOIN product_019 pp ON oo.p = pp.p_id GROUP BY oo.s HAVING cc > 80000 ;
    04-18 12:22:-- 4. 按廠商編號 由大到小排序,列出 ordering_019 資料表中 訂購 p 小於等於 '12' 的所有資料列 -- 另存到一個資料表 temp_xxx -- 請在答案紙上寫下 temp_xxx 前三筆的結果 CREATE TABLE temp_019 SELECT * FROM ordering_019 WHERE p <= '12' ORDER BY s DESC;
    04-18 12:22:-- 5. 列出 product_019 資料表中,未被訂購者的 P_id (產品編號)與 cost(單價)。 -- 請在答案紙上寫下前三筆的結果 SELECT p_id,cost FROM product_019 WHERE p_id not in (SELECT DISTINCT P FROM ordering_019);
    04-18 12:23:-- 7. 列出 supplier_019 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address) -- 請在答案紙上寫下結果 SELECT * FROM supplier_019 WHERE s_id IN (SELECT DISTINCT s FROM ordering_019);
    04-18 12:23:4. 按廠商編號 由大到小排序,列出 ordering_018 資料表中 訂購 p 小於等於 '12' 的所有資料列 -- 另存到一個資料表 temp_018 -- 請在答案紙上寫下 temp_018 前三筆的結果 CREATE TABLE temp_018 SELECT * FROM ordering_018 WHERE p <= '12' ORDER BY s DESC;
    04-18 12:23:-- 8. 列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總 -- 請在答案紙上寫下前三筆的結果 SELECT *, SUM(OO.qty*PP.cost) AS tot FROM ordering_019 OO JOIN product_019 PP ON OO.p = PP.p_id GROUP BY OO.s ORDER BY tot;
    04-18 12:23:-- 9. 列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。 -- 請在答案紙上寫下前三筆的結果 SELECT * FROM supplier_019 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_019);
    04-18 12:23:-- 10. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- 請在答案紙上寫下前三筆的結果 SELECT * FROM supplier_019 SS JOIN (SELECT *, OO.qty*PP.cost AS total FROM ordering_019 OO JOIN product_019 PP ON OO.p = PP.p_id) TT ON SS.s_id = TT.s;
    04-18 12:24:-- 11. 列出 廠商之訂購金額加總 (訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost) 小於 250,000者。 -- >> 寫下 其中最多的一家廠商、與其訂購金額加總 SELECT s, SUM(qty*cost) total FROM ordering_019 OO JOIN product_019 PP ON OO.p=PP.p_id GROUP BY s HAVING total < 250000;
    04-18 12:24:-- 12. 列出 ordering_xxx 資料表中,被訂購總數量 大於 900 者的 P_id (產品編號)與 總數量 -- >> 在答案紙上寫下來即可 SELECT p_id, product_019.name, SUM(qty) allqty FROM product_019 JOIN ordering_019 ON product_019.p_id=ordering_019.p GROUP BY p_id HAVING allqty > 900;
    04-18 12:24:-- 13. 出訂購總金額最多的一項商品 -- >> 寫下它的 商品編號、與品名 SELECT p, name, SUM(qty*cost) total FROM product_019 JOIN ordering_019 ON product_019.p_id=ordering_019.p GROUP BY p ORDER BY total DESC LIMIT 1;
    04-18 12:24:-- 14. 列出有訂購產品的廠商中,但並沒訂購 '10' 商品的 公司編號 (s_id) -- >> 寫下它的 公司編號 即可 SELECT s_id FROM supplier_019 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_019 WHERE p=10);
    04-18 12:24:-- 15. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)> '32' 者、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- >> 寫下它的 公司名稱 即可 SELECT s_id, SS.s_name, address FROM supplier_019 SS WHERE s_id IN (SELECT DISTINCT s FROM ordering_019 OO WHERE OO.p > 32);
    04-18 12:25:-- 16. 將 表格 (Relation) product_xxx 中 40 號商品的 價格 改為 199 元 -- >> 請在答案紙上寫下 您的 SQL 程式 UPDATE product_019 PP SET PP.cost = 199 WHERE PP.p_id = '40';
    04-20 15:05:4. 按廠商編號 由大到小排序,列出 ordering_017 資料表中 訂購 p 小於等於 '12' 的所有資料列 -- 另存到一個資料表 temp_017 -- 請在答案紙上寫下 temp_017 前三筆的結果 CREATE TABLE temp_018 SELECT * FROM ordering_017 WHERE p <= '12' ORDER BY s DESC;
    04-20 15:05:5. 列出 product_017 資料表中,未被訂購者的 P_id (產品編號)與 cost(單價)。 -- 請在答案紙上寫下前三筆的結果 SELECT p_id, cost FROM product_017 WHERE p_id not in ( SELECT DISTINCT p FROM ordering_017);
    04-20 15:14: 7. 列出 supplier_017 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address) -- 請在答案紙上寫下結果 SELECT * FROM supplier_017 WHERE s_id IN (SELECT DISTINCT s FROM ordering_017);
    04-20 15:15: 8. 列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總 -- 請在答案紙上寫下前三筆的結果 SELECT *, SUM(OO.qty*PP.cost) AS tot FROM ordering_xxx OO JOIN product_xxx PP ON OO.p = PP.p_id GROUP BY OO.s ORDER BY tot;
    04-20 15:16:9. 列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。 -- 請在答案紙上寫下前三筆的結果 SELECT * FROM supplier_017 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_017);
    04-20 15:18:10. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- 請在答案紙上寫下前三筆的結果 SELECT * FROM supplier_017 SS JOIN (SELECT *, OO.qty*PP.cost AS total FROM ordering_017 OO JOIN product_017 PP ON OO.p = PP.p_id) TT ON SS.s_id = TT.s;
    04-20 15:39:11. 列出 廠商之訂購金額加總 (訂購金額 為 table ordering_017 之訂購量 qty * table product_017 的 價格 cost) 小於 250,000者。 -- >> 寫下 其中最多的一家廠商、與其訂購金額加總 SELECT s, SUM(qty*cost) total FROM ordering_017 OO JOIN product_017 PP ON OO.p=PP.p_id ROUP BY s HAVING total < 250000;
    04-20 15:41:12. 列出 ordering_017 資料表中,被訂購總數量 大於 900 者的 P_id (產品編號)與 總數量 -- >> 在答案紙上寫下來即可 SELECT p_id, product_017.name, SUM(qty) allqty FROM product_017 JOIN ordering_017 ON product_017.p_id=ordering_017.p GROUP BY p_id HAVING allqty > 900;
    04-20 15:42:13. 出訂購總金額最多的一項商品 -- >> 寫下它的 商品編號、與品名 SELECT p, name, SUM(qty*cost) total FROM product_xxx JOIN ordering_xxx ON product_xxx.p_id=ordering_xxx.p GROUP BY p ORDER BY total DESC LIMIT 1;
    04-20 15:43:14. 列出有訂購產品的廠商中,但並沒訂購 '10' 商品的 公司編號 (s_id) -- >> 寫下它的 公司編號 即可 SELECT s_id FROM supplier_017 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_017 WHERE p=10);
    04-20 15:44:15. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address), -- 及其訂購的商品編號(p_id)> '32' 者、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 -- >> 寫下它的 公司名稱 即可 SELECT s_id, SS.s_name, address FROM supplier_017 SS WHERE s_id IN (SELECT DISTINCT s FROM ordering_017 OO WHERE OO.p > 32);
    04-20 15:45:16. 將 表格 (Relation) product_xxx 中 40 號商品的 價格 改為 199 元 -- >> 請在答案紙上寫下 您的 SQL 程式 UPDATE product_xxx PP SET PP.cost = 199 WHERE PP.p_id = '40';
    04-20 15:46: 3. 列出 廠商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_017 之訂購量 qty * table product_017 的 價格 cost -- 請在答案紙上寫下前三筆的結果 SELECT s, SUM(qty*cost) cc FROM ordering_017 oo JOIN product_017 pp ON oo.p = pp.p_id GROUP BY oo.s HAVING cc > 80000 ;
    05-09 10:16:-- 1. 列出 ordering_xxx 資料表(Relation)中 S (以廠商作為別名 alias)、P、QTY (以訂購量作為別名)。 -- 請在答案紙上寫下前三筆的結果 SELECT s "廠商", p, qty "訂購量" FROM ordering_014 LIMIT 3;
    05-09 10:18:-- 2. ordering_xxx 資料表中,各P (產品編號)之訂購量加總 SELECT p, SUM(qty) FROM ordering_014 GROUP BY p;
    05-09 10:26:-- 3. 列出 廠商之訂購金額加總大於 80,000者。 -- 訂購金額 為 table ordering_xxx 之訂購量 qty * table product_xxx 的 價格 cost -- 請在答案紙上寫下前三筆的結果 SELECT s, SUM(qty*cost) cc FROM ordering_014 OO JOIN product_014 PP ON OO.p = PP.p_id GROUP BY OO.s HAVING cc > 80000;
    05-09 10:40:-- 4. 按廠商編號 由大到小排序,列出 ordering_014 資料表中 訂購 p 小於等於 '12' 的所有資料列 -- 另存到一個資料表 temp_014 -- 請在答案紙上寫下 temp_014 前三筆的結果 CREATE TABLE temp_014 SELECT * FROM ordering_014 WHERE p <= '12' ORDER BY s DESC;
    05-09 10:41:-- 5. 列出 product_014 資料表中,未被訂購者的 P_id (產品編號)與 cost(單價)。 -- 請在答案紙上寫下前三筆的結果 SELECT p_id, cost FROM product_014 WHERE p_id not in ( SELECT DISTINCT p FROM ordering_014);
    05-09 10:47:-- 7. 列出 supplier_014 資料表中 有訂購 30 號產品者(P=30)的 廠商編號 (s_id), 廠商名稱 (s_name), 與 地址 (address) -- 請在答案紙上寫下結果 SELECT * FROM supplier_014 WHERE s_id IN (SELECT DISTINCT s FROM ordering_014);
    05-09 10:50:-- 8. 列出訂購總金額加總為後五名者 (最少的5家) 的S,P,qty,cost,與訂購總金額加總 -- 請在答案紙上寫下前三筆的結果 SELECT *, SUM(OO.qty*PP.cost) AS tot FROM ordering_014 OO JOIN product_014 PP ON OO.p = PP.p_id GROUP BY OO.s ORDER BY tot;
    05-09 10:53:-- 9. 列出 未有訂購產品 的廠商編號 (s_id)、名稱(s_name),與地址 (address)。 -- 請在答案紙上寫下前三筆的結果 SELECT * FROM supplier_014 WHERE s_id NOT IN (SELECT DISTINCT s FROM ordering_014);
    05-09 10:55:-- 10. 列出 有訂購產品 的廠商編號 (s_id) 與地址 (address),及其訂購的商品編號(p_id)、品名(name),價格 (cost),和數量(qty), -- 以及各項商品的訂購金額 (qty*cost)。 SELECT * FROM supplier_014 SS JOIN (SELECT *, OO.qty*PP.cost AS total FROM ordering_014 OO JOIN product_014 PP ON OO.p = PP.p_id) TT ON SS.s_id = TT.s;
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

    中華科技大學數位化學習歷程 - 意見反應