-----多数据插入-----
只要写一次insert指令,但是可以直接插入多条记录
insert into table values(),(),();

主键冲突
我们插入值的时候,主键中已经存在某个值,插入重复值引起主键冲突
两种解决方案
1. 主键冲突更新 duplicate key--主键冲突
类似插入数据语法,如果插入的过程中主键冲突,那么采用更新方法
#insert into 表名 [(字段列表)] values(值列表) on duplicate key update 字段 = 新值;
eg: insert into my_student values('stu0004','小婷') on duplicate key update stu_name = '小婷';
2. 主键冲突替换
当主键冲突之后,干掉原来的数据,重新插入进去
Replace into [(字段列表)] values(值列表);
判断->干掉->插入

蠕虫复制
一分为二,成倍增加,从已有的数据中获取数据,并且将获取到的数据插入到数据表中
#insert into 表名[(字段列表)] select */字段列表 from 表;
注意:
1. 蠕虫复制的确通常是重复数据,没有太大业务意义,可以在短期内快速增加表的数据量,从而可以测试表的
压力,还可以通过大量数据来测试表的效率(索引)
2. 蠕虫复制虽好,但时要注意主键冲突

---------高级查询---------
完整的查询指令:
#select select 选项 字段列表 from 数据源 where 条件 group by 分组 having 条件 order by 排序 limit 限制;

Select 选项:系统该如何对待查询得到的结果
ALL:默认的,表示保存所有的记录
Distinct:去重,去除重复的记录,只保留一条(所有字段都相同)

字段列表:有的时候需要从多张表获取数据,在获取数据的时候,可能存在不同表中有同名字段,需要将同名的字段命名成不同命的:
利用别名 alias
语法: 字段名 [as] 别名

数据源:from后面根的数据不是一个实体表,而是一个从表中查询出来得到的二维结果表(子查询)
基本语法:from(select 字段列表 from 表) as 别名
eg:select * from (select int_1,int_8 from my_int) as int_my;

where:条件筛选

group by:根据指定字段,对数据分组,分组目标为了统计
如果只想看数据显示,那么group by没什么含义:group by将数据按照指定的字段分组之后,只会保留每组的第一条记录
统计函数(聚合函数):
count():统计每组中的数量,如果统计目标是字段,那么不统计为空Null字段,如果为count(*)就代表统计记录
avg():平均数
sum():求和
max():最大值
min():最小值
Group_concat():为了将分组中指定的字段进行合并(字符串拼接)

group by多分组:将数据按照某个字段进行分组之后,对已经分组的数据进行再次分组
#基本语法:group by 字段1,字段2;//先按照字段1进行排序,之后将结果在按照字段2进行排序,以此类推
eg:select class_id,gender,count(*),group_concat(stu_name) from my_student group by class_id,gender;
分组排序:
在MySQL中,分组默认有排序的功能:按照分组字段进行排序,默认是升序
基本语法:group by 字段[asc|desc],
eg:select class_id,gender,count(*),group_concat(stu_name) from my_student group by class_id asc,gender desc;
回溯统计:当分组进行多分组之后,往上统计的过程中,需要进行层层上报,将这种层层上报统计的 过程称之为回溯统计:每一次分组向上统计
的过程都会产生一次新的数据,而且当前数据对应的分组字段为NULL
基本语法:group by 字段[asc|desc] with rollup;//向上滚动
大致就是将每次向上回滚的数据进行统计展示 字段是null

Having子句:本质和where一样,是用来进行数据条件筛选
1. Having是在group by子句之后:可以针对分组数据进行筛选,但是where不行(顺序)
2. having在group by 分组之后,可以使用聚合函数或者字段别名
eg:select class_id,count(*) as number from my_student group by class_id having number >=4;
eg:select class_id,count(*) as number from my_student group by class_id having count(*) >=4;
五子句都可以存在,但是必须要按照顺序,Where能做的Having都可以做,但是having是在group by之后进行操作的
强调:having是在group by之后,group by是在where之后:where的时候表示将数据从磁盘拿到内存,where之后的所有操作都是内存操作

Order by子句:
根据校对规则对数据进行排序
基本语法:order by字段 [asc|desc]
-- 班级学生按照身高排序
select * from my_student order by stu_height asc;
order by 也可以像group by一样进行多字段排序,先按照第一个字段进行排序,然后再按照第二个字段进行排序
order by 字段1 规则,字段2 规则;

