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称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是 ...
随机推荐
- NLP(二十六)限定领域的三元组抽取的一次尝试
本文将会介绍笔者在2019语言与智能技术竞赛的三元组抽取比赛方面的一次尝试.由于该比赛早已结束,笔者当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集.但是,这并不耽误我们在这 ...
- Intel优化Gen7驱动代码 Geekbench 5性能猛增
Linux下缺少大量开发.支持是会导致各种奇葩的错误的,Intel日前就提交了一个代码修复,22nm Ivybridge及Haswell处理器的GeekBench 5的性能就提升了330%. 3.3倍 ...
- 7.vue前台配置、插件、组件
目录 luffy前台配置 axios前后台交互 cookies操作 element-ui页面组件框架 bootstrap页面组件框架 luffy前台配置 axios前后台交互 安装:前端项目目录下的终 ...
- go源码分析(一) 通过调试看go程序初始化过程
参考资料:Go 1.5 源码剖析 (书签版).pdf 编写go语言test.go package main import ( "fmt" ) func main(){ fmt.Pr ...
- 分享几个 PHP 编码的最佳实践
对于初学者而言,可能很难理解为什么某些做法更安全. 但是,以下一些技巧可能超出了 PHP 的范围. 始终使用大括号 让我们看下面的代码: if (isset($condition) && ...
- VS配置C++依赖包
处理好三个东西 1.头文件,Configuration Properties → VC++ Directories → Include Directories 2.静态库,Configuration ...
- 14. java基于excel模板导出excel=>使用jxls最新版(注意点)
注意点:如下: jxls官网:http://jxls.sourceforge.net/getting_started.html
- Java并发编程之CAS第三篇-CAS的缺点及解决办法
Java并发编程之CAS第三篇-CAS的缺点 通过前两篇的文章介绍,我们知道了CAS是什么以及查看源码了解CAS原理.那么在多线程并发环境中,的缺点是什么呢?这篇文章我们就来讨论讨论 本篇是<凯 ...
- Salesforce LWC学习(十四) Continuation进行异步callout获取数据
本篇参考: https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.apex_continua ...
- 【洛谷P1801】黑匣子——优先队列
题目链接 一道有点意思的题目 我们可以维护两个优先队列:pqmin和pqmax 其中 pqmin 是小根堆, pqmax 是大根堆 每次 add 一个数字,则将数字推入到 pqmin 中 每次 get ...