create table user_score(

name char(10) not null default “”,

score smallint not null default 0

);

增加一列

alter table user_score add column id smallint after name; ( 不要引号)

alter table user_score add column idea smallint;

主键&唯一键

主键不能为空 唯一键可以为空

主键only能有一个 唯一键可以有多个

主键可以多个列和并起来作为一个 唯一键不行

//在数据库表中 只有设置一个int类型的字段为主键,才可以设这个字段为标识列,标识列的作用就是一个可以自动增长的数字,如消息id,唯一并且不重复,是消息唯一标识

设置主键

alter table user_score add primary key(id);

//删除主键需要两步.

1、如果有auto_increment,先删除之; alter table user_score change id id int;

2、删除主键约束 primary key. alter table user_score drop primary key;

设置唯一约束

alter table user_score add column idea smallint auto_increment;// error一个表只能有一个自增列.

alter table user_score add column idea smallint default 0 unique; // 不好,这样往里面加数据的时候,如果不指定输入新加入的这一列,他就会被置为0,再加一个不指定的就会报错了

alter table user_score add unique(name);

//取消某一列的唯一约束

alter table user_score drop index idea;

设置某一列自增

设置它为主键 alter table user_score add primary key(id);

修改它为自增 alter table user_score change id id smallint auto_increment;

tip: 因为自增默认值是1,所以如果此前已经有值为1的数据,那么会报错。当设置那个值为非1的值保证该列没有值为1后,设置自增才会成功,且他会把原来的都从1开始更新一遍。

//取消自增

alter table user_score modify column id int;

//修改自增初始值

alter table user_score auto_increment = 2;

MySQL 每张表只能有1个自动增长字段,这个自动增长字段即可作为主键,也可以用作非主键使用,但是请注意将自动增长字段当做非主键使用时必须必须为设置为一种“键(key)”(没有插入成功,但是自增长序列,还是会用一次增长)。主键(primary key)是键(key)的一种,key还包括外键(foreign key)、唯一键(unique key)等1. 将自动增长字段设置为主键。

create table t1 (id int auto_increment Primary key,sid int);

将自动增长字段设置为非主键,注意必须显式添加Unique键。

create table t2 (sid int primary key,id int auto_increment Unique);

将自动增长字段设置为非主键如果未添加唯一索引将会报错**,如下面语句

create table t3 (sid int primary key,id int auto_increment)。

设置某一列的默认值

若本身已经有默认值,先删除默认值

alter table user_score alter score drop default;

设置默值

alter table user_score alter score set default 60;

关于change modify alter的使用

假如我们现在有一张表

要改成:

用一条ALTER语句实现:

ALTER TABLE hooptie RENAME TO car_table, ADD COLUMN car_id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(car_id), ADD COLUMN VIN VARCHAR(16)AFTER car_id, CHANGE COLUMN mo model VARCHAR(20), MODIFY COLUMN color AFTER model, MODIFY COLUMN year SIXTH, CHANGE COLUMN howmuch price DECIMAL(7,2);

CHANGE:如果我们不只是修改单一列,而是用一条语句改变两个列,我们需要修改列的名称,同时更改他们的数据类型,这时就需要我们用到关键字CHANGE,可以在一条语句中放入多个CHANGE,在中间加上分隔的逗号即可。

比如原来的表两列,类型为VARCHAR(50),和VARCHAR(10),现在不止要更改列名,还要更改这两列的类型。

ALTER TABLE project_list CHANGE COLUMN descriptionofproj proj_desc VARCHAR(100), CHANGE COLUMN contractoronjob con_name VARCHAR(30);

MODIFY: 使用它可以只修改列的类型而不会干涉它的名称,假设要把proj_desc列的字符长度修改为VARCHAR(120)以容纳更多的说明文字,只要这么做就可以。

ALTER TABLE project_list MODIFY COLUMN proj_desc VACHAR(120);

#proj_desc是要修改的列名,VARCHAR(120)是新的数据类型

总结如下;

(1)既更改列名也更改类型,用CHANGE

(2)只修改类型,用MODIFY

