MySQL(五)—— 数据高级操作

目录

新增数据

主键冲突

蠕虫复制

更新数据

删除数据

查询数据

Select选项

字段别名

数据源

子查询: 数据的来源是一条查询语句(查询语句的结果是二维表)

Where子句

Group by子句

Having子句

Order by子句

Limit子句


数据高级操作

数据操作: 增删改查

新增数据

基本语法

Insert into 表名 [(字段列表)] values (值列表);

在数据插入的时候, 假设主键对应的值已经存在: 插入一定会失败!

主键冲突

当主键存在冲突的时候(Duplicate key),可以选择性的进行处理: 更新和替换

主键冲突: 更新操作

Insert into 表名[(字段列表:包含主键)] values(值列表) on duplicate key update 字段 = 新值;

-- 主键冲突: 更新
insert into my_class values('PHP0810','B205')
-- 冲突处理
on duplicate key update
-- 更新教室
room = 'B205';

主键冲突: 替换

Replace into 表名 [(字段列表:包含主键)] values(值列表);

-- 主键冲突:替换
replace into my_class values('PHP0710','A203');

蠕虫复制

蠕虫复制: 从已有的数据中去获取数据,然后将数据又进行新增操作: 数据成倍的增加.

表创建高级操作: 从已有表创建新表(复制表结构)

Create table 表名 like 数据库.表名;

-- 复制创建表
create table my_copy like my_gbk;

蠕虫复制: 先查出数据, 然后将查出的数据新增一遍

Insert into 表名[(字段列表)] select 字段列表/* from 数据表名;

-- 蠕虫复制
insert into my_copy select * from my_collate_bin;
-- 蠕虫复制: 先查出数据, 然后将查出的数据新增一遍
insert into my_copy select * from my_copy;

蠕虫复制的意义

  1. 从已有表拷贝数据到新表中
  2. 可以迅速的让表中的数据膨胀到一定的数量级: 测试表的压力以及效率

更新数据

基本语法

Update 表名 set 字段 = 值 [where条件];

高级新增语法

Update 表名 set 字段 = 值 [where条件] [limit 更新数量];

-- 更新部分a变成c limit:限制记录数为10
update my_copy set name = 'c' where name = 'a' limit 3;

删除数据

与更新类似: 可以通过limit来限制数量

Delete from 表名 [where条件] [limit 数量];

-- 删除数据:限制记录数为10
delete from my_copy where name = 'b' limit 10;
-- 删除整张表
delete from my_student;

删除: 如果表中存在主键自增长,那么当删除之后, 自增长不会还原

思路: 数据的删除是不会改变表结构, 只能删除表后重建表

Truncate 表名; -- 先删除改变,后新

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值