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

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

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

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

一、设置非空约束

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. js 数组一些简单应用

    把两个数组连接成按从小到大的一个数组例如: var allowVlan = '23-25,45,4-6,67,50-53'; var unTagVlan = '1-5'; 完成时应该是1-6,23-2 ...

  2. 菜鸟对java和Go的理解

    1.go对比java go通过结构体嵌套+接口实现类似面向对象中的继承和多态.个人认为尤其是go的接口抓住了多态的本质.而Go提倡的面向接口的思想也可能使得架构上更加解耦. 2.关于Go不要通过共享内 ...

  3. 测试必知必会系列- Linux常用命令 - cp

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 复制文 ...

  4. linux相关的帮助文档

    几乎所有linux发行版都会提供大量的有用的文档. 手册页 linux发行版包含了有关常用命令.系统调用和库函数的手册页.手册页被分成不同的章节并分别标以序号: Section      名称     ...

  5. vs2017打包exe安装包

    1,安装扩展程序Install Projects 2,在打开的界面搜索Install,找到Install Projects 3,在要打包的项目解决方案下创建一个生成exe的项目 4,在打包项目的文件系 ...

  6. 手动生成WebService代理类

    方式一: 手动生成WebService代理类需要把一句生成语句,如 wsdl.exe /l:cs /out:D:/ProxyServices.cs http://localhost/WebServic ...

  7. [BJDCTF 2nd]old-hack

    进入首页: 首页告诉了我们是thinkphp5的漏洞. 知道了是哪个版本的话就搜一搜喽:最后发现是thinkphp5.0.23的命令执行 payload_1:查看根目录文件,发现flag位置 http ...

  8. drf的频率认证

    频率认证源码分析 APIView --->dispatch方法--->self.initial(request, *args, **kwargs)---> self.check_th ...

  9. CTF_WriteUp_HTTP基本认证(Basic access authentication)

    HTTP基本认证 在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供用户名和密码 的一种方式.HTTP基本认证 ...

  10. sql-lib闯关51-60

    第五十一关 这一关和三十八关基本一样 ,堆叠注入问题  只不过是字符型                  ?sort=1';create table test51 like users;%23 看数据 ...