{"id":581,"date":"2010-08-24T13:29:00","date_gmt":"2010-08-24T05:29:00","guid":{"rendered":"http:\/\/note.systw.net\/note\/?p=581"},"modified":"2023-11-04T13:49:51","modified_gmt":"2023-11-04T05:49:51","slug":"sql-dml","status":"publish","type":"post","link":"https:\/\/systw.net\/note\/archives\/581","title":{"rendered":"SQL DML"},"content":{"rendered":"\n<p>DML<\/p>\n\n\n\n<p><strong>\u65b0\u589e\u8cc7\u6599<\/strong><br>\u65b0\u589e1\u7b46\u8cc7\u6599<br><strong>INSERT INTO &lt; tablename&gt;(column-list) value (value-list)<\/strong><br>\u65b0\u589e\u591a\u7b46\u8cc7\u6599<br><strong>INSERT INTO &lt; tablename&gt;(column-list) value<br>(value-list 1),(value-list 2),&#8230;..(value-list n);<\/strong><\/p>\n\n\n\n<p>\u65b0\u589e\u5f9esql\u6488\u51fa\u4f86\u7684\u8cc7\u6599<br><strong>INSERT INTO &lt; tablename&gt;(column-list) sub-sql<\/strong><br>ex:<br>INSERT INTO company (company_id,contact,telnet, address)<br>SELECT id, contact,telnet,address FROM customer WHERE company=systw<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p><strong>\u66f4\u65b0\u8cc7\u6599<br>UPDATE &lt; tablename&gt; SET &lt; column1=value1&gt;[,&lt; column2=value2&gt;,&#8230;] [WHERE &lt; condition&gt;]<\/strong><br>ex:<br>UPDATE \u7522\u54c1\u8cc7\u6599 SET \u5eab\u5b58\u91cf = 300, \u5b89\u5168\u5b58\u91cf = 50 WHERE \u7522\u54c1\u7de8\u865f = 13<br>UPDATE employee SET salary = salary*1.1<br>UPDATE employee SET salary = salary+(select avg(salary) from employee)*0.1<\/p>\n\n\n\n<p><strong>value\u53ef\u4ee5\u70ba<\/strong><br>\u6307\u5b9a\u7684\u8cc7\u6599<br>default \u4fdd\u7559\u5b57,\u4f7f\u7528\u8a72\u5c6c\u6027\u7684\u9810\u8a2d\u503c<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p><strong>\u522a\u9664\u8cc7\u6599<br>DELETE FROM &lt; tablename&gt; WHERE &lt; condition&gt;<\/strong><\/p>\n\n\n\n<p><strong>\u6e05\u7a7a\u8cc7\u6599\u8868<\/strong><br>\u6709\u4ee5\u4e0b2\u7a2e\u65b9\u6cd5<br><strong>TRUNCATE TABLE &lt; tablename&gt;<\/strong><br>\u3000\u4e26\u4e0d\u6703\u5c07\u6240\u522a\u9664\u7684\u57f7\u884c\u904e\u7a0b\u8a18\u9304\u65bclog file(\u4ea4\u6613\u65e5\u8a8c\u6a94)\u4e2d<br><strong>DELETE FROM &lt; tablename&gt;<\/strong><br>\u3000\u6703\u5c07\u6240\u6709\u88ab\u522a\u9664\u7684\u8cc7\u6599\u5168\u90e8\u8a18\u9304\u65bclog file\u4e2d,\u4e5f\u6703\u986f\u793a\u522a\u9664\u7684\u6578\u91cf<br>ps:<br>\u5728\u522a\u9664\u5927\u91cf\u8cc7\u6599\u6642\uff0cTRUNCATE\u8f03\u6709\u6548\u7387<\/p>\n\n\n\n<p>ps:<br>sql server\u8a2d\u5b9alog<br>1\u8cc7\u6599\u5eab&gt;\u6307\u5b9a\u7684\u8cc7\u6599\u5eab&gt;\u5167\u5bb9<br>2\u9078\u9805&gt;\u5fa9\u539f,\u6a21\u578b:[\u7c21\u6613|\u5b8c\u6574|\u5927\u91cf\u767b\u5165]<br>ps:log\u8981\u4f7f\u7528\u53e6\u4e00\u5957\u5de5\u5177\u624d\u6709\u8fa6\u6cd5\u5206\u6790<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p><strong>\u67e5\u8a62\u8cc7\u6599<br>SELECT &lt; express&gt; FROM &lt; tablename&gt;<br>[WHERE &lt; condition&gt;]<br>[GROUP BY &lt; column-list&gt;]<br>[HAVING &lt; condition&gt;]<br>[ORDER BY &lt; column1&gt; [ASC|DESC] [,&lt; column2&gt; [ASC|DESC],&#8230;]]<\/strong><\/p>\n\n\n\n<p><strong>\u5e38\u7528\u7684express\u6709<\/strong><br><strong>&lt; column-list | *&gt;<\/strong>&nbsp;\u6307\u5b9a\u8981\u986f\u793a\u7684\u6b04\u4f4d\u6216\u986f\u793a\u6240\u6709\u6b04\u4f4d<br><strong>DISTINCT &lt; column&gt;<\/strong>&nbsp;\u6307\u5b9a\u8a72\u6b04\u4f4d\u7684\u91cd\u8907\u503c\u53ea\u8f38\u51fa\u4e00\u7b46\u5373\u53ef<br><strong>&lt; column&gt; AS &lt; newname&gt;<\/strong>&nbsp;\u8a2d\u5b9a\u6b04\u4f4d\u5225\u540d,\u53ef\u6539\u8b8a\u8f38\u51fa\u6642\u6b04\u4f4d\u7684\u540d\u7a31<br><strong>&lt; operation&gt; AS &lt; newname&gt;<\/strong>&nbsp;\u5c07\u6b04\u4f4d\u505a\u904b\u7b97\u4e26\u7d66\u4e88\u5225\u540d<br><strong>&lt; sub-sql&gt;<\/strong>&nbsp;\u6b04\u4f4d\u7684\u503c\u4f7f\u7528sub-sql\u5217\u51fa<br>ex:SELECT \u5be6\u969b\u55ae\u50f9*\u6578\u91cf AS \u5c0f\u8a08 FROM \u8a02\u55ae\u660e\u7d30<br>ex:SELECT fname+&#8217; \u2018+lname AS name FROM employee<\/p>\n\n\n\n<p><strong>WHERE condition\u5e38\u898b\u7528\u6cd5<\/strong><br><strong>%<\/strong>&nbsp;\u8868\u793a\u4efb\u610f\u9577\u5ea6<br>ex:\u627e\u51faid\u70ba3\u958b\u982d\u7684\u503c id like &#8216;3%&#8217;<br><strong>_ or ?<\/strong>&nbsp;\u8868\u793a1\u500b\u5b57\u5143<br>ex:\u627e\u51faid\u768410\u4f4d\u6578\u70ba2,\u4e14\u53ea\u67093\u500b\u4f4d\u6578\u7684\u503c id like &#8216;_2_&#8217;<br><strong>[NOT] IN (&lt; value1,value2[,value3,&#8230;] | sub-sql&gt;)<\/strong>&nbsp;\u8868\u793a\u591a\u500bor<br>ex:<br>sid=1 or sid=6 or sid=10\u7b49\u540c\u65bcsid IN (1, 6, 10)<br>sid IN (select sid from employee)<br><strong>[NOT] BETWEEN &lt; min&gt; AND &lt; max&gt;<\/strong>&nbsp;\u8868\u793a\u5728min\u548cmax\u7bc4\u570d\u4e4b\u9593<br>ex:sid BETWEEN 5 AND 10 \u7b49\u540c\u65bc sid &gt;5 and sid &lt; 10<br><strong>[NOT] EXIST (&lt; sub-sql&gt;)<\/strong>&nbsp;\u6e2c\u8a66\u662f\u5426\u5b58\u5728,\u6216\u6e2c\u8a66\u662f\u5426\u4e0d\u5b58\u5728<br>ex:<br>SELECT \u54e1\u5de5\u7de8\u865f, \u59d3\u540d FROM \u54e1\u5de5 WHERE EXISTS<br>( SELECT * FROM \u8a02\u55ae WHERE \u54e1\u5de5\u7de8\u865f = \u54e1\u5de5.\u54e1\u5de5\u7de8\u865f)<\/p>\n\n\n\n<p><br>ps:<br>SELECT id, company FROM customer<br>WHERE company IN ( SELECT supply FROM supply)<br>ORDER BY id<br>\u7b49\u540c\u65bc<br>SELECT id, company FROM customer, supply<br>WHERE company = supply<br>ORDER BY id<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p><strong>\u805a\u5408\u51fd\u6578<\/strong><\/p>\n\n\n\n<p><strong>\u805a\u5408\u51fd\u6578\u57fa\u672c\u7528\u6cd5<\/strong><br>\u683c\u5f0f\u70ba<br><strong>SELECT &lt; aggregate function&gt; FROM &lt; tablename&gt;<\/strong><br>ex:<br>\u5217\u51fa\u6240\u6709employee\u7684\u7e3d\u7b46\u6578<br>SELECT COUNT(id) AS allemployee FROM employee<\/p>\n\n\n\n<p><strong>\u4f9dgroup\u5206\u7d44\u805a\u5408\u51fd\u6578\u7d50\u679c<\/strong><br>\u683c\u5f0f\u70ba<br><strong>SELECT &lt; aggregate function&gt; FROM &lt; tablename&gt;<br>GROUP BY &lt; column1 [,column2,&#8230;]&gt;<\/strong><br>\u6210\u529f\u5206\u7d44\u9700\u7b26\u5408\u4ee5\u4e0b\u5176\u4e2d\u4e00\u500b\u689d\u4ef6<br>\u689d\u4ef61,\u88ab\u805a\u5408\u51fd\u6578\u6240\u5305\u542b<br>\u689d\u4ef62,\u5206\u7fa4\u7684\u689d\u4ef6<br>ex:<br>\u5217\u51fa\u7537\u5973employee\u5404\u5225\u7684\u7e3d\u7b46\u6578<br>SELECT sex,COUNT(id) FROM employee GROUP BY sex<br>\u5217\u51fa\u6bcf\u500b\u90e8\u9580\u7684\u7537\u5973\u54e1\u5de5\u5404\u5225\u7684\u6578\u91cf<br>SELECT dno,sex,COUNT(id) FROM employee GROUP BY dno,sex<\/p>\n\n\n\n<p><strong>ex1:<br>\u5217\u51fa\u6bcf\u500b\u54e1\u5de5\u7e3d\u5de5\u6642<\/strong><br>\u8cc7\u6599\u8868\u5982\u4e0b<br>employee(fname,minit,lname,ssn,bdate,address,sex,salary,super_ssn,dno)<br>works_on(essn,pro,hours)<br>\u8a9e\u6cd5\u5982\u4e0b<br>\u7b26\u5408\u689d\u4ef62,group by\u7684\u6b04\u4f4d\u548cselect\u6b04\u4f4d\u76f8\u540c<br>SELECT ssn,fname,lname,sum(hours) FROM employee,works_on<br>WHERE essn=ssn GROUP BY ssn,fname,lname<br>\u7b26\u5408\u689d\u4ef61,fname\u4f7f\u7528\u805a\u5408\u51fd\u6578max,lname\u4f7f\u7528\u805a\u5408\u51fd\u6578min<br>SELECT ssn,max(fname),min(lname),sum(hours) FROM employee,works_on<br>WHERE essn=ssn GROUP BY ssn<br><strong>ex2<br>\u5217\u51fa\u6bcf\u500b\u54e1\u5de5\u7e3d\u5de5\u6642\u7684\u767e\u5206\u6bd4<\/strong><br>\u8cc7\u6599\u8868\u5982\u4e0b<br>employee(fname,minit,lname,ssn,bdate,address,sex,salary,super_ssn,dno)<br>works_on(essn,pro,hours)<br>\u8a9e\u6cd5\u5982\u4e0b<br>SELECT ssn,fname,lname,sum(hours)\/(select sum(hours) from works_on)*100<br>FROM employee,works_on<br>WHERE essn=ssn GROUP BY ssn,fname,lname<\/p>\n\n\n\n<p><strong>\u904e\u6ffegroup\u7684\u7d50\u679c<\/strong><br>\u683c\u5f0f\u70ba<br><strong>SELECT &lt; aggregate function&gt; FROM &lt; tablename&gt;<br>GROUP BY &lt; column1 [,column2,&#8230;]&gt;<br>HAVING &lt; aggregate column condition&gt;<\/strong><\/p>\n\n\n\n<p><strong>ex1:<br>\u5217\u51fa\u6bcf\u500b\u54e1\u5de5\u7e3d\u5de5\u6642\u5927\u65bc100\u7684\u54e1\u5de5<\/strong><br>\u8cc7\u6599\u8868\u5982\u4e0b<br>employee(fname,minit,lname,ssn,bdate,address,sex,salary,super_ssn,dno)<br>works_on(essn,pro,hours)<br>\u8a9e\u6cd5\u5982\u4e0b<br>SELECT ssn,fname,lname,sum(hours) FROM employee,works_on<br>WHERE essn=ssn GROUP BY ssn,fname,lname<br>HAVING sum(hours)&gt;100<\/p>\n\n\n\n<p><strong>ROLLUP<\/strong><br>\u53ef\u7528\u4f86\u5404\u5225\u7e3d\u8a08<br>\u683c\u5f0f\u70ba<br><strong>GROUP BY &lt; column1 [,column2,&#8230;]&gt; with rollup<\/strong><br>ps:<br>mysql\u4e0d\u652f\u63f4order by,\u82e5\u8981\u6392\u5e8f\u5247\u8981\u76f4\u63a5\u5728\u6b04\u4f4d\u5f8c\u63a5asc\u6216desc<strong>&nbsp;<\/strong><\/p>\n\n\n\n<p>ex:<br>\u5047\u8a2dSQL\u8a9e\u6cd5\u7d50\u679c\u5982\u4e0b<br>SELECT year, SUM(profit) FROM sales GROUP BY year<br>2000 , 4525<br>2001 , 3010&nbsp;<br>\u4f7f\u7528ROLLUP\u53ef\u505a\u7e3d\u8a08<br>SELECT year, SUM(profit) FROM sales GROUP BY year WITH ROLLUP;<br>2000 , 4525 &nbsp;<br>2001 , 3010 &nbsp;<br><strong>NULL , 7535<\/strong>&nbsp;&nbsp;<br>ex:<br>\u7531\u5927\u5230\u5c0f\u6392\u5e8f<br>SELECT year, SUM(profit) FROM sales GROUP BY year desc WITH ROLLUP;<br>2001 , 3010<br>2000 , 4525&nbsp;<br>NULL , 7535<\/p>\n\n\n\n<p><strong>CUBE<br><\/strong>\u53ef\u7528\u4f86\u5c0d\u6307\u5b9a\u6b04\u4f4d\u505a\u6240\u6709\u7d44\u5408\u7684\u7e3d\u8a08<br>\u683c\u5f0f\u70ba<br><strong>GROUP BY &lt; column1 [,column2,&#8230;]&gt; with cube<\/strong><\/p>\n\n\n\n<p>ex:<br>\u5047\u8a2dsql\u8a9e\u6cd5\u5982\u4e0b<br>SELECT ip,desturl,count FROM ip2url GROUP BY ip,desturl<br>\u57f7\u884c\u7d50\u679c\u70ba<br>ip,desturl,count<br>10.1.1.1,tw.yahoo.com,12<br>10.1.1.1,www.pchome.com,5<br>10.1.1.2,tw.yahoo.com,18<br>10.1.1.3,www.google.com,4<br>1<br>\u82e5\u4ee5rollup\u70ba\u4f8b<br>SELECT ip,desturl,count FROM ip2url GROUP BY ip,desturl WITH rollup;<br>\u57f7\u884c\u7d50\u679c\u70ba<br>ip,desturl,count<br>10.1.1.1,tw.yahoo.com,12<br>10.1.1.1,www.pchome.com,5<br><strong>10.1.1.1,null,17<\/strong><br>10.1.1.2,tw.yahoo.com,18<br><strong>10.1.1.2,null,18<\/strong><br>10.1.1.3,www.google.com,4<br><strong>10.1.1.3,null,4<\/strong><br><strong>null,null,39<\/strong><br>2<br>\u82e5\u4ee5cube\u70ba\u4f8b<br>SELECT ip,desturl,count FROM ip2url GROUP BY ip,desturl WITH cube;<br>\u57f7\u884c\u7d50\u679c\u70ba<br>ip,desturl,count<br>10.1.1.1,tw.yahoo.com,12<br>10.1.1.1,www.pchome.com,5<br><strong>10.1.1.1,null,17<\/strong><br>10.1.1.2,tw.yahoo.com,18<br><strong>10.1.1.2,null,18<\/strong><br>10.1.1.3,www.google.com,4<br><strong>10.1.1.3,null,4<\/strong><br><strong>null,null,39<\/strong><br><strong>null,tw.yahoo.com,30<br>null,www.pchome.com,5<br>null,www.google.com,4<\/strong><\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p><br><strong>\u5408\u4f75\u8cc7\u6599\u8868<\/strong><\/p>\n\n\n\n<p><strong>\u4f7f\u7528WHERE\u8a9e\u6cd5\u5408\u4f75<\/strong><br>\u5c6c\u65bcsql89\u683c\u5f0f<br>\u7b49\u540c\u65bcinner join ,\u4e5f\u5c31\u662f (A)|X|a=b(B)<br>2\u500b\u8cc7\u6599\u8868\u7684\u5408\u4f75\u67e5\u8a62\u683c\u5f0f\u5982\u4e0b<br><strong>SELECT * FROM &lt; table1,table2&gt;<br>WHERE &lt; table1.column = table2.column&gt;<\/strong><br>3\u500b\u8cc7\u6599\u8868\u7684\u5408\u4f75\u67e5\u8a62<br><strong>SELECT * FROM &lt; table1,table2,table3&gt;<br>WHERE &lt; table1.column = table2.column &amp;&amp;<br>table2.column = table3.column&gt;<\/strong><br>4\u500b\u8cc7\u6599\u8868\u7684\u5408\u4f75\u67e5\u8a62<br><strong>SELECT * FROM &lt; table1,table2,table3,table4&gt;<br>WHERE &lt; table1.column = table2.column &amp;&amp;<br>table2.column = table3.column &amp;&amp;<br>table3.column = table4.column&gt;<\/strong><\/p>\n\n\n\n<p><strong>ex1:<br>\u5217\u51fa\u90e8\u9580\u4e3b\u7ba1\u540d\u7a31(fname,lname)<\/strong><br>\u8cc7\u6599\u8868\u5982\u4e0b<br>employee(fname,minit,lname,ssn,bdate,address,sex,salary,super_ssn,dno)<br>department(dname,dnumber,mgr_ssn,mgr_start_date)<br>\u8a9e\u6cd5\u5982\u4e0b<br><strong>\u4f7f\u7528where\u65b9\u6cd5<\/strong>,step1 n*m=x \u5148\u5408\u4f75, step2\u5728\u904e\u6ffe\u5408\u4f75\u7d50\u679cx<br>SELECT fname,lname FROM employee,department WHERE ssn=mgr_ssn<br><strong>\u4f7f\u7528in\u65b9\u6cd5<\/strong>,step1 \u5148\u904e\u6ffem=y ,step2\u5728\u5f9en\u6311\u51fa\u7b26\u5408y\u7684(\u6548\u80fd\u8f03\u5dee)<br>SELECT fname,lname FROM employee WHERE ssn IN (SELECT mgr_ssn FROM department)<br><strong>\u4f7f\u7528sub-sql\u65b9\u6cd5(\u6548\u80fd\u8f03\u597d)<\/strong><br>SELECT fname,lname FROM employee,(SELECT mgr_ssn FROM department) AS mgr WHERE ssn=mgr_ssn<br><strong>ex2:<br>\u5217\u51faproductx\u6240\u53c3\u8207\u7684\u54e1\u5de5\u59d3\u540d\u8207\u5de5\u6642(fname,lname,hours)<\/strong><br>\u8cc7\u6599\u8868\u5982\u4e0b<br>employee(fname,minit,lname,ssn,bdate,address,sex,salary,super_ssn,dno)<br>project(pname,pnumber,plocation,dnum)<br>works_on(essn,pro,hours)<br>\u8a9e\u6cd5\u5982\u4e0b<br><strong>\u4f7f\u7528where\u65b9\u6cd5<\/strong><br>SELECT fname,lname,hours FROM employee,project,works_on<br>WHERE pnumber=pno &amp;&amp; ssn=essn &amp;&amp; pname=&#8217;productx&#8217;<br><strong>\u4f7f\u7528in\u65b9\u6cd5<\/strong><br>SELECT fname,lname,hours FROM employee,works_on<br>WHERE essn=ssn &amp;&amp; pno IN (SELECT pnumber FROM project WHERE pname=&#8217;productx&#8217;)<br><strong>\u4f7f\u7528sub-sql\u65b9\u6cd5<\/strong><br>SELECT fname,lname,hours<br>FROM employee,works_on,(SELECT pnumber FROM project WHERE pname=&#8217;productx&#8217;) AS p<br>WHERE essn=ssn &amp;&amp; pno =pnumber<\/p>\n\n\n\n<p><strong><br>\u4f7f\u7528JOIN\u8a9e\u6cd5\u5408\u4f75<\/strong><br>\u5c6c\u65bcsql92\u683c\u5f0f<br>\u683c\u5f0f\u70ba<br><strong>SELECT * FROM ( &lt; table1&gt; &lt; join type&gt; &lt; table2&gt; ON &lt; table1.column = table2.column&gt; )<\/strong><br>join type\u53ef\u9078inner join,left outer join,right outer join<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u70ba\u591a\u8cc7\u6599\u8868\u5408\u4f75,\u4ee5inner join\u70ba\u4f8b<br>2\u500b\u8cc7\u6599\u8868\u7684\u5408\u4f75\u67e5\u8a62<br><strong>SELECT * FROM ( &lt; table1&gt; INNER JOIN &lt; table2&gt; ON &lt; table1.column = table2.column&gt; )<\/strong><br>3\u500b\u8cc7\u6599\u8868\u7684\u5408\u4f75\u67e5\u8a62<br><strong>SELECT * FROM ( (&lt; table1&gt; INNER JOIN &lt; table2&gt; ON &lt; table1.column = table2.column&gt;)<br>INNER JOIN &lt; table3&gt; ON &lt; table2.column = table3.column&gt; )<\/strong><br>4\u500b\u8cc7\u6599\u8868\u7684\u5408\u4f75\u67e5\u8a62<br><strong>SELECT * FROM ( &lt; table1&gt; INNER JOIN &lt; table2&gt; ON &lt; table1.column = table2.column&gt;<br>INNER JOIN &lt; table3&gt; ON &lt; table2.column = table3.column&gt;<br>INNER JOIN &lt; table4&gt; ON &lt; table3.column = table4.column&gt; )<\/strong><\/p>\n\n\n\n<p><strong>ex1:<br>\u5217\u51fa\u6bcf\u500b\u90e8\u9580\u7684\u7d93\u7406\u59d3\u540d (DEPARTMENT.dname,EMPLOYEE.fname,EMPLOYEE.lname)<\/strong><br>\u8cc7\u6599\u8868\u5982\u4e0b<br>employee(fname,minit,lname,ssn,bdate,address,sex,salary,super_ssn,dno)<br>department(dname,dnumber,mgr_ssn,mgr_start_date)<br>\u8a9e\u6cd5\u5982\u4e0b<br>SELECT dname,fname,lname FROM department INNER JOIN employee ON mgr_ssn=ssn<br><strong>ex2:<br>\u5217\u51fa\u6bcf\u500b\u54e1\u5de5\u53c3\u8207\u5c08\u6848\u7684\u5de5\u6642\u8868(fname,lname,pname,hours)<\/strong><br>\u8cc7\u6599\u8868\u5982\u4e0b<br>employee(fname,minit,lname,ssn,bdate,address,sex,salary,super_ssn,dno)<br>project(pname,pnumber,plocation,dnum)<br>works_on(essn,pro,hours)<br>\u8a9e\u6cd5\u5982\u4e0b<br><strong>\u4f7f\u7528innerjoin\u65b9\u6cd5<\/strong><br>SELECT fname,dname,pname,hours FROM (employee INNER JOIN works_on ON ssn=essn) INNER JOIN project ON pnumber=pno<br><strong>\u4f7f\u7528where\u65b9\u6cd5<\/strong><br>SELECT fname,dname,pname,hours FROM employee,works_on,project<br>WHERE employee.ssn=works_on.essn &amp;&amp; works_on.pno=project.pnumber<br><strong>ex3:<br>\u5217\u51fa\u6240\u6709\u54e1\u5de5\u8207\u54e1\u5de5\u89aa\u5c6c\u59d3\u540d(fname,lname,dependent_name)<\/strong><br>\u8cc7\u6599\u8868\u5982\u4e0b<br>employee(fname,minit,lname,ssn,bdate,address,sex,salary,super_ssn,dno)<br>dependent(essn,depandent_name,sex,bdate,relationship)<br>\u8a9e\u6cd5\u5982\u4e0b<br><strong>\u4f7f\u7528left outer join\u65b9\u6cd5<\/strong><br>SELECT fname,lname,dependent_name FROM employee LEFT OUTER JOIN dependent ON ssn=essn<br><strong>\u4f7f\u7528right outer join\u65b9\u6cd5<\/strong><br>SELECT fname,lname,dependent_name FROM dependent RIGHT OUTER JOIN employee ON ssn=essn<br><strong>\u4ee5ssn\u70ba\u4e3b,\u4f7f\u7528where\u65b9\u6cd5<\/strong><br>SELECT fname,lname,dependent_name FROM dependent,employee WHERE essn=*ssn<br>\u7b49\u540c\u65bc<br>SELECT fname,lname,dependent_name FROM dependent,employee WHERE ssn*=essn<\/p>\n\n\n\n<p><br><strong>\u81ea\u6211\u5408\u4f75<\/strong><br>where\u683c\u5f0f\u5927\u81f4\u70ba<br><strong>SELECT * FROM table1,table1 AS table2 WHERE &lt; table1.column = table2.column&gt;<\/strong><br>join\u683c\u5f0f\u5927\u81f4\u70ba<br><strong>SELECT * FROM table1 &lt; join type&gt; table1 AS table2 ON &lt; table1.column = table2.column&gt;<\/strong><\/p>\n\n\n\n<p><strong>ex1:<br>\u5217\u51fa\u54e1\u5de5\u540d\u7a31\u53ca\u54e1\u5de5\u7684\u4e3b\u7ba1\u540d\u7a31<\/strong><br>\u8cc7\u6599\u8868\u5982\u4e0b<br>employee(fname,minit,lname,ssn,bdate,address,sex,salary,super_ssn,dno)<br>\u8a9e\u6cd5\u5982\u4e0b<br>\u4e0d\u6703\u986f\u793a\u8001\u95c6(\u56e0\u70ba\u8001\u95c6\u6c92\u6709\u4e3b\u7ba1)<br>SELECT emp.fname,emp.lname,&#8217;-&gt;&#8217;,super.fname,super.lname<br>FROM employee AS emp, employee AS super<br>WHERE emp.super_ssn=super.ssn<br>ps:\u986f\u793a\u8001\u95c6<br>SELECT emp.fname,emp.lname,&#8217;-&gt;&#8217;,super.fname,super.lname<br>FROM employee AS emp, employee AS super<br>WHERE emp.super_ssn*=super.ssn<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..&nbsp;<\/p>\n\n\n\n<p><strong>union<\/strong><br>\u5c07\u5169\u500bsql\u7684\u7d50\u679c\u5408\u4f75,\u4e0d\u6703\u91cd\u8907\u5217\u51fa<\/p>\n\n\n\n<p><strong>union all<\/strong><br>\u5c07\u5169\u500bsql\u7684\u7d50\u679c\u5408\u4f75,\u82e5\u767c\u751f\u91cd\u8907\u6642\u5247\u6703\u5168\u90e8\u5217\u51fa<\/p>\n\n\n\n<p>ex:<br>\u5047\u8a2d\u6709\u4ee5\u4e0b\u5169table<br>srcip\u7684ip\u67091.1.1.2 ,1.1.1.3<br>dstip\u7684ip\u67091.1.1.1 ,1.1.1.2<br>ex:<br>\u57f7\u884csql\u8a9e\u6cd5<br>select ip from srcip<br>union<br>select ip from dstip<br>\u5247\u7d50\u679c\u5982\u4e0b<br>1.1.1.1<br>1.1.1.2<br>1.1.1.3<br>ex:<br>\u57f7\u884csql\u8a9e\u6cd5<br>select ip from srcip<br>union all<br>select ip from dstip<br>\u5247\u7d50\u679c\u5982\u4e0b<br>1.1.1.1<br>1.1.1.2<br>1.1.1.2<br>1.1.1.3<\/p>\n\n\n\n<p><br><strong>INTERSECT<\/strong><br>\u5c07\u5169\u500bsql\u7684\u7d50\u679c\u76f8\u540c\u7684\u5408\u4f75<\/p>\n\n\n\n<p>ex:<br>\u57f7\u884csql\u8a9e\u6cd5<br>select ip from srcip<br>intersect<br>select ip from dstip<br>\u5247\u7d50\u679c\u5982\u4e0b<br>1.1.1.2<\/p>\n\n\n\n<p><br><strong>MINUS<\/strong><br>\u5c07\u7b2c1\u500bsql\u7684\u7d50\u679c\u6263\u6389\u7b2c\u4e8c\u500bsql\u540c\u6a23\u7684\u7d50\u679c<\/p>\n\n\n\n<p>ex:<br>\u57f7\u884csql\u8a9e\u6cd5<br>select ip from srcip<br>minus<br>select ip from dstip<br>\u5247\u7d50\u679c\u5982\u4e0b<br>1.1.1.3<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DML \u65b0\u589e\u8cc7\u6599\u65b0\u589e1\u7b46\u8cc7\u6599INSERT INTO &lt; &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[16],"tags":[],"class_list":["post-581","post","type-post","status-publish","format-standard","hentry","category-database"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/comments?post=581"}],"version-history":[{"count":0,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/581\/revisions"}],"wp:attachment":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/media?parent=581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/categories?post=581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/tags?post=581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}