06 MySQL数据操作DML---简单增删改查:插入insert、删除delete、更新update、蠕虫复制

DML是指数据操作语言,用来对数据库中表的数据记录进行更新

插入 insert

向表中插入 指定字段 数据

// 语法:
insert into 表名(字段名1,字段名2,字段名3,...) values(字段名1值,字段名2值,字段名3值,...)


// 插入一条数据
insert into my_student(id,`name`,age) values(2,'Jack',12);

// 一次插入多个
insert into my_student(id,'name',age) values(1001,'张三',20),
		                            (1002,'李四',30),
		                            (1003,'王五',30);

向表中插入 所有字段 数据,此时值列表必须与表结构一致

-- 语法:
insert into 表名 values(对应的表结构值列表)

-- 插入一条数据
INSERT into my_student values(3,'Amy',16);

-- 插入多条数据
INSERT into my_student values(3,'Amy',16),
		             (4,'Hobby',37),
			     (5,'Lay',38),
			     (6,'Maaay',27);

字段列表不一定非要有表中的所有字段
后面values 中对应的值列表,只需与前面的字段列表相对应即可,不一定与表结构完全一致;

主键冲突

在插入数据过程中,默认主键是唯一的,如果非要再插入一条已经存在的数据,那么就会存在主键冲突

方法一: 主键冲突更新

insert into 表名 values(值列表) on duplicate key update 要修改的字段名=新值;

-- 比如:
insert into pk2 values(3,'小美',22) on DUPLICATE key update `name`='小美';

image

执行主键冲突更新后的结果:

image

方法二:主键冲突替换

当主键冲突后,直接替换掉原来的数据,重新插入数据

replace into 表名(字段名) values(值列表)

蠕虫复制-复制表数据

一份为二,成倍的增加
本质是:丛已有数据的表中获取数据,然后将获取到的数据插入到数据表中

insert into 表名(字段列表) select */字段 from 其他表或者当前表;

-- 1. 复制表
create table member2 like member;

-- 2. 通过蠕虫复制 将member表中的数据,全部复制到 member2中
INSERT INTO member2 SELECT  * from member;

注意点:

  • 蠕虫复制通常是重复数据,本身没有太大的意义,但是它可以在短时间内快速增加表的数据量,从而可以测试表的压力,也可以通过大量数据测试表的效率(索引)

  • 注意主键冲突

查询 select

select 查询列表(字段)	第七步
from 表	第一步
连接类型 join 表2	第二步
on 连接条件	第三步
where 筛选条件	第四步
group by 分组列表	第五步
having 分组后的筛选条件	第六步
order by 排序列表	第八步
limit 偏移 ,条目数	第九步

查询表中所有数据

select * from 表名;

查询表中部分字段

select 字段名 from 表名;

简单的条件查询

select */字段列表 from 表名 where 字段名=值

删除 delete

删除数据的时候,尽量使用条件限制 where
注意:删除数据的时候,没办法是自增长重置为1

delete from 表名 [where 条件]

-- 1.删除sid为1004的学生数据
delete from student where sid  = 1004;


-- 2.删除表所有数据
delete from student;


-- 3.清空表数据,同时将表的自增长重置为1
truncate table student;
truncate student;

删除数据的时候,可以设置 limit 来限制 删除的数量

delete from 表名 [where 条件] limit 数量

更新 update

在更新数据的时候,通常是跟随条件的,修改表中的部分数据,一般不会批量修改数据

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

# 修改id=2的name 为 'Sunny'
UPDATE my_student set `name`='Sunny' WHERE id=2;

如果没有设置条件,就是全表更新,但是可以通过设置 limit 来显示更新的数据量

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

常用基础数据操作如下:

-- 1.  插入操作
-- 插入方式1
INSERT into my_student (id,`name`,age) values(2,'Jack',12);
-- 插入方式2
INSERT into my_student values(3,'Amy',16);


-- 2.  查询操作
-- 查询所有数据
SELECT * from my_student;

-- 查询指定字段 id name 的数据
SELECT id,`name` from my_student;

-- 查询id=2的名称
SELECT `name` from my_student WHERE id=2;


-- 3. 删除操作
-- 删除id=4 的数据
DELETE FROM my_student WHERE id=4;


-- 4. 更新操作
-- 修改id=2的name 为 'Sunny'
UPDATE my_student set `name`='Sunny' WHERE id=2;

posted @ 2024-04-03 17:13  songxia777  阅读(25)  评论(0编辑  收藏  举报