Quantcast
Channel: CodeSection,代码区,数据库(综合) - CodeSec
Viewing all articles
Browse latest Browse all 6262

常见DML语句汇总 DML语句

$
0
0

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,去除重复的记录。


Viewing all articles
Browse latest Browse all 6262

Trending Articles