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

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

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

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

一、设置非空约束

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

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

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

 

最新文章

  1. 微信js框架第二篇(创建完整界面布局)
  2. virtualbox
  3. jsrender for object
  4. VISUAL STUDIO 调试
  5. sigemptyset,sigfillset,sigaddset,sigdelset,sigismember,sigprocmask,sigpendmask作用
  6. Machine Learning - 第6周(Advice for Applying Machine Learning、Machine Learning System Design)
  7. 极其简单的帮你理解ORM中的关联关系
  8. AirPods 2 & Android
  9. Fragment已经被added了导致的异常。
  10. Commander
  11. Resin安装配置
  12. STM32CubeMX的串口配置,以及驱动代码
  13. js 编辑数组
  14. Linux ACL 权限
  15. Linux添加目录到环境变量以及添加sublime到环境变量
  16. ThinkPHP3.2 where方法的使用
  17. BZOJ 1503 郁闷的出纳员(splay)
  18. RHEL 7.6 安装 Oracle 18c RAC
  19. gulp4.0 存在的错误信息 The following tasks did not complete: default,Did you forget to signal async completion?
  20. 安装odoo过程中出现的问题

热门文章

  1. 超强图文|并发编程【等待/通知机制】就是这个feel~
  2. Spring注解 - 组件的注册
  3. Chrome调试工具常用功能
  4. 奇思妙想-java实现另类的pipeline模式
  5. python高阶函数&异常处理
  6. java之AQS和显式锁
  7. TensorFlow 趣题
  8. 我的Keras使用总结(3)——利用bottleneck features进行微调预训练模型VGG16
  9. Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境)
  10. 使用TensorFlow v2.0构建多层感知器