{"id":1529,"date":"2022-11-08T23:03:05","date_gmt":"2022-11-08T15:03:05","guid":{"rendered":"https:\/\/qaqaq.top\/?p=1529"},"modified":"2022-11-27T12:40:58","modified_gmt":"2022-11-27T04:40:58","slug":"%e5%ad%90%e6%9f%a5%e8%af%a2%e4%b8%be%e4%be%8b%e4%b8%8e%e5%ad%90%e6%9f%a5%e8%af%a2%e7%9a%84%e5%88%86%e7%b1%bb%e3%80%81%e5%8d%95%e8%a1%8c%e5%ad%90%e6%9f%a5%e8%af%a2%e6%a1%88%e4%be%8b%e5%88%86%e6%9e%90","status":"publish","type":"post","link":"https:\/\/qaqaq.top\/?p=1529","title":{"rendered":"\u5b50\u67e5\u8be2\u4e3e\u4f8b\u4e0e\u5b50\u67e5\u8be2\u7684\u5206\u7c7b\u3001\u5355\u884c\u5b50\u67e5\u8be2\u6848\u4f8b\u5206\u6790\u3001\u591a\u884c\u5b50\u67e5\u8be2\u6848\u4f8b\u5206\u6790\u3001\u76f8\u5173\u5b50\u67e5\u8be2\u6848\u4f8b\u5206\u6790"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code># \u7b2c09\u7ae0_\u5b50\u67e5\u8be2\r\n\r\n# 1. \u7531\u4e00\u4e2a\u5177\u4f53\u7684\u9700\u6c42,\u5f15\u5165\u5b50\u67e5\u8be2\r\n# \u9700\u6c42\uff1a\u8c01\u7684\u5de5\u8d44\u6bd4Abel\u7684\u9ad8\uff1f\r\n#\u65b9\u5f0f1\uff1a\r\n\r\nSELECT last_name, salary\r\nFROM employees\r\nWHERE last_name = 'Abel';\r\n\r\nSELECT last_name, salary\r\nFROM employees\r\nWHERE salary > 11000;\r\n\r\n#\u65b9\u5f0f2\uff1a\u81ea\u8fde\u63a5\r\nSELECT e2.last_name, e2.salary\r\nFROM employees e1,\r\n     employees e2\r\nWHERE e2.salary > e1.salary\r\n  AND e1.last_name = 'Abel';\r\n\r\nSELECT e2.last_name, e2.salary\r\nFROM employees e1\r\n         JOIN employees e2\r\n              ON e2.salary > e1.salary\r\nWHERE e1.last_name = 'Abel';\r\n\r\n#\u65b9\u5f0f3: \u5b50\u67e5\u8be2\r\nSELECT last_name, salary\r\nFROM employees\r\nWHERE salary > (\r\n    SELECT salary\r\n    FROM employees\r\n    WHERE last_name = 'Abel'\r\n    );\r\n\r\n# 2. \u79f0\u8c13\u7684\u89c4\u8303: \u5916\u67e5\u8be2\uff08\u6216\u4e3b\u67e5\u8be2\uff09\u3001\u5185\u67e5\u8be2\uff08\u6216\u5b50\u67e5\u8be2\uff09\r\n\r\n\/*\r\n    \u5b50\u67e5\u8be2\uff08\u5185\u67e5\u8be2\uff09\u5728\u4e3b\u67e5\u8be2\u4e4b\u524d\u4e00\u6b21\u6267\u884c\u5b8c\u6210\u3002\r\n    \u5b50\u67e5\u8be2\u7684\u7ed3\u679c\u88ab\u4e3b\u67e5\u8be2\uff08\u5916\u67e5\u8be2\uff09\u4f7f\u7528 \u3002\r\n    \u6ce8\u610f\u4e8b\u9879\r\n        \u5b50\u67e5\u8be2\u8981\u5305\u542b\u5728\u62ec\u53f7\u5185\r\n        \u5c06\u5b50\u67e5\u8be2\u653e\u5728\u6bd4\u8f83\u6761\u4ef6\u7684\u53f3\u4fa7\r\n        \u5355\u884c\u64cd\u4f5c\u7b26\u5bf9\u5e94\u5355\u884c\u5b50\u67e5\u8be2\uff0c\u591a\u884c\u64cd\u4f5c\u7b26\u5bf9\u5e94\u591a\u884c\u5b50\u67e5\u8be2\r\n\r\n *\/\r\n\r\n#\u4e0d\u63a8\u8350\r\nSELECT last_name, salary\r\nFROM employees\r\nWHERE (\r\n          SELECT salary\r\n          FROM employees\r\n          WHERE last_name = 'Abel'\r\n      ) &lt; salary;\r\n\r\n\/*\r\n# 3. \u5b50\u67e5\u8be2\u7684\u5206\u7c7b\r\n \u89d2\u5ea61\uff1a\u4ece\u5185\u67e5\u8be2\u8fd4\u56de\u7684\u7ed3\u679c\u7684\u6761\u76ee\u6570\r\n            \u5355\u884c\u5b50\u67e5\u8be2 vs \u591a\u884c\u5b50\u67e5\u8be2\r\n\r\n \u89d2\u5ea62\uff1a\u5185\u67e5\u8be2\u662f\u5426\u88ab\u6267\u884c\u591a\u6b21\r\n            \u76f8\u5173\u5b50\u67e5\u8be2 vs \u4e0d\u76f8\u5173\u5b50\u67e5\u8be2\r\n\r\n \u6bd4\u5982\uff1a\u76f8\u5173\u5b50\u67e5\u8be2\u7684\u9700\u6c42\uff1a\u67e5\u8be2\u5de5\u8d44\u5927\u4e8e\u672c\u90e8\u95e8\u5e73\u5747\u5de5\u8d44\u7684\u5458\u5de5\u4fe1\u606f\u3002\r\n       \u4e0d\u76f8\u5173\u5b50\u67e5\u8be2\u7684\u9700\u6c42\uff1a\u67e5\u8be2\u5de5\u8d44\u5927\u4e8e\u672c\u516c\u53f8\u5e73\u5747\u5de5\u8d44\u7684\u5458\u5de5\u4fe1\u606f\u3002\r\n *\/\r\n\r\n#\u5b50\u67e5\u8be2\u7684\u7f16\u5199\u6280\u5de7\uff08\u6216\u6b65\u9aa4\uff09\uff1a\u2460 \u4ece\u91cc\u5f80\u5916\u5199  \u2461 \u4ece\u5916\u5f80\u91cc\u5199\r\n\r\n# 4. \u5355\u884c\u5b50\u67e5\u8be2\r\n# 4.1 \u5355\u884c\u64cd\u4f5c\u7b26\uff1a=   !=   >   >=    &lt;    &lt;=\r\n# \u9898\u76ee\uff1a\u67e5\u8be2\u5de5\u8d44\u5927\u4e8e149\u53f7\u5458\u5de5\u5de5\u8d44\u7684\u5458\u5de5\u7684\u4fe1\u606f\r\n\r\nSELECT employee_id, last_name, salary\r\nFROM employees\r\nWHERE salary > (\r\n    SELECT salary\r\n    FROM employees\r\n    WHERE employee_id = 149\r\n    );\r\n\r\n# \u9898\u76ee\uff1a\u8fd4\u56dejob_id\u4e0e141\u53f7\u5458\u5de5\u76f8\u540c\uff0csalary\u6bd4143\u53f7\u5458\u5de5\u591a\u7684\u5458\u5de5\u59d3\u540d\uff0cjob_id\u548c\u5de5\u8d44\r\n\r\nSELECT last_name, job_id, salary\r\nFROM employees\r\nWHERE job_id = (\r\n    SELECT job_id\r\n    FROM employees\r\n    WHERE employee_id = 141\r\n    )\r\n  AND salary > (\r\n    SELECT salary\r\n    FROM employees\r\n    WHERE employee_id = 143\r\n    );\r\n\r\n# \u9898\u76ee\uff1a\u8fd4\u56de\u516c\u53f8\u5de5\u8d44\u6700\u5c11\u7684\u5458\u5de5\u7684last_name,job_id\u548csalary\r\n\r\nSELECT last_name, job_id, salary\r\nFROM employees\r\nWHERE salary = (\r\n    SELECT MIN(salary)\r\n    FROM employees\r\n    );\r\n\r\n# \u9898\u76ee\uff1a\u67e5\u8be2\u4e0e141\u53f7\u5458\u5de5\u7684manager_id\u548cdepartment_id\u76f8\u540c\u7684\u5176\u4ed6\u5458\u5de5\r\n# \u7684employee_id\uff0cmanager_id\uff0cdepartment_id\u3002\r\n# \u65b9\u5f0f1\uff1a\r\nSELECT employee_id, manager_id, department_id\r\nFROM employees\r\nWHERE manager_id = (\r\n    SELECT manager_id\r\n    FROM employees\r\n    WHERE employee_id = 141\r\n    )\r\n  AND department_id = (\r\n    SELECT department_id\r\n    FROM employees\r\n    WHERE employee_id = 141\r\n    )\r\n  AND employee_id &lt;> 141;\r\n\r\n# \u65b9\u5f0f2\uff1a\u4e86\u89e3\r\nSELECT employee_id, manager_id, department_id\r\nFROM employees\r\nWHERE (manager_id, department_id) = (\r\n    SELECT manager_id, department_id\r\n    FROM employees\r\n    WHERE employee_id = 141\r\n    )\r\n  AND employee_id &lt;> 141;\r\n\r\n# \u9898\u76ee\uff1a\u67e5\u8be2\u6700\u4f4e\u5de5\u8d44\u5927\u4e8e110\u53f7\u90e8\u95e8\u6700\u4f4e\u5de5\u8d44\u7684\u90e8\u95e8id\u548c\u5176\u6700\u4f4e\u5de5\u8d44\r\n\r\nSELECT department_id, MIN(salary)\r\nFROM employees\r\nWHERE department_id IS NOT NULL\r\nGROUP BY department_id\r\nHAVING MIN(salary) > (\r\n    SELECT MIN(salary)\r\n    FROM employees\r\n    WHERE department_id = 110\r\n    );\r\n\r\n# \u9898\u76ee\uff1a\u663e\u5f0f\u5458\u5de5\u7684employee_id,last_name\u548clocation\u3002\r\n# \u5176\u4e2d\uff0c\u82e5\u5458\u5de5department_id\u4e0elocation_id\u4e3a1800\u7684department_id\u76f8\u540c\uff0c\r\n# \u5219location\u4e3a\u2019Canada\u2019\uff0c\u5176\u4f59\u5219\u4e3a\u2019USA\u2019\u3002\r\n\r\nSELECT employee_id,\r\n       last_name,\r\n       CASE department_id\r\n           WHEN (SELECT department_id FROM departments WHERE location_id = 1800) THEN 'Canada'\r\n           ELSE 'USA' END \"location\"\r\nFROM employees;\r\n\r\n# 4.2 \u5b50\u67e5\u8be2\u4e2d\u7684\u7a7a\u503c\u95ee\u9898\r\nSELECT last_name, job_id\r\nFROM employees\r\nWHERE job_id = (SELECT job_id\r\n                FROM employees\r\n                WHERE last_name = 'Haas'\r\n    );\r\n\r\n# 4.3 \u975e\u6cd5\u4f7f\u7528\u5b50\u67e5\u8be2\r\n#\u9519\u8bef\uff1aSubquery returns more than 1 row\r\nSELECT employee_id, last_name\r\nFROM employees\r\nWHERE salary =(\r\n    SELECT MIN(salary)\r\n    FROM employees\r\n    GROUP BY department_id\r\n    );\r\n\r\n# 5. \u591a\u884c\u5b50\u67e5\u8be2\r\n# 5.1 \u591a\u884c\u5b50\u67e5\u8be2\u7684\u64cd\u4f5c\u7b26\uff1a IN ANY ALL SOME(\u540cANY)\r\n\r\n# 5.2 \u4e3e\u4f8b\r\n# IN:\r\nSELECT employee_id, last_name\r\nFROM employees\r\nWHERE salary IN (\r\n    SELECT MIN(salary)\r\n    FROM employees\r\n    GROUP BY department_id\r\n    );\r\n\r\n# ANY \/ ALL:\r\n# \u9898\u76ee\uff1a\u8fd4\u56de\u5176\u5b83job_id\u4e2d\u6bd4job_id\u4e3a\u2018IT_PROG\u2019\u90e8\u95e8\u4efb\u4e00\u5de5\u8d44\u4f4e\u7684\u5458\u5de5\u7684\u5458\u5de5\u53f7\u3001\r\n# \u59d3\u540d\u3001job_id \u4ee5\u53casalary\r\n\r\nSELECT employee_id,last_name,job_id,salary\r\nFROM employees\r\nWHERE job_id &lt;> 'IT_PROG'\r\nAND salary &lt; ANY (\r\n    SELECT salary\r\n    FROM employees\r\n    WHERE job_id = 'IT_PROG'\r\n    );\r\n\r\n# \u9898\u76ee\uff1a\u8fd4\u56de\u5176\u5b83job_id\u4e2d\u6bd4job_id\u4e3a\u2018IT_PROG\u2019\u90e8\u95e8\u6240\u6709\u5de5\u8d44\u4f4e\u7684\u5458\u5de5\u7684\u5458\u5de5\u53f7\u3001\r\n# \u59d3\u540d\u3001job_id \u4ee5\u53casalary\r\n\r\nSELECT employee_id,last_name,job_id,salary\r\nFROM employees\r\nWHERE job_id &lt;> 'IT_PROG'\r\nAND salary &lt; ALL (\r\n    SELECT salary\r\n    FROM employees\r\n    WHERE job_id = 'IT_PROG'\r\n    );\r\n\r\n# \u9898\u76ee\uff1a\u67e5\u8be2\u5e73\u5747\u5de5\u8d44\u6700\u4f4e\u7684\u90e8\u95e8id\r\n#MySQL\u4e2d\u805a\u5408\u51fd\u6570\u662f\u4e0d\u80fd\u5d4c\u5957\u4f7f\u7528\u7684\u3002\r\n#\u65b9\u5f0f1\uff1a\r\nSELECT department_id\r\nFROM employees\r\nGROUP BY department_id\r\nHAVING AVG(salary) = (\r\n    SELECT MIN(avg_sal)\r\n    FROM(\r\n        SELECT AVG(salary) avg_sal\r\n        FROM employees\r\n        GROUP BY department_id\r\n        ) t_dept_avg_sal\r\n    );\r\n\r\n#\u65b9\u5f0f2\uff1a\r\n\r\nSELECT department_id\r\nFROM employees\r\nGROUP BY department_id\r\nHAVING AVG(salary) &lt;= ALL (\r\n    SELECT AVG(salary) avg_sal\r\n    FROM employees\r\n    GROUP BY department_id\r\n    );\r\n\r\n# 5.3 \u7a7a\u503c\u95ee\u9898\r\nSELECT last_name\r\nFROM employees\r\nWHERE employee_id NOT IN (\r\n    SELECT manager_id\r\n    FROM employees\r\n    WHERE manager_id IS NOT NULL\r\n    );\r\n\r\n# 6. \u76f8\u5173\u5b50\u67e5\u8be2\r\n# \u56de\u987e\uff1a\u67e5\u8be2\u5458\u5de5\u4e2d\u5de5\u8d44\u5927\u4e8e\u672c\u516c\u53f8\u5e73\u5747\u5de5\u8d44\u7684\u5458\u5de5\u7684last_name,salary\u548c\u5176department_id\r\n# 6.1\r\nSELECT last_name,salary,department_id\r\nFROM employees\r\nWHERE salary > (\r\n    SELECT AVG(salary)\r\n    FROM employees\r\n    );\r\n\r\n\r\n# \u9898\u76ee\uff1a\u67e5\u8be2\u5458\u5de5\u4e2d\u5de5\u8d44\u5927\u4e8e\u672c\u90e8\u95e8\u5e73\u5747\u5de5\u8d44\u7684\u5458\u5de5\u7684last_name,salary\u548c\u5176department_id\r\n# \u65b9\u5f0f1\uff1a\u4f7f\u7528\u76f8\u5173\u5b50\u67e5\u8be2\r\nSELECT last_name,salary,department_id\r\nFROM employees e1\r\nWHERE salary > (\r\n    SELECT AVG(salary)\r\n    FROM employees e2\r\n    WHERE department_id = e1.department_id\r\n    );\r\n\r\n# \u65b9\u5f0f2\uff1a\r\n\r\nSELECT e.last_name,e.salary,e.department_id\r\nFROM employees e ,(\r\n    SELECT department_id,AVG(salary) avg_sal\r\n    FROM employees\r\n    GROUP BY department_id\r\n    ) t_dept_avg_sal\r\nWHERE e.department_id = t_dept_avg_sal.department_id\r\nAND e.salary > t_dept_avg_sal.avg_sal;\r\n\r\n# \u9898\u76ee\uff1a\u67e5\u8be2\u5458\u5de5\u7684id,salary,\u6309\u7167department_name \u6392\u5e8f\r\n\r\nSELECT employee_id,salary\r\nFROM employees e\r\nORDER BY (\r\n    SELECT department_name\r\n    FROM departments d\r\n    WHERE e.department_id = d.department_id\r\n             ) ASC;\r\n\r\n# \u7ed3\u8bba\uff1a\u5728SELECT\u4e2d\uff0c\u9664\u4e86GROUP BY \u548c LIMIT\u4e4b\u5916\uff0c\u5176\u4ed6\u4f4d\u7f6e\u90fd\u53ef\u4ee5\u58f0\u660e\u5b50\u67e5\u8be2\uff01\r\n\/*\r\n  SELECT ....,....,....(\u5b58\u5728\u805a\u5408\u51fd\u6570)\r\n FROM ....(LEFT \/ RIGHT)JOIN....ON \u591a\u8868\u7684\u8fde\u63a5\u6761\u4ef6\r\n (LEFT \/ RIGHT)JOIN .... ON ....\r\n WHERE \u4e0d\u5305\u542b\u805a\u5408\u51fd\u6570\u7684\u8fc7\u6ee4\u6761\u4ef6\r\n GROUP BY ....,....\r\n HAVING \u5305\u542b\u805a\u5408\u51fd\u6570\u7684\u8fc7\u6ee4\u6761\u4ef6\r\n ORDER BY ....,....(ASC \/ DESC)\r\n LIMIT ....,....\r\n *\/\r\n\r\n# \u9898\u76ee\uff1a\u82e5employees\u8868\u4e2demployee_id\u4e0ejob_history\u8868\u4e2demployee_id\u76f8\u540c\u7684\u6570\u76ee\u4e0d\u5c0f\u4e8e2\uff0c\r\n# \u8f93\u51fa\u8fd9\u4e9b\u76f8\u540cid\u7684\u5458\u5de5\u7684employee_id,last_name\u548c\u5176job_id\r\n\r\nSELECT *\r\nFROM job_history;\r\n\r\nSELECT employee_id,last_name,job_id\r\nFROM employees e\r\nWHERE 2 &lt;= (\r\n    SELECT COUNT(*)\r\n    FROM job_history j\r\n    WHERE e.employee_id = j.employee_id;\r\n\r\n# 6.2 EXISTS \u4e0e NOT EXISTS \u5173\u952e\u5b57\r\n\r\n# \u9898\u76ee\uff1a\u67e5\u8be2\u516c\u53f8\u7ba1\u7406\u8005\u7684employee_id\uff0clast_name\uff0cjob_id\uff0cdepartment_id\u4fe1\u606f\r\n#\u65b9\u5f0f1\uff1a\u81ea\u8fde\u63a5\r\nSELECT DISTINCT mgr.employee_id,mgr.last_name,mgr.job_id,mgr.department_id\r\nFROM employees emp JOIN employees mgr\r\nON emp.manager_id = mgr.employee_id;\r\n\r\n#\u65b9\u5f0f2\uff1a\u5b50\u67e5\u8be2\r\nSELECT employee_id,last_name,job_id,department_id\r\nFROM employees\r\nWHERE employee_id IN (\r\n    SELECT DISTINCT manager_id\r\n    FROM employees\r\n    );\r\n\r\n#\u65b9\u5f0f3\uff1a\u4f7f\u7528EXISTS\r\nSELECT employee_id,last_name,job_id,department_id\r\nFROM employees e1\r\nWHERE EXISTS(\r\n    SELECT *\r\n    FROM employees e2\r\n    WHERE e1.employee_id = e2.manager_id\r\n          );\r\n\r\n# \u9898\u76ee\uff1a\u67e5\u8be2departments\u8868\u4e2d\uff0c\u4e0d\u5b58\u5728\u4e8eemployees\u8868\u4e2d\u7684\u90e8\u95e8\u7684department_id\u548cdepartment_name\r\n\r\n# \u65b9\u5f0f1\uff1a\r\nSELECT d.department_id,d.department_name\r\nFROM employees e RIGHT JOIN departments d\r\nON e.department_id = d.department_id\r\nWHERE e.department_id IS NULL;\r\n\r\n# \u65b9\u5f0f2\uff1a\r\nSELECT department_id,department_name\r\nFROM departments d\r\nWHERE NOT EXISTS(\r\n    SELECT *\r\n    FROM employees e\r\n    WHERE d.department_id = e.department_id\r\n          );\r\n\r\nSELECT COUNT(*)\r\nFROM departments;\r\n\r\n\r\n\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[47],"class_list":["post-1529","post","type-post","status-publish","format-standard","hentry","category-mysql-code","tag-mysql"],"_links":{"self":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/1529"}],"collection":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1529"}],"version-history":[{"count":1,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/1529\/revisions"}],"predecessor-version":[{"id":1530,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/1529\/revisions\/1530"}],"wp:attachment":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}