在Mysql中,如何将某一列字段(已经存在)设为唯一、不为空

在Mysql中,如何将某一列字段(已经存在)设为唯一、不为空,第1张

Mysql设置某字段唯一 1.建表时加上唯一性约束 CREATE TABLE `t_user` (`Id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(18) NOT NULL unique,`password` varchar(18) NOT NULL,PRIMARY KEY (`Id`) www.2cto.com ) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk2.给已经建好的表加上唯一性约束ALTER TABLE `t_user` ADD unique(`username`)mysql主键索引和唯一索引 1.主键一定是唯一性索引,唯一性索引并不一定就是主键;2.一个表中可以有多个唯一性索引,但只能有一个主键;3.主键列不允许空值,而唯一性索引列允许空值。采纳噢

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。

查看列:desc 表名

修改表名:alter table t_book rename to bbb

添加列:alter table 表名 add column 列名 varchar(30)

删除列:alter table 表名 drop column 列名

修改列名MySQL: alter table bbb change nnnnn hh int

修改列名SQLServer:exec sp_rename't_student.name','nn','column'

修改列名Oracle:lter table bbb rename column nnnnn to hh int

修改列属性:alter table t_book modify name varchar(22)

sp_rename:SQLServer 内置的存储过程,用与修改表的定义。

请点击输入图片描述

请点击输入图片描述

删除语句:delete from fatie where id not in(select t.id1 from ( (select max(a.id) id1 from fatie a group by a.name)as t))留下的是各组id号最大的,如果留的是最小的话换成min(a.id)就行了

如果没有加上一个中间表t,即这句话 select t.id from去掉直接写成delete from fatie where id not in(select max(id) a.id1 from fatie a group by a.name)mysql会提示错误:You can't specify target table 'fatie' for update in FROM clause (不能先select出同一表中的某些值,再update这个表(在同一语句中)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8743015.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存