程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> SQL中連接(3)——習題練習,sql習題

SQL中連接(3)——習題練習,sql習題

編輯:MySQL綜合教程

SQL中連接(3)——習題練習,sql習題


-- 1.給下面的查詢填空(使用<#>標記),以獲得其後的結果。

    SELECT e.emp_id, e.fname,e.lname,b.`name`     FROM employee e INNER JOIN <1> b     ON e.assigned_branch_id = b.<2>;   結果如下:     

 

 --2.編寫查詢,返回所有非商務顧客的賬戶ID(customer.cust_type = 'I')、顧客的聯邦個人識別號碼(customer.fed_id)以及賬戶所依賴的產品名稱(product.name).

SELECT c.fed_id,p.`name` FROM customer c INNER JOIN account a ON c.cust_id = a.cust_id INNER JOIN product p ON a.product_cd = p.product_cd WHERE c.cust_type_cd = 'I';        結果如下:      

   --3.構建查詢,查找所有主管位於另一個部門的雇員,需要獲取該雇員的ID、姓氏和名字

     SELECT e.emp_id,sup.emp_id FROM employee e INNER JOIN employee sup ON e.superior_emp_id = sup.emp_id WHERE e.dept_id <> sup.dept_id;  結果如下圖所示:  

 

     --4.編寫一個查詢,它返回所有產品名稱及基於該產品的帳號(用account表裡的product_cd列連接product表),查詢結果需要包括所有的產品,及時這個產品沒有客戶開戶   SELECT p.product_cd,p.`name`,a.account_id FROM product p LEFT JOIN account a ON p.product_cd = a.product_cd;   結果如下圖所示:

 

-- 5.利用其他外連接類型重寫上面的例子,要求查詢結果相同 SELECT p.product_cd,p.`name`,a.account_id FROM account a RIGHT JOIN product p ON  a.product_cd = p.product_cd;   結果如下圖所示:

 

-- 6.編寫一個查詢,將account表與indiviual 和business 兩個表外連接(通過account.cust_id列)要求結果集中每個賬戶一行,查詢的列有account.account_id、account.product_cd、individual.fname,individual.lname和business.name SELECT  a.account_id, a.product_cd, i.fname,i.lname,b.`name` FROM account a LEFT JOIN business b ON a.cust_id = b.cust_id LEFT JOIN individual i ON a.cust_id = i.cust_id;   結果如下圖所示:

 

-- 7.設計一個子查詢,生成集合{1,2,3......100} SELECT ones.num + tens.num + 1 FROM (         SELECT 0 num UNION ALL         SELECT 1 num UNION ALL         SELECT 2 num UNION ALL         SELECT 3 num UNION ALL         SELECT 4 num UNION ALL         SELECT 5 num UNION ALL         SELECT 6 num UNION ALL         SELECT 7 num UNION ALL         SELECT 8 num UNION ALL         SELECT 9 num )  AS ones CROSS JOIN (         SELECT 0 num UNION ALL         SELECT 10 num UNION ALL         SELECT 20 num UNION ALL         SELECT 30 num UNION ALL         SELECT 40 num UNION ALL         SELECT 50 num UNION ALL         SELECT 60 num UNION ALL         SELECT 70 num UNION ALL         SELECT 80 num UNION ALL         SELECT 90 num ) AS tens;   結果如下圖所示:

........

 

       

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved