INSERT INTO tablename (field1,field2,...,fieldn) VALUES(value1,value2,...,valuen);
一次插入多天数据 语法如下:
1
INSERT INTO tablename (field1,field2,...,fieldn) values(record1_value1,record1_value2,...,record1_valuen),(record2_value1,record2_value2,...,record2_valuen),(record3_value1,record3_value2,...,record3_valuen);
更新记录
表里添加的数据通过update进行更新, 语法如下:
1
UPDATE tablename SET field1=value1,field2=value2,...,fieldn=valuen [WHERE CONDITION];
update命令可以同时更新多个表中的数据 语法如下:
1
UPDATE t1,t2,...,tn SET t1.field1=expr1,tn.fieldn=exprn [WHERE CONDITION];
删除记录
查询记录
查询不重复记录
distinct
条件查询
where = < >= <= !=
排序和限制
order by 、 desc 、 asc、 limit
聚合
sum() 、 count() 、 max() 、 min() 、 group by、 with rollup、 语法如下:
1
表连接
从大类上分为内连接和外连接 外连接又分为左连接和右连接
内外连接的区别:内连接仅选出两张表中相匹配的记录,而外连接会选出其他不匹配的记录.
左连接:包含所有的左边的表记录甚至是右边表中没有和它匹配的记录.
右连接:包含所有的右边表的记录甚至是左边表中没有和它匹配的记录. left jion on、 right jion on 语法如下:
1 2 3 4 5 6
外连接: select * from t1,t2 where t1.filed1=t2.filed2; 左连接: select * from t1 left join t2 on t1.filed1=t2.filed2; 右连接: select * from t1 right join t2 on t1.filed1=t2.filed2;
子查询
in 、 not in、 =、 != 、 exists、 not exists 语法如下:
1 2
select * from t1 where filed1 in (select filed2 from t2); 如果子查询记录数唯一,可以用=代替in.
子查询可以转换为表连接
记录联合
union 、union all 语法如下:
1 2 3 4 5 6
select * from t1 union/union all select * from t2 ... union/union all select * from tm;