04-增删查改数据表

04-增删查改数据表

添加数据

1
insert into 表名 [(字段名 [,字段名] ...)] values (值的列表)

插入数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
insert into demo.goodsmaster2
(
itemnumber,
barcode,
goodsname,
specification,
uint,
price
)values
(
4,
'0003',
'尺子',
'三角型',
'把',
5
);

image-20230116225511515

只给三个字段

1
2
3
4
5
6
7
8
9
10
11
12
13
INSERT INTO demo.goodsmaster
(
-- 这里只给3个字段赋值,itemnumber、specification、unit不赋值
barcode,
goodsname,
price
)
VALUES
(
'0004',
'测试',
10
);

image-20230116225652251

插入数据记录时,必须考虑的三种字段约束

  • 字段允许为空,赋值时可以为空值
  • 字段是主键,不能为空
  • 字段定义不能为空,且不是主键,就必须按照添加的约束进行处理

尝试将specification改为不能为空

1
2
ALTER TABLE demo.goodsmaster 
MODIFY specification TEXT NOT NULL;

报错:

image-20230116230015683

因为有部分数据的specification是null,所以不能修改,除非删除null数据

插入查询结果

1
2
3
4
insert into 表名
select 字段名或值
from 表名
where 条件

删除数据

1
2
delete from 表名
where 条件

为了防止误删,习惯性添加where语句

删除所有数据

1
2
delete from demo.goodsmaster
where itemnumber > 1;

修改数据

1
2
3
update 表名
set 字段名=值
where 条件

注意:不要修改主键字段的值

修改主键字段的值会有怎样的结果?

image-20230116230701050

1
2
3
update demo.goodsmaster
set itemnumber = 10
where itemnumber = 3;

image-20230116230857625

找不到原来的数据了

image-20230116230930439

查询数据

1
2
3
4
5
6
7
select *|字段列表
from 数据源
where 条件
group by 字段
having 条件
order by 字段
limit 起始点,行数
  • select:查询关键字 ,*是通配符,查询所有字段
  • where:查询条件
  • group by:查询结果如何分组,经常与Mysql的聚合函数一起使用
  • having:筛选查询结果,跟where类似

FROM

FROM关键字表示查询的数据源,数据源不一定是表,也可以是查询结果

1
2
3
4
5
select a.goodsname,a.price
from(
select *
from demo.goodsmaster
)as a;

image-20230116234258076

红色框里的部分叫做派生表(derived table)或者自查询(subquery)

ORDER BY

ASC表示生序,DESC表示降序

1
2
3
select * 
from demo.goodsmaster
order by barcode ASC,price DESC;

不加order,查询

image-20230116234557128

加order,查询

image-20230116234621252

LIMIT

1
2
3
select *
from demo.goodsmaster
limit 1,2

起始位2,结束为3

image-20230116234828638

处理重复信息

将B的数据插入A中,解决重复信息

1
2
3
4
insert into demo.goodsmaster
select *
from demo.goodsmaster2 as a
on duplicate key update barcode = a.barcode,goodsname=a.goodsname;

表A

image-20230117000446369

表B

image-20230117000605687

image-20230117000709963


04-增删查改数据表
http://example.com/2023/01/16/04-增删查改数据表/
Author
WYX
Posted on
January 16, 2023
Licensed under