八个约束条件

只有唯一约束才有约束名

1.非空约束:NOT NULL

2.主键约束:PRIMARY KEY

3.多字段联合主键(复合主键)

4.唯一约束:UNIQUE

5.默认约束:DEFAULT

6.外键约束:FOREIGN KEY

7.自增约束: auto_increment

8.检查约束: auto_increment

1.非空约束NOT NULL

  • 非空约束___创建表时添加约束
create table 表名
(
a int not null,
b int not null,
);
  • 非空约束___修改表时添加约束
alter table 表名
modify 字段名 类型 not null;
  • 非空约束___删除约束
alter table 表名
modify 字段名 类型;

2.主键约束PRIMARY KEY

  • 主键约束___创建表时添加约束.
create table 表名
(
a int,
b int,
c int,
primary key(字段1,字段2)
);
create table 表名
(
a int,
b int,
c int,
constraint 约束名 primary key(字段1,...)
);
create table 表名
(
a int primary key,
b int,
c int
);
  • 主键约束___修改表时添加约束
alter tbale 表名
modify 字段名 类型 primary key;
alter table 表名
primary key(字段1,字段2);
alter table 表名
add constraint 约束名 primary key(字段1,字段2);
  • 主键约束___删除约束
alter table 表名
drop primary key;

3.多字段联合主键(复合主键)

  • 多字段联合约束___创建多字段联合主键
create table 表名
(
a int,
b int,
primary key(字段1,字段2)
);

4.唯一约束UNIQUE

  • 唯一约束___创建表时添加约束
create table 表名
(
a int unqiue,
b int,
c int
);
create table 表名
(
a int,
b int,
c int,
constraint usfz unique(字段名,...)
);
create table 表名
(
a int,
b int,
c int,
unique(字段名,...)
);
  • 唯一约束___修改表时添加约束
alter tbale 表名
modify 字段名 类型 unique;
alter table 表名
add unique(字段1,字段2);
alter table 表名
add constraint 约束名 unique(字段1,字段2);
  • 唯一约束___删除约束
alter table 表名
drop index 约束名;
alter table 表名
drop key 约束名称;

5.默认约束DEFAULT

  • 默认约束___创建表时添加约束
create table 表名
(
a int primary key,
b int default '123456'
);
  • 默认约束___修改表时添加约束
alter table 表名
modify 字段名 类型 default '1234';
alter table 表名
alter column 字段名 set default '1234';
  • 默认约束___删除约束
alter table 表名
modify 字段名 类型;
alter table 表名
alter column 字段 drop default;

6.外键约束FOREIGN KEY

有外键的表称之为从表或者子表,相关联的表称之为主表或者父表

  • 外键约束___创建表时添加约束
create table 从表名
(
a int,
b int,
constraint 外键约束名 foreign key (从表字段名)
references 主表名 (主表主键)
);
  • 外键约束___修改表时添加约束
alter table 从表名
add foreign key(从表字段名)
references 主表名(主表字段);
  • 外键约束___删除约束
alter table 从表名
drop foreign key 从表字段名;
  • 从父表删除或更新且自动删除或更新子表中匹配的行
create able 从表名
(
a int,
b int,
consteraint fk_cid
foreign key(从表字段名)
references 主表表名(主表字段名) on delete cascade
);

7.自增约束 auto_increment

https://www.cnblogs.com/iforever/p/10071733.html

  • 自增列___创建表时添加约束

如果想一个自增列,则该字段必须为主键

create tbale 表名
(
a int primary key auto_increment,
b int
);
create table 表名
(
a int primary key auto_increment,
b int
)auto_increment=9;
  • 自增列___修改表时添加约束
alter table 表名
modify 字段名 字段类型 auto_increment;
alter table 表名
auto_increment=9;
  • 自增列___删除约束
alter table 表名
modify 字段名 字段类型;

就算是把自增列给删除了也会给原自增列一个值,这个值为0

8.检查约束

经过上网查看发现,MySQL只是可以使用check约束,但不会强制的遵循check约束!

官方推荐使用枚举类型(ENUM)来替代以上的使用check约束的情况原文

  • 检查约束___创建表时添加约束
create table 表名
(
a int,
b int check(字段名>0 and 字段名<100)
);
create table 表名
(
a int,
check(字段名>100)
);
  • 检查约束___修改表时添加约束
alter table 表名
add constraint 约束名 check(字段名>100);
  • 检查约束___删除约束
alter table 表名
drop constraint 检查约束名;