mysql怎样添加唯一标识_MySql设置唯一标识,主键等设置相关推荐

  1. mysql自增字段不连续_MySQL中自增主键不连续之解决方案。(20131109)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 今天只做了一件事情,但解决了很大的问题.相信这也是令很多程序员和数据库管理员头疼的事情. 假设在一MySQL数据表中,自增的字段为id,唯一字段为abc, ...

  2. mysql约束添加删除数据_mysql中约束的添加,修改,与删除

    MySQL中的约束,添加约束,删除约束,以及其他的一些修饰: 一.NOT NULL(非空约束) 添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) ...

  3. 解决MySQL中主键无法设置自增

    问题:为什么主键无法设置自增? 修改前:可以看到我给主键设置的类型为字符串 而自增的前提为int数据类型,因此导致AI自增无法点击. 修改前: 解决方法:将主键的datatype修改为int 自增就能 ...

  4. MYSQL学习笔记06:列属性[NULL,default,comment],主键,自增长,唯一键,数据库设计规范[范式(1NF,2NF,3NF),逆规范化],表关系[1V1,1VN,NVN]

    列属性 列属性又称为字段属性. 在mysql中一共有6个属性:null,默认值,列描述,主键,唯一键和自增长. NULL属性 NULL属性代表字段为空. 如果对应的值为yes表示该字段允许为null, ...

  5. sqlplus 主键 设置_浅谈MyBatis-Plus学习之Oracle的主键Sequence设置

    一.Oracle的主键Sequence设置简介 在Oracle数据库中不支持主键自增策略,它是通过Sequence序列来进行完成的,因此需要在MP中进行相关配置 二.相关配置如下 2.1.pom.xm ...

  6. access在哪里可以设主键_access设置主键

    在access中设置主键,指的是把某个数据表的某个字段设置为关键字段! 下面我们先大体来了解主键是何概念!所谓的主键,其实并非大家想象中的那么神秘,主键其实也是一个字段而已,只不过,该字段中的任何数据 ...

  7. oracle中设置表的主键字段为自增序列(实例)

    oracle中设置表的主键字段为自增序列(实例) 1.首先创建一个表(如日志表) //删除库表中存在的日志表 drop table S_LOG_INFO cascade constraints; // ...

  8. MybatisPlus主键技巧-@KeySequence type = IdType.INPUT 优先级高于setId(XXX) 业务主键的设置方式

    @KeySequence(value="T_Task") @TableName("urge_weixi_apply_record") @ApiModel(val ...

  9. DataSet 添加数据集、行、列、主键和外键等操作示例

    DataSet 添加数据集.行.列.主键和外键等操作示例 前台代码:html <%@ Page language="c#" Codebehind="CodeUse. ...

最新文章

  1. hadoop之MapReduce自定义二次排序流程实例详解
  2. vuex页面数据丢失_使用vuex解决刷新页面state数据消失的问题记录
  3. View 绘制流程分析
  4. 虚拟机IP桥接与.net
  5. fiddler如何filter_Fiddler工具的过滤功能介绍
  6. Flowable 生成工作流图片时, 不显示文字显示方框
  7. SQL Server 2014如何提升非在线的在线操作
  8. github网页链接
  9. 金蝶K3供应链单据套打设置(以采购订单为例)
  10. 自行更换iPhone 6s 手机电池 | 工序步骤
  11. 拒绝一心多用的工作学习方式(转)
  12. python之有关魔方方法的内容
  13. word中MathType公式不能 二次编辑解决方案
  14. keras学习之:获取神经网络中间层的输出结果
  15. Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs
  16. 湫湫系列故事——减肥记I(HDU-4808)
  17. IOS兼容日期格式问题,注意ios高低版本兼容性不一致
  18. 【随记】win10,系统,任务栏--工具栏--桌面,存在两个“控制面板”
  19. python 异步调用
  20. 产品经理需要具备能力

热门文章

  1. /etc/passwd 和/etc/group
  2. 小程序使用小白接口上传图片方法1
  3. IT培训行业揭秘(五)
  4. ORA-28000:账户已被锁定
  5. matlab教师考试安排,2018教师资格证考试科目及日程安排
  6. 2019年,IT行业发展前景
  7. kingcms修改笔记
  8. Serializers - Django REST framework
  9. 以太坊「合并」是什么?真的是Web3需要的吗?
  10. Spotify大规模敏捷之路