完整性:指数据库的准确性和一致性。

约束:是在表中定义的用于维护数据库完整性的一些规则。

主键:给某一个字段来唯一标识所有记录,值是唯一的,非空的

外键:多个表之间参照的完整性。

一、设置非空约束

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所支持的完整性约束

  1. 设置非空约束,含义:设置字段不能为空值

2.设置字段默认值,含义:当为数据库表中插入一条新记录时;如果没有为某个字段赋值那么数据库会自动为这个字段插入默认值。

3.设置唯一约束;含义:设置不允许重复,保证不能重复

4.设置主键约束;含义:表示该字段可以唯一的表示所有记录

5.设置字符自动增长;含义:一个数据库表中只能有一个字段使用该约束,该字段类型必须是整形

6.设置外键约束;含义:外加约束则保证多个表之间的参照完整性构建两个表的两个字段之间的关系

字段值自动增长的优点

  当为数据库表中插入新纪录时,字段上的值会自动生成唯一的ID

设置字段的默认值有什么优点

如果没有为某个字段赋值那么数据库会自动为这个字段插入默认值。

 

MySQL操作表的约束的更多相关文章

  1. mysql 外键约束备注

    梳理mysql外键约束的知识点. 1.mysql外键约束只对InnoDb引擎有效: 2.创建外键约束如下: DROP TABLE IF EXISTS t_demo_product; CREATE TA ...

  2. MySQL外键约束On Delete、On Update各取值的含义

    主键.外键和索引的区别?   主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 主索引(由关键字PRIMARY定义的索引) ...

  3. MySQL之外键约束

    MySQL之外键约束 MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: [CONSTRAINT [symbo ...

  4. Mysql表的约束设计和关联关系设计

    https://blog.csdn.net/u012750578/article/details/15026677 Mysql表的约束设计和关联关系设计 ======================表 ...

  5. mysql 外键约束及表关联

    一.MYSQL中的约束 1.主键:primary key 唯一非空的特性并且可以优化查询速度 2.外键:foreign key 外键的作用保证2个或2个以上的数据表的数据一致性和完整性 3.唯一:un ...

  6. MySql中的约束

    mysql中的约束使用和oracle使用差别不大. 1.主键约束 如同人对应身份证,主键能够唯一地标识表中的一条记录,可以结合外键来定义数据表之间的关系. 主键约束要求主键列的数据唯一,并且不允许为空 ...

  7. 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引

    一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...

  8. Mysql 主键约束PrimaryKey

    Mysql 主键约束Primary Key 今天来简单的讲一下主键约束. 假如有一张学生信息表,里面记录了学生的学号 ,姓名,成绩等,那么,会不会有两个学号相同的学生,答案肯定是否定的,如果有的话也只 ...

  9. mysql外键约束总结

    总结三种MySQL外键约束方式 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是 ...

随机推荐

  1. golang的sync.WaitGroup使用示例

    下面一段代码 len(m) 不一定会打印为 10,为什么?.如果想要 len(m) 打印为 10,应该怎么修改代码? func main() { const N = 10 m := make(map[ ...

  2. JAVAEE学习day01

    1.二进制和十进制之间的转换: 十进制转换成二进制: 除2取余,从下往上吧余数拼接 二进制转换十进制: 1 0 1 0 8 4 2 1 把有1位的十进制求和 2.JAVA语言跨平台的原理 java程序 ...

  3. javaScript 基础知识汇总 (十)

    1.New Function 语法:let func = new Function ([arg1[, arg2[, ...argN]],] functionBody) //无参数示例: let say ...

  4. 创建Sphinx + GitHub + ReadtheDocs托管文档

    最新博客链接 "Tsanfer's Blog" 创建Sphinx + GitHub + ReadtheDocs托管文档 Readthedocs在线电子书链接

  5. Spring Data JPA 自定义对象接收查询结果集

    Spring Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和 ...

  6. vnpy源码阅读学习(7):串在一起

    串在一起 我们已经分析了UI.MainEngine.EventEngine.然后他们几个是如何发挥作用的呢?我总结了一张图: 我们来具体的看看UI部分是如何跟EventEngine穿插起来的 \exa ...

  7. POJ1780 欧拉路+手写栈解决爆战问题

    题目链接:http://poj.org/problem?id=1780 本题中给出一个位数n,要求给出一个10^n+n-1位数的数,要求每个n位的数都要在里面出现,一个n位的数一共有10^n种,我们容 ...

  8. ysoserial分析【二】7u21和URLDNS

    目录 7u21 gadget链分析 hashCode绕过 参考 URLDNS 7u21 7u21中利用了TemplatesImpl来执行命令,结合动态代理.AnnotationInvocationHa ...

  9. 使用toString()检测对象类型

    可以通过toString() 来获取每个对象的类型.为了每个对象都能通过 Object.prototype.toString() 来检测,需要以 Function.prototype.call() 或 ...

  10. Keras实现RNN模型

    博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/10940123.html 这篇文章主要介绍使用Keras框架来实现RNN家族模型,TensorFl ...