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

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

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

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

一、设置非空约束

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. MySQL 整体架构一览

    MySQL 在整体架构上分为 Server 层和存储引擎层.其中 Server 层,包括连接器.查询缓存.分析器.优化器.执行器等,存储过程.触发器.视图和内置函数都在这层实现.数据引擎层负责数据的存 ...

  2. MATLAB神经网络(4) 神经网络遗传算法函数极值寻优——非线性函数极值寻优

    4.1 案例背景 \[y = {x_1}^2 + {x_2}^2\] 4.2 模型建立 神经网络训练拟合根据寻优函数的特点构建合适的BP神经网络,用非线性函数的输入输出数据训练BP神经网络,训练后的B ...

  3. 《52讲轻松搞定网络爬虫》读书笔记 —— HTTP基本原理

    URI 和 URL URI :Uniform Resource Identifier,即统一资源标志符, URL :Universal Resource Locator,即统一资源定位符. 举栗子,加 ...

  4. SpringBoot2整合Shiro报错 UnavailableSecurityManagerException: No SecurityManager accessible to the calling code 【已解决】

    SpringBoot集成Shiro报错 UnavailableSecurityManagerException: No SecurityManager accessible to the callin ...

  5. 【Python】2.14&2.15学习笔记 运算符与表达式

    太爽了,今天可以尽情熬夜了,明天不上课,可以学一整天\(Python\) 运算符 \(+,-,*,%\)就不说了,说几个和\(c\)不太一样的 除法 print( 5/3 ) 输出了\(1.66666 ...

  6. 多个文件名大小写不同,是因为运行代码是大写E,用vscode运行的是小写e,解决方案:手动npm run dev #There are multiple modules with names that only differ in casing.

    多个文件名大小写不同,是因为运行代码是大写E,用vscode运行的是小写e,解决方案:手动npm run dev #There are multiple modules with names that ...

  7. JavaScript(8)--- 闭包

    JavaScript(8)--- 闭包 理解闭包 我的理解是:闭包就是能够读取其他函数内部变量的函数.由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以简单这样理解 &q ...

  8. 微信开发+百度AI学习:植物识别

    直接上代码 服务端代码如下 private static readonly Baidu.Aip.ImageClassify.ImageClassify client = new Baidu.Aip.I ...

  9. webpack打包es6代码

    1.简单描述一下es6的模块导入和导出的语法: //导出:export var aa = 10;export function demo(){} //不能写成:var aa = 10;export a ...

  10. OpenCV-Python 绘图功能 | 七

    目标 学习使用OpenCV绘制不同的几何形状 您将学习以下功能:cv.line(),cv.circle(),cv.rectangle(),cv.ellipse(),cv.putText()等. 代码 ...