limit子句:
limit限制子句:主要是用来限制记录数量获取
记录数限制:纯粹限制获取的数量,从第一条到指定的数量
基本语法:limit 数量;
分页:
利用limit来限制获取指定区间的数据
基本语法:limit offset,length;//offset偏移量:从哪开始,length就是具体获取多少条记录
MySQL中记录的数量从0开始
limit 0,2;//表示获取前两条记录
--分页获取数据
select * from my_student limit 0,2;
select * from my_student limit 2,2;//这个取到的是第三条和第四条记录
注意:limit后面的length表示最多获取对应数量,但是如果数量不够,系统不会强求(记录不够就有多少拿多少,不报错)

Mysql数据操作指令的更多相关文章

  1. mysql 数据操作 目录

    mysql 记录的增删改查 mysql 数据操作 单表查询 mysql 数据操作 多表查询

  2. mysql 数据操作 单表查询 目录

    mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...

  3. mysql 数据操作 多表查询 目录

    mysql 数据操作 多表查询 准备 多表连接查询介绍 mysql 数据操作 多表查询 多表连接查询 笛卡尔积 mysql 数据操作 多表查询 多表连接查询 内连接 mysql 数据操作 多表查询 多 ...

  4. mysql 数据操作 单表查询 where 约束 目录

    mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...

  5. mysql 数据操作 单表查询 group by 分组 目录

    mysql 数据操作 单表查询 group by 介绍 mysql 数据操作 单表查询 group by 聚合函数 mysql 数据操作 单表查询 group by 聚合函数 没有group by情况 ...

  6. mysql 数据操作 多表查询 子查询 介绍

    子查询就是: 把一条sql语句放在一个括号里,当做另外一条sql语句查询条件使用 拿到这个结果以后 当做下一个sql语句查询条件mysql 数据操作  子查询 #1:子查询是将一个查询语句嵌套在另一个 ...

  7. SQL学习笔记四之MySQL数据操作

    阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: DML =========== ...

  8. python 基础 9.3 mysql 数据操作

    #/usr/bin/python #coding=utf-8 #@Time   :2017/11/21 0:20 #@Auther :liuzhenchuan #@File   :mysql 数据操作 ...

  9. MySQL数据操作与查询笔记 • 【目录】

    持续更新中- 我的大学笔记>>> 章节 内容 第1章 MySQL数据操作与查询笔记 • [第1章 MySQL数据库基础] 第2章 MySQL数据操作与查询笔记 • [第2章 表结构管 ...

随机推荐

  1. 详谈XSS防御方法

      1.HttpOnly 严格的说,httponly并非为了对抗XSS,它解决的是XSS后的Cookie劫持攻击.Cookie设置了httponly之后,JavaScript读不到该cookie的值. ...

  2. Web 环境设置

    修改最大打开文件数量 ulimit -n 100000 修改创建文件的最大值 #/etc/security/limits.conf * soft nofile 262140 * hard nofile ...

  3. SpringBoot 使用 JSR303 自定义校验注解

    JSR303 是 Java EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是hibernate Validator,有了它,我们可以在实体类的字段上标注不同的注解实现对数 ...

  4. 记一次Windb死锁排查

    正在开会,突然线上站点线程数破千.然后一群人现场dump分析. 先看一眼线程运行状态 !eeversion 发现CPU占用并不高,19%,937条线程正在运行. 看看他们都在干什么. ~* e !cl ...

  5. STM32CubeMX的安装

    1.下载STM32CubeMX 在ST的官方网站上下载STM32CubeMXXX软件的安装包. 下载的安装包如下图所示.双击SetupSTM32CubeMX-5.0.1.exe. 安装STM32Cub ...

  6. Vmware安装CentOs7.4

    转载https://blog.csdn.net/qq_42545206/article/details/90301472

  7. 【前端】CSS总结

    ========================   CSS层叠样式表======================== 命名规则:使用字母.数字或下划线和减号构成,不要以数字开头 一.css的语法-- ...

  8. http之抽丝剥茧,深度剖析http的那些事儿

    最近,小编一心扎跟学技术,毫不顾及头发的掉落速度,都快成地中海了,不过也无大碍,谁让咱是一个爱钻技术的男人呢.最近两周老是看到http,那么这个http,有哪些猫腻呢,很多同学都有这种理解,就是对于h ...

  9. android之间的各项信息传输类型

    首先是activity想fragment怎样动态的传输数据: 一:activity与fragment之间进行数据传递是,在Activity中将要传递的数据封装在一Bundle中,使用setArgume ...

  10. (js描述的)数据结构[链表](4)

    (js描述的)数据结构 [链表](4) 一.基本结构 二.想比于数组,链表的一些优点 1.内存空间不是必须连续的,可以充分利用计算机的内存,事项灵活的内存动态管理. 2.链表不必再创建时就确定大小,并 ...