mysql可以对插入的数据进行特定得验证,只有满足条件才可以插入到数据表中,否则认为是非法插入;

例如:人性别只可以是男、女。年龄只能是0-100。

①主键约束查重-PRIMARY KEY,1表一个

例子:id INT PARIMARY KEY,

声明主键约束列上的值不能出现重复,一个表只可以有一个主键,设置主键约束不可以使用NULL值;

表中查询的记录会按照主键由小到大的顺序排列--加快查找速度

②非空约束-NOT NULL,批量插入会失效

注意问题:INSERT INTO 插入时候会收到影响,起不了作用;

例子:id INT NOT NULL,

在插入数据时候,无法确定要保存的数据,例如:无法确定员工的工资,生日都可以使用NULL;

③唯一约束-UNIQUE

声明了唯一约束的列上不能插入重复的值,允许插入NULL,甚至多个NULL.

说明:NULL这个值比较特殊,它和任何值都不相等,甚至和自身都不相等;

注意:一个表里可以有多个唯一约束UNIQUE,但是只能有一个主键约束 PRIMARY KEY

④检查约束-CHECK

检查约束可以对插入的数据进行自定义的验证

CREATE TABLE student(score TINYINT CHECK(score>=0&scure<=100)

);

mysql 中不支持检查约束,会降低数据的插入速度;

⑤默认值约束-DEFAULT

可以使用DEFAULT关键字声明默认值,有两种方式应用默认值

第一种设置DEFAULT方法

CREATE TABLE family(

fid INT PRIMARY KEY,

fname VARCHAR(20) UNIQUE,

XX XX DEFAULT 1

);

INSERT INTO family VALUES(50,'华硕',DEFAULT);

第二种设置DEFAULT方法

INSERT INTO family (fid,fname)VALUES(50,'华硕');第三个值自动使用默认数值

注意事项:不可以在表格后括号里加引号!!!

⑥外键约束-FOREIGN KEY

使用方法:

CREATE TABLE laptop(

lid INT PRIMARY KEY,

familyld INT,

FOREIGN KEY(familyId) REFERENCES laptop_family(fid)

);

注意问题:

1.必须是另一个表格的主键

2.列类型必须和另一个表格的一样

3.需要加了逗号写到下一行

声明了外键约束的列,取值必须在另一个表的主键列上出现过,两者的列类型要保持一致,允许使用多个NULL或者多个NULL

使用方法:

FOREIGN KEY (列名) REFERENCES 数据表(主键列)

mysql 中的自增列

AUTO_INCREMENT:

自动增长,假如一个列声明了自增列,无需手动赋值,直接赋值为NULL,会获取当前的最大值, 然后加1插入

注意: 1.只适用于整数型的主键列上面

2.自增列允许手动赋值

3.手动赋值后中间跳跃有缺失,还会按最大值继续增长。

4.使用方便,可以直接给上面写NULL,数字自动加1;

列约束汇总

最新文章

  1. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!
  2. 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)
  3. AngularJS Filters
  4. joomla allvideo 去掉embed share
  5. node.js npm权限问题try running this command again as root/Administrator.
  6. Serializable 序列化
  7. php文件遍历
  8. C# IO操作(一)Path类的常用方法
  9. Normalize.css:优化重置CSS默认属性
  10. java 静态文件使用注解
  11. sketchup 导出 fbx文件 单位 错误
  12. Inno setup complier将文件添加注册表
  13. 关于 zend studio 中有些php 内置函数没有提示,或是有‘小黄色感叹号’
  14. yii2之DetailView小部件
  15. CTSC&amp;APIO2017
  16. 如何运用git实现版本控制
  17. syncbackse操作
  18. openstack--10--知识点补充
  19. MySQL最优配置模板( 5.6&amp;5.7)(运维那点事)
  20. Ajax和Json实现自动补全

热门文章

  1. 知识图谱顶会论文(SIGIR-2022) MorsE:归纳知识图嵌入的元知识迁移
  2. 【MySQL】01_运算符、函数
  3. 第一阶段:linux运维基础&#183;2
  4. DQL语句
  5. Element基本组件
  6. Python基础部分:12、文件光标移动(补充)
  7. KeeWiDB的高性能修炼之路:架构篇
  8. vue 数组更新(push【可用】,$set,slice,filter,map【都属于浅拷贝】)问题
  9. Go语言核心36讲39
  10. C温故补缺(十一):文件读写