欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;