03 创建和修改数据

03-创建和修改数据表

创建数据表

1
2
3
4
5
6
7
CREATE TABLE <表名> 
(
字段名1 数据类型 [字段级别约束] [默认值],
字段名2 数据类型 [字段级别约束] [默认值],
......
[表级别约束]
);

“约束”限定

了表中数据应该满足的条件。MySQL 会根据这些限定条件,对表的操作进行监控,阻止破坏约束条件的操作执行,并提示错误,从而确保表中数据的唯一性、合法性和完整性。这是创建表时不可缺少的一部分

创建数据表

1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE demo.importhead
(
listnumber INT,
supplierid INT,
stocknumber int,
importtype int default 1,
quantity decimal(10,3),
importvalue decimal(10,2),
recorder int,
recordingdate datetime
);

创建表时,字段名称要避开Mysql的系统关键字

插入记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
insert into demo.importhead
(
listnumber,
supplierid,
stocknumber,
quantity,
importvalue,
recorder,
recordingdate
)
values
(
3456,
1,
1,
10,
100,
1,
'2023-1-9'
)

查询内容

1
SELECT * FROM demo.importhead

image-20230109165330652

约束

给字段设置默认值的方法为默认约束,设置默认约束,插入数据时,如果不明确给字段赋值,系统会将设置的默认值自动赋给字段

除了默认约束意外,还有主键约束、外键约束、非空约束、唯一性约束、自增约束

1.非空约束

非空约束表示字段值不能为空,如果创建表的时候,指明某个字段非空,那么添加数据的时候,这个字段必须有值,否则系统就会提示错误

2.唯一性约束

唯一性约束表示这个字段的值不能重复,否则系统会提示错误。跟主键约束相比,唯一性约束要更加弱一些。

主键约束只能有一个,但是多个字段可以满足唯一性约束。满足主键约束的字段,自动满足非空约束,但是满足唯一性约束的字段,则可以是空值。

3.自增约束

自增约束可以让 MySQL 自动给字段赋值,且保证不会重复,非常有用,只是不容易用好。

demo.goodsmaster中的itemnumber改为自增类型

image-20230109193817443

插入测试记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
insert into demo.goodsmaster
(
itemnumber,
barcode,
goodsname,
specification,
uint,
price
)
values
(
100,
'0003',
'测试1',
'',
'个',
10
);

此处可以看到itemnumber为100

image-20230109202520016

再新增一条数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
insert into demo.goodsmaster
(
barcode,
goodsname,
specification,
uint,
price
)
values
(
'0004',
'测试2',
'',
'个',
15
);

新增数据itemnumber为101

image-20230109202719543

如何修改表

复制表,修改表

1
2
create table demo.importheadhist
like demo.importhead;

image-20230109203105898

添加字段

1
2
alter table demo.importheadhist
add confirmer int; -- 添加一个字段confirmer,类型为INT

image-20230109203435670

1
2
alter table demo.importheadhist
add confirmdate DATETIME; -- 添加一个字段confrimdate,类型为DATETIME

image-20230109203640437

查看表的结构

image-20230109203759367

修改字段

将quantity改成importquantity

1
2
alter table demo.importheadhist
change quantity importquantity double;

image-20230109204013497

将imprtquantity改为DECIMAL(10,3)

1
2
alter table demo.importheadhist
modify importquantity decimal(10,3);

image-20230109204258004

添加suppliername,数据类型为TEXT

1
2
alter table demo.importheadhist
add supplierman text after supplierid;

image-20230109204502234


03 创建和修改数据
http://example.com/2023/01/09/03-创建和修改数据表/
Author
WYX
Posted on
January 9, 2023
Licensed under