MySQL操作表的约束
完整性:指数据库的准确性和一致性。
约束:是在表中定义的用于维护数据库完整性的一些规则。
主键:给某一个字段来唯一标识所有记录,值是唯一的,非空的
外键:多个表之间参照的完整性。
一、设置非空约束
use 教学管理数据库; show tables; create table 专业表( 专业编号 char(3) not null, 专业名称 varchar(30) ); desc 专业表;
二、设置字段的默认值
drop table 专业表; create table 专业表( 专业编号 char(3) not null(约束), 专业名称 varchar(30) default(默认的) '计算机' );
desc 学生表;
三、设置唯一约束
drop table 专业表; create table 专业表( 专业编号 char(3) not null, 专业名称 varchar(30) default(默认的) '计算机' unique(唯一) );
desc 专业表;
四、设置主键约束
1)单字段主键 drop table 专业表; create table 专业表( 专业编号 char(3) not null(约束) primary(主要) key(设置主键约束), 专业名称 varchar(30) );
desc 专业表;
(2)多字段主键
drop table 专业表; create table 专业表( 专业编号 char(3) not null, 专业名称 varchar(30), constraint pk_专业编号_专业名称 primary key(设置主键约束)(专业编号,专业名称) );
查看表结构
desc 专业表;
五、设置字段值自动增长
drop table 专业表; create table 专业表( 专业编号 int primary key(设置主键约束) auto_increment(设置字符段自动增长), 专业名称 varchar(30) );
查看表结构
desc 专业表;
六、设置外键
desc 学生表; desc 专业表; drop table 学生表; create table 学生表( 学生编号 char(4) primary key(设置主键约束), 学生姓名 varchar(10), 所属专业编号 int, 所属班级编号 char(3), 职务 varchar(6), 性别 char(1), 出生日期 datetime, 籍贯 varchar(50), 入学日期 datetime, constraint(约束) fk_所属专业编号 foreign key(设置外键)(所属专业编号) references(依附,属于) 专业表(专业编号) );
查看表结构
desc 学生表;
MySQL所支持的完整性约束
- 设置非空约束,含义:设置字段不能为空值
2.设置字段默认值,含义:当为数据库表中插入一条新记录时;如果没有为某个字段赋值那么数据库会自动为这个字段插入默认值。
3.设置唯一约束;含义:设置不允许重复,保证不能重复
4.设置主键约束;含义:表示该字段可以唯一的表示所有记录
5.设置字符自动增长;含义:一个数据库表中只能有一个字段使用该约束,该字段类型必须是整形
6.设置外键约束;含义:外加约束则保证多个表之间的参照完整性构建两个表的两个字段之间的关系
字段值自动增长的优点
当为数据库表中插入新纪录时,字段上的值会自动生成唯一的ID
设置字段的默认值有什么优点
如果没有为某个字段赋值那么数据库会自动为这个字段插入默认值。
MySQL操作表的约束的更多相关文章
- mysql 外键约束备注
梳理mysql外键约束的知识点. 1.mysql外键约束只对InnoDb引擎有效: 2.创建外键约束如下: DROP TABLE IF EXISTS t_demo_product; CREATE TA ...
- MySQL外键约束On Delete、On Update各取值的含义
主键.外键和索引的区别? 主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 主索引(由关键字PRIMARY定义的索引) ...
- MySQL之外键约束
MySQL之外键约束 MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: [CONSTRAINT [symbo ...
- Mysql表的约束设计和关联关系设计
https://blog.csdn.net/u012750578/article/details/15026677 Mysql表的约束设计和关联关系设计 ======================表 ...
- mysql 外键约束及表关联
一.MYSQL中的约束 1.主键:primary key 唯一非空的特性并且可以优化查询速度 2.外键:foreign key 外键的作用保证2个或2个以上的数据表的数据一致性和完整性 3.唯一:un ...
- MySql中的约束
mysql中的约束使用和oracle使用差别不大. 1.主键约束 如同人对应身份证,主键能够唯一地标识表中的一条记录,可以结合外键来定义数据表之间的关系. 主键约束要求主键列的数据唯一,并且不允许为空 ...
- 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引
一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...
- Mysql 主键约束PrimaryKey
Mysql 主键约束Primary Key 今天来简单的讲一下主键约束. 假如有一张学生信息表,里面记录了学生的学号 ,姓名,成绩等,那么,会不会有两个学号相同的学生,答案肯定是否定的,如果有的话也只 ...
- mysql外键约束总结
总结三种MySQL外键约束方式 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是 ...
随机推荐
- 关于QThread使用锁死的探索
在学习使用QT5的时候,发现要使用多线程处理多任务,按照https://www.cnblogs.com/liming19680104/p/10397052.html等很多网上的方法,测试一下,发现我写 ...
- Mac OS X 10.13上 安装odoo 11.0开发环境
0.准备假设homebrew已经安装好没安装的需要先安装,见下面链接http://brew.sh/ 1.安装PostgreSQL$ brew tap homebrew/services$ brew i ...
- (转)USB的VID和PID,以及分类(Class,SubClass,Protocol)
USB的VID和PID,以及分类(Class,SubClass,Protocol) 原文地址:http://blog.csdn.net/gaojinshan/article/details/78783 ...
- (转)协议森林10 魔鬼细节 (TCP滑窗管理)
协议森林10 魔鬼细节 (TCP滑窗管理) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在TCP协议与"流" ...
- Java中static和final的解析
static关键字和final关键字是Java中一个难点&重点.本文通过static的用途.常见问题.final的用途.final常见问题,以及static和final的对比来解释这两个关键字 ...
- angular 中嵌套 iframe 报错
错误如下 Error: unsafe value used in a resource URL context at DomSanitizationServiceImpl.sanitize... 解决 ...
- MySQL数据备份与恢复(二) -- xtrabackup工具
上一篇介绍了逻辑备份工具mysqldump,本文将通过应用更为普遍的物理备份工具xtrabackup来演示数据备份及恢复的第二篇内容. 1. xtrabackup 工具的安装 1.1 安装依赖包 ...
- jenkins-gitlab-harbor-ceph基于Kubernetes的CI/CD运用(四)
前景提要 jenkins与gitlab结合,实现代码自动拉取:https://www.cnblogs.com/zisefeizhu/p/12548662.html jenkins与kubernetes ...
- Springboot使用Undertow
Springboot使用Undertow Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器 Undertow的特点: 轻量级:它是一个 Web 服务器,但不像传统的 ...
- 一款带Web面板的轻量级、高性能内网穿透工具:nps使用教程
说明:内网穿透工具之前已经介绍了不少了,比如Frp.lanproxy.Holer等,现在再介绍个带Web面板的穿透工具nps,之前叫easyProxy,只是改名了而已,该工具是一款使用go语言编写的轻 ...