Mysql数据表结构操作
程序员文章站
2022-03-03 18:40:25
...
新建表:
CREATE TABLE `ecs_appoint_demand_bargaining_log` (
`yj_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '议价ID',
`xq_id` int(11) NOT NULL COMMENT '议价单ID',
`yj_status` tinyint(5) NOT NULL DEFAULT '0' COMMENT '0待商家确认1供应商已确认2供应商已拒绝3已下单4已失效',
`user_price` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '用户议价价格',
`user_cont` text CHARACTER SET utf8 NOT NULL COMMENT '用户描述',
`supplier_id` int(11) NOT NULL COMMENT '供应商ID',
`supplier_name` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '供应商名称',
`supplier_price` decimal(12,2) NOT NULL COMMENT '供应商报价',
`supplier_cont` text CHARACTER SET utf8 NOT NULL COMMENT '供应商回复',
`create_time` int(11) NOT NULL COMMENT '开始时间',
`end_time` int(11) NOT NULL COMMENT '截止时间',
`quotation_time` int(11) NOT NULL COMMENT '报价时间',
PRIMARY KEY (`yj_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
添加表字段:
ALTER TABLE `ecs_appoint_demand` ADD `demand_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1 指定下单 2议价';
修改表字段:
ALTER TABLE user10 MODIFY email VARCHAR(200) NOT NULL DEFAULT '1' COMMENT '1 指定下单 2议价;
– 将card移到test后面
ALTER TABLE user10 MODIFY card CHAR(10) AFTER test;
– 将test放到第一个,保留原完整性约束条件
ALTER TABLE user10 MODIFY test CHAR(32) NOT NULL DEFAULT '123' FIRST;
– 将test字段改为test1
– ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 约束条件
ALTER TABLE user10 CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';
– 添加一个字段
ALTER TABLE user11 ADD email VARCHAR(50);
– 给age添加默认值
ALTER TABLE user11 ALTER age SET DEFAUTL 18;
– 给email添加默认值
ALTER TABLE user11 ALTER email SET DEFAULT '[email protected]';
– 删除默认值
ALTER TABLE user11 ALTER age DROP DEFAULT;
ALTER TABLE user11 ALTER email DROP DEFAULT;
添加主键:
– 创建一个表
CREATE TABLE test12(
id INT
);
– 添加主键
-- ALTER TABLE tb_name ADD [CONSTRAINT [sysmbol]] PRIMARY KEY [index_type] (字段名称,...)
ALTER TABLE test12 ADD PRIMARY KEY(id);
– 添加复合主键
– 先创建个表
CREATE TABLE test13(
id INT,
card CHAR(18),
username VARCHAR(20) NOT NULL
);
– 添加复合主键
ALTER TABLE test13 ADD PRIMARY KEY(id,card);
删除主键:
– 删除主键
ALTER TABLE test12 DROP PRIMARY KEY;
– 再给test12添加主键, 完整形式
ALTER TABLE test12 ADD CONSTRAINT symbol PRIMARY KEY index_type(id);
在删除主键时,有一种情况是需要注意的,我们知道具有自增长的属性的字段必须是主键,如果表里的主键是具有自增长属性的;那么直接删除是会报错的。如果想要删除主键的话,可以先去年自增长属性,再删除主键
– 再创建一个表,
CREATE TABLE test14(
id INT UNSIGNED KEY AUTO_INCREMENT
);
– 删除主键,这样会报错,因为自增长的必须是主键
ALTER TABLE test14 DROP PRIMARY KEY;
– 先用MODIFY删除自增长属性,注意MODIFY不能去掉主键属性
ALTER TABLE test14 MODIFY id INT UNSIGNED;
– 再来删除主键
ALTER TABLE test14 DROP PRIMARY KEY;
修改表的存储引擎:
-- ALTER TABLE tb_name ENGINE=存储引擎名称
ALTER TABLE user12 ENGINE=MyISAM;
ALTER TABLE user12 ENGINE=INNODB;
修改自增长值:
-- ALTER TABLE tb_name AUTO_INCREMENT=值
ALTER TABLE user12 AUTO_INCREMENT=100;
推荐阅读