【mysql基础系列之五】高级数据操作:增、删、改、查

插入

1、多数据插入

insert into 【(字段列表)】表名 values(值列表),(值列表)。。。;

2、主键冲突插入

方式一:发现冲突,更新(更高效)

insert into 表名 【(字段列表)】 values(值列表) on duplicate update 字段=新值;

方式二:发现冲突,替换

replace into 表名【(字段列表)】 values(值列表);

3、蠕虫复制

从已有数据中获取数据,然后将获取到的数据再插入表中。

insert into 表名【(字段列表)】 select 字段列表 from 表名;

更新

注意:在更新数据时,如果没有where字句时,表示全表更新。但是可以使用limit来控制更新数量。

update 表名 set 字段名 = 新值 【where 字句】 limit 数量;

删除

注意:1、在删除数据时,如果没有where字句时,表示全表删除。但是可以使用limit来控制删除数量。

2、mysql中有一个能够重置表选项中的自增长的语法:

truncate 表名;

它的作用相当于是 先将表drop,然后再create。(用法限制参照:https://blog.csdn.net/mmquit/article/details/1929747)

查询

完整查询语句:

select 字段列表 from 数据源 where 条件 group by 分组 having 条件 order by 排序 limit 限制;
select all * from 表名;         等价于      select * from 表名;

1、distinct关键字:去重

select distinct * from 表名;

2、字段别名

select 字段名 【as】 别名1, 字段名【as】 别名2 from 表名;

3、where字句:从数据表获取数据时就进行条件筛选。数据获取原理就是针对表去对应的磁盘出获取所有记录,拿到一条记录就开始判断,符合条件就保存到内存中。where是通过运算符进行结果比较来判断最原始数据。where中不能使用聚合函数。故此有了having关键字的出现。下面第5点会讲到。

4、group by字句:将数据分组后,只会显示每组第一条数据。故其关键作用在于统计。

统计函数(也称聚合函数):count()、avg()、sum()、max()、min()。

注意:count()表示统计每组中的数量,如果统计目标是字段,那么不会统计为空和NULL的字段,如果为*那么代表统计记录数量。


4.1 group_concat():将分组中指定的字段进行合并(字符串拼接)


4.2 多分组:基本语法(group by 字段1,字段2;)。将数据先按照字段1进行分组,之后再将结果按照字段2进行分组,以此类推。

mysql中,默认按照分组字段进行升序(asc),也可以手动改为降序(desc),基本语法(group by 字段1 【asc/desc】,字段2 【asc/desc】)。

4.3 回溯统计:当分组之后,往上统计的过程中,需要进行层层上报,将这种层层上报统计的过程称为回溯统计。其中每一次分组向上统计的过程会产生一次新的统计数据,而且当前数据对应的分组字段值为null。基本语法(group by 字段名 【asc/desc】 with rollup)。



5、having关键字:用在group by之后,可以使用聚合函数或者字段别名(where是从表(磁盘)中取出数据放到内存,where之后的所有数据操作都是内存操作。别名是在数据进入到内存之后才有的

6、limit字句:主要是用来限制记录数量的获取

6.1 记录数限制

纯粹限制获取数量:从第一条开始到指定的数量。


6.2 分页

利用limit来限制获取指定区间的数据。

limit 0,2;   //表示获取位置0开始的连续两条数据




猜你喜欢

转载自blog.csdn.net/pjz161026/article/details/79796091
今日推荐