-----多数据插入-----
只要写一次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. TensorFlow 模型优化工具包  —  训练后整型量化

    模型优化工具包是一套先进的技术工具包,可协助新手和高级开发者优化待部署和执行的机器学习模型.自推出该工具包以来,  我们一直努力降低机器学习模型量化的复杂性 (https://www.tensorfl ...

  2. 学习Angular1

    教程: 参考教程: https://www.runoob.com/angularjs/angularjs-tutorial.html 一.angular的简介AngularJS 是一个 JavaScr ...

  3. spring 事务源码赏析(一)

    在本系列中,我们会分析:1.spring是如何开启事务的.2.spring是如何在不影响业务代码的情况下织入事务逻辑的.3.spirng事务是如何找到相应的的业务代码的.4.spring事务的传播行为 ...

  4. java 中的字符串处理--正则表达式

    最近在做一些支付报文处理工作,需要从各种各样的报文中提取需要的信息比如(金额,订单号...),每个渠道报文各式各样,想要写一个通用的提取逻辑,于是就回顾java正则表达式的用法.当然我们可以自己写一些 ...

  5. AI+BI的未来

    ​​ 术语与缩写解释 缩写.术语 解 释 BI 商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术.线上分析处理技术.数据挖掘和数据展现技 ...

  6. Python学习-第三节part1: 关于函数

    一 为何要用函数之不用函数的问题 #1.代码的组织结构不清晰,可读性差 #2.遇到重复的功能只能重复编写实现代码,代码冗余 #3.功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维护 ...

  7. C 电压

      时间限制 : 10000 MS   空间限制 : - KB  评测说明 : 1s,256m 问题描述 JOI社的某个实验室中有着复杂的电路.电路由n个节点和m根细长的电阻组成.节点被标号为1~N ...

  8. PTA数据结构与算法题目集(中文) 7-24

    PTA数据结构与算法题目集(中文)  7-24 7-24 树种统计 (25 分)   随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树 ...

  9. Redis对象——集合(Set)

    集合类型 (Set) 是一个无序并唯一的键值集合.它的存储顺序不会按照插入的先后顺序进行存储. 集合类型和列表类型的区别如下: 列表可以存储重复元素,集合只能存储非重复元素: 列表是按照元素的先后顺序 ...

  10. 适用于小白的 python 快速入门教程

    文章更新于:2020-02-17 按照惯例,需要的文件附上链接放在文首 文件名:python-3.7.6-amd64.exe 文件大小:25.6 M 下载链接:https://www.lanzous. ...