Dragon
主机之家测评主机之家测评  2019-08-25 18:03 主机之家测评 隐藏边栏 |   抢沙发  8 
文章评分 0 次,平均分 0.0

 

选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ —like 的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1

如何在从多个表中组合字段然后插入到一个新表中,通过一条 sql 语句实现。具体情形是:有三张表 a、b、c,现在需要从表 b 和表 c 中分别查几个字段的值插入到表 a 中对应的字段。对于这种情况,我们可以使用如下的语句来实现:

INSERT INTO db1_name(field1,field2) SELECT field1,field2 FROM db2_name

当然,上面的语句比较适合两个表的互插,如果多个表就不适应了。对于多个表,我们可以先将需要查询的字段 join 起来,然后组成一个视图后再 select from 就可以了:

INSERT INTO a(field1,field2) SELECT * FROM(SELECT f1,f2 FROM b JOIN c) AS tb

其中 f1 是表 b 的字段,f2 是表 c 的字段,通过 join 查询就将分别来自表 b 和表 c 的字段进行了组合,然后再通过 select 嵌套查询插入到表 a 中,这样就满足了我们这个场景了,如果需要不止 2 个表,那么可以多个 join 的形式来组合字段。需要注意的是嵌套查询部分最后一定要有设置表别名,如下:

SELECT * FROM(SELECT f1,f2 FROM b JOIN c) AS tb

即最后的 as tb 是必须的(当然 tb 这个名称可以随意取),即指定一个别名,否则在 mysql 中会报如下错误:
ERROR 1248 (42000): Every derived TABLE must have its own alias
即每个派生出来的新表都必须指定别名才可以的。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

发表评论

扫一扫二维码分享