NOT NULL 不允许空值约束

NOT NULL 约束强制列不接受 NULL 值(NULL值就是没有值或缺值)。NOT NULL 约束强制字段始终包含值,即不向字段添加值,就无法插入新记录或者更新记录,也就是在插入或更新行时该列必须有值。

注意:NULL值时没有值,它不是空串、空格等。空串、空格等是一个有效的值,它不是无值。

CREATE TABLE 表名
(
列名称 数据类型以及长度 NOTNULL,
……
);

UNIQUE 唯一值约束

UNIQUE 约束唯一标识数据库表中的每条记录。UNIQUE 和 PRIMARY KEY 主键约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 主键约束拥有自动定义的 UNIQUE 约束。

注意:每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

CREATE TABLE 表名
(
列名称 数据类型以及长度 UNIQUE;
……
); 为多个列定义 UNIQUE 约束
方法一:(一次性指定)
CREATE TABLE 表名
(
列名称1 数据类型以及长度;
列名称2 数据类型以及长度;
……
UNIQUE (列名称1,列名称2,……)
);
方法二:(分别对各个列进行指定)
CREATE TABLE 表名
(
列名称1 数据类型以及长度 UNIQUE;
列名称2 数据类型以及长度 UNIQUE;
……
);

PRIMARY KEY 主键约束

PRIMARY KEY 主键约束唯一标识数据库表中的每条记录。主键值必须唯一。

主键中只能使用不允许NULL值的列(即主键值不能为NULL值),允许NULL值的列不能作为唯一标识。

注意:建议每个表只有一个主键约束。

语法

CREATE TABLE 表名
(
列名称 数据类型以及长度 PRIMARY KEY;
……
); 为多个列定义 PRIMARY KEY 约束
CREATE TABLE 表名
(
列名称1 数据类型以及长度;
列名称2 数据类型以及长度;
……
PRIMARY KEY(列名称1,列名称2,……)
);

FOREIGN KEY 外键约束

一个表中的 FOREIGN KEY 外键约束指向另一个表中的 PRIMARY KEY,即给 列名称1 设置了外键约束,往列名称1插入数据,这个数据一定是要在FORFIGN KEY后面所跟的那个参照表的列名称中存在的值,外键约束了数据的完整性,不会插入错误的数据。

添加了外键之后,插入引用表的记录要么必须被引用表中被引用列的某条记录匹配,要么外键列的值必须设置为NULL。

每个表中的外键数目不限制唯一性,并且一个列只能引用一个外键,一个列可以被多个外键引用。

语法

CREATE TABLE 表名称
(
列名称1 数据类型及长度,
列名称2 数据类型及长度 FOREIGN KEY REFERENCES 参照表的表名称(参照表的列名称)
……
) MySQL使用语法
CREATE TABLE 表名
(
列名称 数据类型以及长度;
……
FOREIGN KEY (列名称) REFERENCES 参照表的表名称(参照表的列名称)
); 为多个列定义 FOREIGN KEY 约束
CREATE TABLE 表名
(
列名称1 数据类型以及长度;
列名称2 数据类型以及长度;
……
FOREIGN KEY(列名称1,列名称2……) REFERENCES 参照表的表名称(参照表的列名称1,参照表的列名称2)
);

CHECK 约束

CHECK 约束用于限制列中的值的范围。如果对单个列定义 CHECK 约束,那么该列只允许特定的值。如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

为多个列定义CHECK约束应使用AND关键字进行连接。

语法

CREATE TABLE 表名称
(
列名称 数据类型及数据长度 CHECK(值范围条件),
……
); 为表中多个列定义 CHECK 约束
CREATE TABLE 表名称
(
列名称1 数据类型及数据长度,
列名称2 数据类型及数据长度,
……
CHECK(列名称1值范围条件 AND 列名称2值范围条件 AND ……)
);

DEFAULT 约束

DEFAULT 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。

建议创建数据库时使用默认值而不是允许值为NULL,这样可以有助于数据库管理和开发。

注意:大多数DBMS不允许使用函数作为默认值,只支持常量。

CREATE TABLE 表名称
(
列名称 数据类型及数据长度 DEFAULT 常量值,
……
);

AUTO_INCREMENT 自动递增约束

AUTO_INCREMENT可以在新记录插入表中时自动地创建唯一的数值(即进行自动增量),并且每个表只允许一个AUTO_INCREMENT列,而且它必须被索引(如通过使用AUTO_INCREMENT成为主键)。

注意:AUTO_INCREMENT 的默认开始值是 1,每条新记录自动递增 1。

语法

CREATE TABLE 表名称
(
列名称 数据类型及数据长度 AUTO_INCREMENT,
……
);

最新文章

  1. 团队作业week16
  2. StringBuilder(字符串拼接类)
  3. ListDefinition Tips
  4. Machine Learning Algorithms Study Notes(2)--Supervised Learning
  5. hibernate中 inverse的用法(转载)
  6. 视频处理控件TVideoGrabber中如何混合多个视频源(2)
  7. 虚拟专用网络VPN
  8. MFC中OnDraw()和OnPaint()的区别[转]
  9. WinCE NAND flash - FAL
  10. Eclipse调试的一些小技巧
  11. Bernese安装及使用
  12. HTML5学习笔记简明版(10):过时的元素和属性
  13. oracle删除重复记录,只保留rowid最小的记录
  14. 第六十三节,html表格元素
  15. 编写高质量代码改善程序的157个建议:使用Dynamic来简化反射的实现
  16. 【原】Spark 编程指南
  17. 深入并发包 ConcurrentHashMap 源码解析
  18. hiho 1097 最小生成树一·Prim算法 (最小生成树)
  19. HDU2732 Leapin' Lizards 网络流 最大流 SAP
  20. 学习Acegi应用到实际项目中(1)

热门文章

  1. ubantu搭建oj——第一天(6.11)
  2. Home Assistant-自动化设备
  3. 用 virtualenv 创建隔离的 Python 运行环境
  4. automake - 使用 autotools 工具集
  5. bat性能效率受啥影响
  6. springmvc+thymeleaf搭建框架启动报错
  7. 【转】AlphaGO Zero 原理
  8. JFrame2
  9. 【Python撩妹合集】微信聊天机器人,推送天气早报、睡前故事、精美图片分享
  10. 七、xadmin 编辑界面实现二级联动