MySQL_约束条件的更多相关文章

  1. oracle数据库出现“批处理中出现错误: ORA-00001: 违反唯一约束条件”解决方法

    最近使用oraclede impdp工具全库导入数据库时,在数据库里面使用出现如下情况. SQL state : 违反唯一约束条件 (GDXAORCL.SYS_C0055359) ; nested e ...

  2. oracle违反完整约束条件

    oracle违反完整约束条件 Oracle ORA-02292: 违反完整约束条件 (UNITELE.TA_SUB_REFERENCE3) - 已找到子记录 A表被B表引用,删除A表的时候提示ORA- ...

  3. SQL server 的约束条件【转】

    SQLServer - 约束 一.约束的分类 在SQLServer中,有3种不同类型的约束. 1.实体约束 实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键. 2.域约束 域约束是 ...

  4. 纯代码添加约束条件(Auto Layout)

    Auto Layout 是一种基于约束的.描述性的布局系统.也就是使用约束条件来描述布局,View的Frame会根据这些描述来进行计算. 在iOS6.0以后加入了一个新类: NSLayoutConst ...

  5. 1 - SQL Server 2008 之 使用SQL语句创建具有约束条件的表

    约束条件分为以下几种: 1)非空约束,使用NOT NULL关键字: 2)默认值约束,使用DEFAULT关键字: 3)检查约束,使用CHECK关键字: 4)唯一约束,使用UNIQUE关键字: 5)主键约 ...

  6. 查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词,存储过程函数,约束条件)

    0.表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user ...

  7. 一些不熟悉的SQL脚本--约束条件

    1.根据表名查询主键的SQL语句 SELECT D.COLUMN_NAME AS COLNAME FROM USER_CONS_COLUMNS D, USER_CONSTRAINTS M WHERE ...

  8. MySQL中的完整性约束条件(主键、外键、唯一、非空)

    数据库的完整性约束用来防止对数据的意外破坏,来保证数据的安全性和一致性. 主键 1.创建表时候指定主键 创建表user(id, username, age),并且id字段非空自增. CREATE TA ...

  9. ORACLE之莫名---ORA-02290: 违反检查约束条件

    最近碰到一个十分棘手的问题,Java程序插入空数据到oracle时报ORA-02290: 违反检查约束条件(XXXX.×××××),这明显是在设置不可为空的字段上插入为空内容导致,但是检查数据库表后发 ...

随机推荐

  1. JavaScript 运算符的优先级

    ㈠逗号(,)运算符 ⑴使用 , 可以分割多个语句,一般可以在声明多个变量时使用 , : ⑵使用 , 运算符同时声明多个变量    // var a , b , c ; ⑶可以同时声明多个变量并赋值   ...

  2. Appium Inspector

    点击放大镜,打开如下页面: 需要填写的信息如下: 获取以上信息,需执行aapt命令,查看app信息: 进入appt.exe所在路径,执行如下命令: 得到app的详细信息: 填写完如下信息后,保存: i ...

  3. HDU - 6150 构造题

    最近的vj好垃圾,老崩,实名吐槽 HDU - 6150 题意:给出一个错误的求最小点覆盖的函数,需要来构造一组样例,使得那个函数跑出来的答案是正解的3倍以上. 很巧妙的构造技巧,首先想法就是弄一个二分 ...

  4. Makefile规则介绍

    Makefile 一个规则 三要素:目标,依赖,命令     目标:依赖 命令 1.第一条规则是用来生成终极目标的规则     如果规则中的依赖不存在,向下寻找其他的规则 更新机制:比较的是目标文件和 ...

  5. js中的时间显示

    var approveTime; approveTime=new Date(da[i].approveTime).toLocaleDateString(); 结果是 xxxx年xx月xx日

  6. 解决vscode打开空白的问题

    环境 :win7,最新vscode 问题:打开后窗口全黑,但是原按钮对应位置还有触摸手势,显示tag等,卸载重装等无效,如上图 最终方案: 启动方式后加 --disable-gpu 解决思路(其余参考 ...

  7. CSS 实现对号效果

    实现对号效果,一种思路是利用现成的符号,直接在网上搜索到 √,插入页面.另一种思路是本文要介绍的用 CSS 实现,思路是: 给块级元素设置宽度和高度 设置元素相邻的两个 border 旋转元素 HTM ...

  8. QList和QVector等容器的区别

    QList和QVector等容器的区别. 1.大多数情况下可以用QList.像prepend()和insert()这种操作,通常QList比QVector快的多.这是因为QList是基于index标签 ...

  9. 实验吧中围在栅栏中的爱-------writeup

    涉及知识点:栅栏密码解密.摩斯密码解密.替代密码解密 题目 可以看到下面一行东西,明显是一串摩斯密码,利用CTFCrakTools将密文解密 得到另一串密码kiqlwtfcqgnsoo 那么我们尝试着 ...

  10. LC 740. Delete and Earn

    Given an array nums of integers, you can perform operations on the array. In each operation, you pic ...