常见DML语句汇总
DML操作是指对数据中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select),是开发人员日常使用最频繁的操作,下面依次对它们进行介绍。 
        (1)  插入记录 
              INSERT INTO tablename(field1,field2,…,fieldn) VALUES(value1,vaule2,…,valuen) 
        (2)  更新记录 
              UPDATE tablename SET field1=value1,field2=value2,…,fieldn=valuen [WHERE CONDITION] 
        (3)  同时更新多个表数据 
               UPDATE t1,t2,…tn SET t1.field=value1,t2.fieldn=valuen [WHERE CONITION] 
        (4)  删除记录 
               DELETE FROM tablename [WHERE CONDITION] 
        (5)  删除多个表的数据 
               DELETE FROM t1,t2,…,tn FROM t1,t2,…,tn[WHERE CONDITION] 
        (6)  查询记录 
               SELECT * FROM tablename [WHERE CONDITION] 
        (7)  排序 
               SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC] , field2 [DESC|ASC] ,…, fieldn [DESC|ASC]] 
        (8)  聚合 
               SELECT [field1,field2,…,fieldn] fun_name FROM tablename 
[WHERE CONDITION] [GROUP BY field1,field2,…,fieldn] [WITH ROLLUP] 
[HAVING CONDITION] 
               -  fun_name表示要做的聚合操作、也就是聚合函数、常用的又sum(求和)、count(*)(记录数)、max(最大值)、min(最小值) 
               - WITH ROLLUP 是可选语法、表明是否对分类聚合后的结果进行再汇总 
               - HAVING关键字表示对分类后的结果在进行条件的过滤 
        
注意:having和where的区别在于,having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,若果逻辑允许,我们尽可能用where先过滤记录,这样因为结果集减少,将对聚合的效率大大提高,最后再根据逻辑看是否用having进行过滤。
 
        (9) 内连接(包含左右表中互相匹配的记录) 
              SELECT * FROM tb1 INNER JOIN tb2 WHERE CONDITION 
        (10)  左连接(包含所有的左表中的记录甚至是右边表中没有和它匹配的记录) 
              SELECT * FROM tb1 LEFT JOIN tb2 WHERE CONDITION 
        (11)  右连接(包含所有的左表中的记录甚至是右边表中没有和它匹配的记录) 
              SELECT * FROM tb1 LEFT JOIN tb2 WHERE CONDITION 
        (12)  子查询 
              SELECT * FROM tb1 WHERE filed1 IN (SELECT field1 FROM tb2) 
              注意:表连接在很多情况夏用于优化子查询 
        (13) 记录联合 
               SELECT * FROM tb1 UNION|UNION ALL SELECT * FROM tb2 
        注意:使用UNION和UNION 
ALL将多个表中的数据按照一定的查询条件查询出来和,将结果合并到一起显示出来。UNION和UNION ALL的主要区别是UNION 
ALL是把结果集直接合并在一起,而UNION是将UNION ALL后的结果进行一次DISTINCT,去除重复的记录。
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号