MySQL高级增删改查

新增数据

基本语法
insert into 表名 [(字段列表)] values (值列表);

主键冲突

更新和替换
主键冲突:更新操作
insert into 表名[(字段列表:包含主键)] values(值列表) on duplicate key update 字段 = 新值;
这里写图片描述

主键冲突:替换
repalce into 表名[(字段列表:包含主键)] values(值列表) ;
这里写图片描述

蠕虫复制

从已有的数据去获取数据,然后将数据又进行新增操作,数据成倍增长。

表创建的高级操作:从已有表创建新表。
Create table 表名 like 数据库表名;
这里写图片描述

蠕虫复制:先查出数据,然后将查出的数据新增一遍
insert into 表名[(字段列表)] select 字段列表/* from 数据表名;
这里写图片描述
蠕虫复制的意义:
1. 从已有表拷贝数据到新表中
2. 可以迅速的让表中的数据膨胀到一定的数量级,测试表的压力以及效率

更新数据

基本语法
update 表名 set 字段 = 值 [where 条件];
高级新增语法
update 表名 set 字段 = 值 [where 条件] [limit 更新数量];
这里写图片描述

删除数据

与更新类似。
delete from 表名 [where ] [limit ];
这里写图片描述

删除:如果表中存在自增长,那么删除之后,自增长不会还原。
思路:数据的删除是不会改变表结构,只能删除表后重建表。
truncate 表名; – 先删除改变,后新增改变

查询数据

基本语法
select 字段列表/* from 表名 [where ];
完整语法
select [选项] 字段列表[字段别名] / * from 数据源 [where ] [group by ] [having ] [order by ] [limit ];

select 选项

select对查出来的结果的处理方式
All 默认的,保留所有的结果
Distinct:去重
这里写图片描述

字段别名

当数据进行查询出来的时候,有时候名字并不一定满足需求,需要对字段重命名。

语法:字段名 as 别名
这里写图片描述

数据源

本质上只要保证数据类似二维表,最终都可以作为数据源
数据源分为多种:单表数据源,多表数据源,查询语句

单表数据源:select * from 表名;
多表数据源:select * from 表1,,表2… ;(笛卡尔积没什么用,尽量避免)
子查询:select * from ( select 语句) as 别名;
这里写图片描述

where 子句

where 子句返回结果: 0 或者1 0代表false 1代表true

where原理:where是唯一一个直接从磁盘获取数据的时候就开始判断条件:从磁盘取出一条记录,开始进行where判断:判断的结果如果成立保存到内存,如果失败直接放弃。

查询条件1:查出学生id为2或3 或5的学生
这里写图片描述

条件查询2:查出区间在170 ~ 180身高的学生
这里写图片描述
between 本身是闭区间,between左边的值必须<=右边的值。

group by子句

根据某个字段进行分组。
基本语法:group by 字段名
这里写图片描述
分组的意义:是为了统计数据。
sql提供了一系列统计函数
count():统计分组后的记录数
max():统计每组中最大值
min():
avg():
sum():
这里写图片描述

count 函数:里面可以使用两种参数:*代表统计记录,字段名代表统计对应的字段(null不统计)。
这里写图片描述
分组会自动排序:根据分组字段,默认升序。
group by 字段 [asc | desc] ; – 对分组结果合并之后的整个结果进行排序;

多字段分组:先根据一个字段进行分组,然后对分组后的结果再次按照其他字段进行分组。

group_concat 字段可以对分组的结果中的某个字段进行字符串连接(保留该组所有的某个字段)。

having子句

与where子句一样:进行条件判断的。
where是针对磁盘数据进行判断,进入到内存之后,会进行分组操作,分组结果需要having来处理。
having能做where能做的几乎所有的事情。但是where却不能做having能做的很多事情。

  1. 分组后的结果或者说统计函数都只有having能够使用
    这里写图片描述

2.having能够使用字段别名,where不能。
这里写图片描述

order by子句

根据某个字段进行排序,依赖校对集
基本语法
order by 字段名 [asc|desc];
这里写图片描述
排序可以进行多字段排序:先根据某个字段排序,排序好后在按照某个数据再次排序
这里写图片描述

limit 子句

限制结果的语句:限制数量

limit有两种使用方式:
方案1:只用来限制长度:limit 数据量;

方案2:限制起始位置,限制数量:limit 起始位置,长度;
这里写图片描述
主要用来实现数据的分页:节省时间,提高响应效率,减少资源浪费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值