MySQL学习笔记4:完整性约束限制字段_Mysql

完整性约束是对字段进行限制,从而符合该字段达到我们期望的效果比如字段含有默认值,不能是NULL等
直观点说:如果插入的数据不满足限制要求,数据库管理系统就拒绝执行操作
设置表的主键
主键能够标识表中每条信息的唯一性,如同身份证号码和人的关系
人可以同名,但是身份证号码却是唯一的,
创建主键的目的在于快速查找到表中的某一条信息
单字段主键

复制代码 代码如下:

mysql> create table student(
-> id int primary key,
-> name varchar(20),
-> sex boolean
-> );
Query OK, 0 rows affected (0.09 sec)

创建了三个字段,其中id为主键
多字段主键
多字段主键由多个属性组合而成,在属性定义完之后统一设置主键

复制代码 代码如下:

mysql> create table student2(
-> id int,
-> course_id int,
-> score float,
-> primary key(id,course_id)
-> );
Query OK, 0 rows affected (0.11 sec)

student2表有三个字段,其中id和course_id的组合可以确定唯一的一条记录
设置表的外键
表的外键与主键是相对应的,比如表A中的id是外键,表B中的id是主键
那么就可以称表B为父表,表A为子表
设置表外键的作用在于建立与父表的联系,比如表B中id为123的学生删除后,表A中id为123的记录也随着消失
这样做的目的在于保证表的完整性

复制代码 代码如下:

mysql> create table student3(
-> id int primary key,
-> course_id int,
-> teacher varchar(20),
-> constraint fk foreign key(id,course_id)
-> references student2(id,course_id)
-> );
Query OK, 0 rows affected (0.12 sec)

这里创建student3表,constraint后面的fk是外键别名,foreign key也就是设置外键的字段
references后的内容表示父表,和父表中的主键
需要注意的是,父表中的主键不能为空,并且主键和外键的数据类型要一致
设置表的非空约束
非空性很好理解,就是设置表中字段的值不能为空(NULL)
如果在已经设置此约束性条件的字段中插入空值,数据库系统则会报错

复制代码 代码如下:

mysql> create table student4(
-> id int not null,
-> name varchar(20),
-> sex boolean
-> );
Query OK, 0 rows affected (0.10 sec)

这里的not null就是约束条件
设置表的唯一性约束
唯一性是指表中该字段的值不能重复出现,设置表的唯一性约束
也就是给表中某个字段加上unique

复制代码 代码如下:

mysql> create table student5(
-> id int unique,
-> name varchar(20)
-> );
Query OK, 0 rows affected (0.10 sec)

此处id字段便不可重复
设置表的属性值自动增加
auto_increment主要用于为表中插入的新记录自动生成唯一的ID
一个表只能有一个字段使用auto_increment约束
并且该字段必须为主键的一部分

复制代码 代码如下:

mysql> create table student6(
-> id int primary key auto_increment,
-> name varchar(20)
-> );
Query OK, 0 rows affected (0.12 sec)

这里的id是主键,并且会自动增加id值,比如1,2,3,4……
需要注意的是,auto_increment约束的值必须是整数类型
设置表中属性的默认值
在表中插入一条新的记录时,如果没有为该字段赋值
那么数据库系统会自动为该字段赋上一条默认值

复制代码 代码如下:

mysql> create table student7(
-> id int primary key,
-> score int default 0
-> );
Query OK, 0 rows affected (0.10 sec)

时间: 2024-07-31 10:39:10

MySQL学习笔记4:完整性约束限制字段_Mysql的相关文章

MySQL学习笔记之数据的增、删、改实现方法_Mysql

本文实例讲述了MySQL学习笔记之数据的增.删.改实现方法.分享给大家供大家参考,具体如下: 一.增加数据 插入代码格式: insert into 表明 [列名-] values (值-) create table test21(name varchar(32)); insert into test21 (name) values ('huangbiao'); 插入原则: 1.插入的数据应与字段的数据类型相同 2.数据的大小应该在列的规定范围内 3.在values中列出的数据位置必须与被加入的列

MySQL学习笔记之数据定义表约束,分页方法总结_Mysql

本文实例讲述了MySQL学习笔记之数据定义表约束,分页方法.分享给大家供大家参考,具体如下: 1. primary key 主键 特点:主键是用于唯一标识一条记录的约束,一张表最多只能有一个主键,不能为空也不能重复 create table user1(id int primary key,name varchar(32)); mysql> insert into user1 values(1,'hb'); Query OK, 1 row affected (0.10 sec) mysql>

