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
|
约束
给字段设置默认值的方法为默认约束,设置默认约束,插入数据时,如果不明确给字段赋值,系统会将设置的默认值自动赋给字段
除了默认约束意外,还有主键约束、外键约束、非空约束、唯一性约束、自增约束
1.非空约束
非空约束表示字段值不能为空,如果创建表的时候,指明某个字段非空,那么添加数据的时候,这个字段必须有值,否则系统就会提示错误
2.唯一性约束
唯一性约束表示这个字段的值不能重复,否则系统会提示错误。跟主键约束相比,唯一性约束要更加弱一些。
主键约束只能有一个,但是多个字段可以满足唯一性约束。满足主键约束的字段,自动满足非空约束,但是满足唯一性约束的字段,则可以是空值。
3.自增约束
自增约束可以让 MySQL 自动给字段赋值,且保证不会重复,非常有用,只是不容易用好。
demo.goodsmaster
中的itemnumber
改为自增类型
插入测试记录
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
再新增一条数据
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
如何修改表
复制表,修改表
1 2
| create table demo.importheadhist like demo.importhead;
|
添加字段
1 2
| alter table demo.importheadhist add confirmer int; -- 添加一个字段confirmer,类型为INT
|
1 2
| alter table demo.importheadhist add confirmdate DATETIME; -- 添加一个字段confrimdate,类型为DATETIME
|
查看表的结构
修改字段
将quantity改成importquantity
1 2
| alter table demo.importheadhist change quantity importquantity double;
|
将imprtquantity改为DECIMAL(10,3)
1 2
| alter table demo.importheadhist modify importquantity decimal(10,3);
|
添加suppliername,数据类型为TEXT
1 2
| alter table demo.importheadhist add supplierman text after supplierid;
|