mysql 表操作

复制表结构

create table table2 like table1;
将另一个结构相同的表的数据插入到表中
INSERT INTO table2 select *FROM table1


联合查询


SELECT name  FROM TABLE1
UNION 
SELECT name_t FROM TABLE2



内连接,查询两个表中

SELECT t.name,t.name_t  FROM TABLE2 as t
 INNER JOIN
 TABLE1 as t2 on t.name=t2.name

左连接
 
 SELECT  t.name,t.name_t, t2.`name` as t2name FROM TABLE2 as t
 left JOIN
 TABLE1 as t2 on t.name=t2.name

语法:FIND_IN_SET(str,strlist)

定义:

1. 假如字符串str在由N子链组成的字符串列表strlist中,则返回值的范围在1到N之间。

2. 一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。

3. 如果第一个参数是一个常数字符串,而第二个是typeSET列,则FIND_IN_SET()函数被优化,使用比特计算。

4. 如果str不在strlist或strlist为空字符串,则返回值为0。

5. 如任意一个参数为NULL,则返回值为NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

strlist:一个由英文逗号“,”链接的字符串,例如:"a,b,c,d",该字符串形式上类似于SET类型的值被逗号给链接起来。

示例:SELECT FIND_IN_SET('b','a,b,c,d'); //返回值为2,即第2个值
示例:SELECT FIND_IN_SET('e','a,b,c,d'); //没有则返回 0 
这个可以用于where 的条件判断
SELECT name  FROM TABLE1 where 0
SELECT name  FROM TABLE1 where 1

with rollup
WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
注意:相同
除了统计了相应的字段也把全部的统计了一边,不过全部的字段现在为null
SELECT name , COUNT(*) as g  FROM TABLE2  GROUP BY name with ROLLUP
优化修改全部的统计字段为总数
SELECT coalesce(name,"总数") , COUNT(*) as g  FROM TABLE2  GROUP BY name with ROLLUP

coalesce
我们可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法:

select coalesce(a,b,c);
参数说明:如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。

以下实例中如果名字为空我们使用总数代替:
SELECT coalesce(name,"总数") , COUNT(*) as g  FROM TABLE2  GROUP BY name with ROLLUP

deletedroptruncate 都有删除表的作用,区别在于:

 1deletetruncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。
 2delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncatedrop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncatedrop 是直接扇耳光说滚,不能反悔。
 3、执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。

BETWEEN    在两值之间    >=min&&<=max
SELECT  3 BETWEEN 1 AND 4 
SELECT  5 BETWEEN 1 AND 4 

插入数据用于测试
INSERT into table_time(time1,time2,time3,name)VALUES(now(),now(),now(),"122455555553")

INSERT into table_time(time1,time2,time3,name)VALUES(now(),now(),now(),"1745ad768")

 

 

posted @ 2019-07-17 22:10  Angry-rookie  阅读(134)  评论(0)    收藏  举报