八个约束条件

只有唯一约束才有约束名

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. scrollTop([val])

    scrollTop([val]) 概述 获取匹配元素相对滚动条顶部的偏移.广州大理石机械构件 此方法对可见和隐藏元素均有效. 参数 valString, NumberV1.2.6 设定垂直滚动条值 示 ...

  2. 查看PublicKeyToken和生成PublicKeyToken

    http://hi.baidu.com/honfei/item/7777500b20d8ff8a02ce1bd2

  3. @Test 测试

    package com.自定义.mall.admin.system; import java.util.List; import java.util.Map; import javax.annotat ...

  4. 「BZOJ 4565」「HAOI 2016」字符合并「区间状压DP」

    题意 给一个长度为\(n(\leq 300)\)的\(01\)串,每次可以把\(k(\leq 8)\)个相邻字符合并,得到新字符和一定分数,最大化最后的得分 题解 考虑设计dp:\(dp[S][i][ ...

  5. logstash6.5.4同步mysql数据到elasticsearch 6.4.1

    下载logstash-6.5.4 ZIP解压和es 放到es根目录下 下载mysql jdbc的驱动 mysql-connector-java-8.0.12 放在任意目录下 以下方式采用动态模板,还有 ...

  6. C语言基础语法之指向函数的指针

    指针是C语言的精髓,对于初学者来讲,指针是C语言语法学习中比较难的知识点,而这里面指向函数的指针更是不太容易理解. 下面给大家讲下怎样学习理解C语言中指向函数的指针及编程方法和使用例子. 注意:这是一 ...

  7. JVM GC之垃圾收集器

    简述 如果说收集算法时内存回收的方法论,那么垃圾收集器就是内存回收的具体实现.这里我们讨论的垃圾收集器是基于JKD1.7之后的Hotspot虚拟机,这个虚拟机包含的所有收集器如图: Serial 收集 ...

  8. Map集合循环遍历的几种方式

    package cn.jdbc.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import ...

  9. Explain详解

    explain语句用于查看某个查询语句具体使用了什么执行计划 执行输出各列详解 table 每条记录对应一个表的查询,如果是两表连接查询,就会有两条记录,table对应查询表名 id 查询语句可能是单 ...

  10. MySQL-UDF和MOF提权

    MOF提权 MOF文件是mysql数据库的扩展文件(在c:/windows/system32/wbem/mof/nullevt.mof) 叫做”托管对象格式”,其作用是每隔五秒就会去监控进程创建和死亡 ...