MySQL学习笔记之创建、删除、修改表的方法_Mysql

本文实例讲述了MySQL学习笔记之创建.删除.修改表的方法.分享给大家供大家参考,具体如下: 创建表: create table users( id int, name varchar(64), sex bit(1), birthday date, Entry_date date, job varchar(32), salary float, resume text ); 1 添加列: alter table 表名 add 列名 数据类型 alter table users add image

Mysql学习笔记(六)增删改查

原文:Mysql学习笔记(六)增删改查 PS:数据库最基本的操作就是增删改查了... 学习内容: 数据库的增删改查 1.增...其实就是向数据库中插入数据.. 插入语句 insert into table_name values("要插入的数据"); 比如说,我们先创建一个宠物表,用来记录宠物的基本信息以及所有者... create table pet ( name varchar(20), owner varchar(20), species varchar(20), sex cha

Mysql学习笔记(十一)临时表+视图

原文:Mysql学习笔记(十一)临时表+视图 学习内容: 临时表和视图的基本操作... 临时表与视图的使用范围... 1.临时表   临时表:临时表,想必大家都知道这个概念的存在...但是我们什么时候应该使用到临时表呢?当一个数据库存在着大量的数据的时候,我们想要获取到这个数据集合的一个子集,那么我们就可以使用临时表来保存我们想要的数据..然后对临时表进行操作就可以了...使用临时表必然是有原因的..使用临时表会加快数据库的查询性能.... create temporary table tmp_

Mysql学习笔记(一)数据类型

原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m) 一个字节 范围(-128~127)     smallint(m) 两个字节 范围(-32768~32767)     mediumint(m) 三个字节 范围(-8388608~8388607)     int(m) 四个字节 范围(-2147483648~2147483647)     bi

Mysql学习笔记(十)存储过程与函数 + 知识点补充(having与where的区别)

原文:Mysql学习笔记(十)存储过程与函数 + 知识点补充(having与where的区别) 学习内容:存储程序与函数...这一章学的我是云里雾里的... 1.存储过程...   Mysql存储过程是从mysql 5.0开始增加的一个新功能.存储过程的优点其实有很多,不过我觉得存储过程最重要的优点就是实现了SQL代码的封装,那么我们为什么需要封装SQL语句呢?原因就是当我们在面对一个庞大的数据库的时候,当我们使用外部程序去访问数据库的时候...我们总不能在外部程序中内嵌很多的SQL语句吧...

Mysql学习笔记(十四)备份与恢复

原文:Mysql学习笔记(十四)备份与恢复 学习内容: 1.数据库的重要数据备份... 2.什么时候需要使用到数据库备份.. 3.如何恢复备份的数据..   1.备份: 说到备份,相比大家都不应该陌生,比如说我们平时在为我们的电脑重新做系统的时候,那么我们保存在电脑里的重要文件我们都需要进行备份..或者是当我们在使用一键还原系统的时候,我们也需要进行备份..那么数据库也不例外,我们需要对数据库里面保存的重要数据进行备份..比如说一个大型的企业,那么必然会有自己的一个大型数据库,那么数据库管理员必

Mysql学习笔记(八)索引

原文:Mysql学习笔记(八)索引 PS:把昨天的学习内容补上...发一下昨天学的东西....五月三日...继续学习数据库... 学习内容: 索引.... 索引的优点: 1.通过创建唯一索引,可以保证数据库每行数据的唯一性... 2.使查找的速度明显加快... 3.当使用分组和排序进行查询时,可以缩短时间... 索引的缺点: 1.维护索引需要耗费数据库的资源... 2.索引需要占用磁盘空间... 3.对表进行增删改的时候,由于索引的存在,时间会有所增加... 索引的分类... 普通索引和唯一索引

Mysql学习笔记(七)查(补充)

原文:Mysql学习笔记(七)查(补充) PS:五一还是要学习...虽然有点苦逼..但是路是自己选的,那么自己就要坚持的走下去... 学习内容: 1.数据库查找的补充... 查找涉及的东西比较多,在上一个章节没有完全介绍...我们还是以pet表格为例,在这里进行补充.... 模式匹配:   所谓模式匹配,无非就是按照某种模式进行查找...我们给出的一个模范,然后按照这个模范进行匹配完成的查找就属于模式匹配查找...模式匹配的查找中,我们不能够使用=或!=来操作,应该使用like或not like