MYSQL的学习笔记-----MYSQL的约束

来源:互联网 发布:java发送邮件的代码 编辑:程序博客网 时间:2024/04/30 14:34
约束
  --约束可以保证数据的完整性和一致性
  --约束分为表级约束和列级约束

约束的类型
 1、空值与非空值
    NULL,字段值可以为空
    NOT NULL,字段值禁止为空
 2、AUTO_INCREMENT
    --自动编号,并且必须与主键组合使用
    --默认情况下,其开始值为1,每次的增量为1
 3、PRIMARY KEY
    --主键约束
    --每张数据表只能存在一个主键
    --逐渐保证记录的唯一性
    --主键自动为 NOT NULL
4、UNIQUE KEY
   -- 唯一约束
   --唯一约束可以保证记录的唯一性
   --唯一约束的字段的可以为空值
   --每张表可以存在多个唯一约束
5、DEFAULT
   --默认值
   --当插入记录时,如果没有明确的为字段赋值,则自动赋予默认值
6、FOREIGN KEY
    --外键约束
    --保持数据的一致性,完整性
    --实现一对一的或一对多的关系

 ♦外键约束的要求
 (1)父表和字表必须使用相同的存储引擎,而且禁止使用临时表
 (2)数据标的存储引擎必须是InnoDB
  (3)外键列和参照列必须具有相似的数据类型,其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同
 (4)外键列和参照列必须创建索引,如果外键列不存在索引的话,MYSQLj将会自动创建索引

 ♦编辑数据表的默认存储引擎
   --MYSQL配置文件
      default-storage-engine INNODB

♦外键约束的参照操作
 (1)CASCADE:从父表删除或更新并且自动删除或更新字表中的匹配的行
 (2)SET NULL :从父表删除或更新行,并设置字表中的外键列为NULL.如果使用该选项,必须保证字表没有指定NOT NULL
  (3)RESTRICT :拒绝对父表的删除或更新操作
 (4)NO ACTION :标准SQL的关键字,在MYSQL中雨RESTRICT相同

♦表级约束和列级约束
 -- 对一个数据建立的约束,称为列级约束
 -- 对多个数据建立的约束,称为表级约束
 -- 列级约束既可以在列定义是声明,也可以在列定义后声明
 -- 表级约束值能在列定义后声明

0 0
原创粉丝点击