【MySQL】操作表DML相关语句

  引言

在这里插入图片描述

铭记于心
我唯一知道的,便是我一无所知

DML操作表记录-增删改【重点】

  • 准备工作: 创建一张商品表(商品id,商品名称,商品价格,商品数量.)
create table product(
  pid int primary key auto_increment,# 
  pname varchar(40),
  price double,
  num int
);

6.1 插入记录

6.1.1 语法

  • 方式一: 插入指定列, 如果没有把这个列进行列出来, 以null进行自动赋值了.
    eg: 只想插入pname, price , insert into t_product(pname, price) values(‘mac’,18000);
insert into 表名(,..) values(,..);

注意: 如果没有插入了列设置了非空约束, 会报错的

  • 方式二: 插入所有的列,如果哪列不想插入值,则需要赋值为null
insert into 表名 values(,....);           

eg:
insert into product values(null,'苹果电脑',18000.0,10);
insert into product values(null,'华为5G手机',30000,20);
insert into product values(null,'小米手机',1800,30);
insert into product values(null,'iPhonex',8000,10);
insert into product values(null,'iPhone7',6000,200);
insert into product values(null,'iPhone6s',4000,1000);
insert into product values(null,'iPhone6',3500,100);
insert into product values(null,'iPhone5s',3000,100);

insert into product values(null,'方便面',4.5,1000);
insert into product values(null,'咖啡',11,200); 
insert into product values(null,'矿泉水',3,500);

6.2 更新记录

6.2.1语法

update 表名 set 列 =值, 列 =值 [where 条件]

6.2.2练习 有 , .

6.2.2练习

6.2.2练习

  • 将所有商品的价格修改为5000元
update product set price = 5000;
  • 将商品名是苹果电脑的价格修改为18000元
UPDATE product set price = 18000 WHERE pname = '苹果电脑';
  • 将商品名是苹果电脑的价格修改为17000,数量修改为5
UPDATE product set price = 17000,num = 5 WHERE pname = '苹果电脑';
  • 将商品名是方便面的商品的价格在原有基础上增加2元
UPDATE product set price = price+2 WHERE pname = '方便面';

6.3 删除记录

6.3.1delete

根据条件,一条一条数据进行删除(可以回滚找回数据)

如果要清空表,那么不要使用delete,直接使用truncate清空表(销毁原表再自动创建一个,不能找回),两者都是物理删除数据

删除后

插入后id会直接从5开始,说明这还是之前那个表

但如果用truncate进行删除后再插入,如右图所示,是一张新表

  • 但在实际工作中两种方法都不使用,那么如何“删除”数据呢? — — —** 逻辑删除**(新加字段,1启用,0禁用等方式)
  • 语法
delete from 表名 [where 条件]    注意: 删除数据用delete,不用truncate
  • 类型

删除表中名称为’苹果电脑’的记录

delete from product where pname = '苹果电脑';

删除价格小于5001的商品记录

delete from product where price < 5001;

删除表中的所有记录

delete from product;

6.3.2truncate

把表直接DROP掉,然后再创建一个同样的新表。删除的数据不能找回。执行速度比DELETE快

truncate table;

6.3.3 工作中删除数据

  • 物理删除: 真正的删除了, 数据不在, 使用delete就属于物理删除
  • 逻辑删除: 没有真正的删除, 数据还在. 搞一个标记, 其实逻辑删除是更新 eg: state 1 启用 0禁用

写在最后
路漫漫其修远兮,吾将上下而求索!伙伴们,再见!在这里插入图片描述


你可能感兴趣的:(MySQL基础,mysql,数据库,macos)