mysql恶补_约束1
2016-01-19 16:55
501 查看
约束
1.约束是保证数据的完整性和一致性。
2.约束分为表级和列级约束。
3.约束类型包括:
NOT NULL(非空约束)
PRIMARY KEY(主键约束)
UNIQUE KEY(唯一约束)
DEFAULT(默认约束)
FOREIGN KEY(外键约束)
外键约束:
保持数据的一致性,完整性.
实现一对一或一对多的关系.(关系型数据库)
1.父表和子表必须使用相同的存储引擎,而且禁止使用临时表.
2.数据表的存储引擎只能为InnoDB.
3.外键列和参照表必须具有相似的数据类型.其中数字的长度或者是否有符号位必须相同;而字符的长度则可以不同.
4.外键列和参照列必须创建索引.如果外键列不存在索引的话,MYSQL将自动创建索引.
外键约束的参照操作
1.CASCADE:从父表删除或更新且自动删除或更新字表中匹配的行
2.SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL.如果使用该选项,必须保证子表列没有指定NOT NULL.
3.RESTRICT:拒绝对父表的删除或更新操作.
4.NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同.
在实际的开发中,我们很少使用物理的外键约束,很多情况下使用逻辑的外键约束,因为只有InnoDB支持物理的外键约束,所谓的逻辑外键,我们定义两张表的结构的时候,我们是安装定义两张表的结构去定义,而不去使用foreign key这个关键词去定义。
sql 命令补充
show databases;
show tables;
show columns from `biao`;
show indexes from 'biao'; //显示表索引
show create table `biao`; //显示创建表的sql语句
1.约束是保证数据的完整性和一致性。
2.约束分为表级和列级约束。
3.约束类型包括:
NOT NULL(非空约束)
PRIMARY KEY(主键约束)
UNIQUE KEY(唯一约束)
DEFAULT(默认约束)
FOREIGN KEY(外键约束)
外键约束:
保持数据的一致性,完整性.
实现一对一或一对多的关系.(关系型数据库)
1.父表和子表必须使用相同的存储引擎,而且禁止使用临时表.
2.数据表的存储引擎只能为InnoDB.
3.外键列和参照表必须具有相似的数据类型.其中数字的长度或者是否有符号位必须相同;而字符的长度则可以不同.
4.外键列和参照列必须创建索引.如果外键列不存在索引的话,MYSQL将自动创建索引.
外键约束的参照操作
1.CASCADE:从父表删除或更新且自动删除或更新字表中匹配的行
2.SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL.如果使用该选项,必须保证子表列没有指定NOT NULL.
3.RESTRICT:拒绝对父表的删除或更新操作.
4.NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同.
在实际的开发中,我们很少使用物理的外键约束,很多情况下使用逻辑的外键约束,因为只有InnoDB支持物理的外键约束,所谓的逻辑外键,我们定义两张表的结构的时候,我们是安装定义两张表的结构去定义,而不去使用foreign key这个关键词去定义。
sql 命令补充
show databases;
show tables;
show columns from `biao`;
show indexes from 'biao'; //显示表索引
show create table `biao`; //显示创建表的sql语句
相关文章推荐
- MySQL外键的设置及作用
- MySQL存储引擎比较
- MySQL中修改列名或列的数据类型
- mysql也可以查询今天、昨天、7天、近30天、本月、上一月的数据
- MySQL 5.7修改默认密码
- MySQL多表查询之子查询
- [转]mysql免安装版配置
- [转]mysql免安装版配置
- MySQL参考资料
- 数据库---MySQL常用函数总结
- 优化mysql实验(explain;索引)+利用 index、explain和profile优化mysql数据库查询小结
- 编写MYSQL插件(UDF)使其实现Split函数
- [MySQl]MySQL忘记密码
- mysql修改端口经验
- 数据库迁移 - SQLServer->MySQL
- Mysql 如何设置字段自动获取当前时间
- [MySQL]增加用户 授权 远程登录
- ceotos mysql 非法操作恢复
- MySql用DATE_FORMAT截取DateTime字段的日期值
- 【Mysql】mysqldump导出数据库时,忽略指定表的数据