数据库约束分类及主键约束作用解析

配资网 阅读: 2024-08-29
后台-插件-广告管理-内容页头部广告(手机)

好,简单地讲,这个数据库约束就是要我们别瞎搞,该怎么做就在数据库里怎么弄,这样就能保证那些数字稳妥、顺利。咱今天就要聊聊这种约束怎么让数据变得井井有条的。

在这里插入图片描述

主键约束:数据的身份证

主键就是数据的唯一标识!不能少,也不能重复,否则数据库就蒙圈了。所以,各个表都要搞个专属于它的主键,这样才能保证数据无误呀~

create table stu1(
  id int primary key,
  name varchar(20)
)

create table stu1(
  id int ,
  name varchar(20),
  primary key(id)
)

别傻傻地用名字或年纪做主键,还得经常排查重名问题。实际上,大多数表格里还有专门用来识别的"ID"字段,这个才是真正的主键。这样一来,不管你怎么调整里面的数据,“ID”永远都是独一无二的,就不用担心出错。

create table stu1(
  id int ,
  name varchar(20),
)
alter table stu1 add CONSTRAINT stu1_pk primary key(id) 
# stu1_pk 约束名,可有可无

非空约束:数据不能空着

在这里插入图片描述

ALTER TABLE 表名 DROP PRIMARY KEY;

这就叫非空约束,就是不能啥都别写就放那边儿的意思。比如说我们常填的表格,你能让名字那个单元格空着不管么?就是这个理儿,所以有的地方就不能随便空了。

# 删除stu1表的主键
ALTER TABLE stu1 DROP PRIMARY KEY;

有时候会忘了填写某个地方或留下空白,但有个提醒跳出来告诉你不行,得赶快补充好嘿嘿~这样做,咱们的数据就能够更精准全面

列名 数据类型  primary key auto_increment 
自动增长字段类型必须是整数类型

唯一约束:数据不能重复

/*创建学生表stu2, 包含字段(id, name, age)。将id做为主键并自动增长*/
CREATE TABLE stu2 (
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(20),
	age INT
    );
-- 插入数据
-- 主键默认从1开始自动增长
INSERT INTO stu2(NAME, age) VALUES ('唐僧', 22);
INSERT INTO stu2(NAME, age) VALUES ('孙悟空', 26);
INSERT INTO stu2(NAME, age) VALUES ('猪八戒', 25);
INSERT INTO stu2(NAME, age) VALUES ('沙僧', 20);

让每个数字都独一无二,就像是每个人的身份证号那样对?那么在数据库中设立一个唯一约束,让各个领域的数字都能确保不可重复,这样就不必烦恼会有重复的情况发生咯。

在这里插入图片描述

alter table 表名modify 主键列列名 数据类型 auto_increment

有时候咱们会手滑输错资料或有意试探重复输入。有了这个唯一约束功能,数据库立马告诉你这字段不能重复,赶紧修正避免出错!这样做可以让我们的数据变得更加精准喔!

CREATE TABLE stu2 (
	 id INT PRIMARY KEY,
	 NAME VARCHAR(20),
	 age INT
    );
alter table stu2 modify id int auto_increment;

在这里插入图片描述

默认约束:数据有个默认值

ALTER TABLE 表名 AUTOINCREMENT=起始值;

默认的设置就是那个性别选项没填的话,默认值会自动变成'未知'!所以,只要这么设好,就算忘了填写,那栏也不会空着啦~

这个功能可以让咱们的资料库自己帮忙补全缺失的空格,以后信息就不会不完整了!

truncate table 表名

在这里插入图片描述

外键约束:数据的关系

啥是外键,简单说就让每个部门都能找到"另一半",就好比咱们找对象,要能跟公司里别的表格对得上号!这么一搞,数据库就能防止数据乱串门了,别再把谁都当亲戚。

delete from stu2;

有时候我们可能淘气捣蛋,瞎填些不良信息。别怕,外键约束会帮你检查这个问题,还会提醒你,某个字段的值要跟其他表格里的对得上才行!

检查约束:数据的规则

在这里插入图片描述

校验约束,就是确保你输入的数字得满足一些要求。比如说你的年纪,总不可能是负的?数据库也是一样,有了这个约束,我们就能规定每个字段该怎么填写,这样所有数据就都规规矩矩~

truncate table stu2;

八戒策略_八戒规则_八戒玩法思路

一加上检查约束这东西,数据库当即就告诉你:那个字段的值得改!赶紧去搞定它吧~

主键自增:数据的自动编号

# 重新添加数据
INSERT INTO stu2(NAME, age) VALUES ('唐僧', 22);
INSERT INTO stu2(NAME, age) VALUES ('孙悟空', 26);
INSERT INTO stu2(NAME, age) VALUES ('猪八戒', 25);
INSERT INTO stu2(NAME, age) VALUES ('沙僧', 20);

升级,就是自动加的比如订单号,慢慢地就会往上提。数据库也一样,有了它就不用一个个输入数字。

在这里插入图片描述

使用自动增长的主键就OK,放心交给你的数据库去处理!这下子,数据准确性跟可靠性可高多

字段名 字段类型 NOT NULL

修改表:数据的调整

# 创建表学生表stu3,包含字段(id,name,gender) ,其中name不能为NULL
CREATE TABLE stu3 (
	  id int,
	  name varchar(20) NOT NULL,
	  gender char(1)
    );
INSERT INTO st8 VALUES (1, '张三', '男');
INSERT INTO st8 VALUES (2, '李四', '男');
INSERT INTO st8 VALUES (3, '王五', '男');
INSERT INTO st8 VALUES (4, '赵六', '男');
-- 姓名不赋值出现姓名不能为null: Column 'name' cannot be null
INSERT INTO st8 VALUES (5, NULL, '男');

改表格真简单,直接拉伸或者删减就好!想加点啥字段,删点啥都没问题!这个功能可是太棒了,随心所欲调整,再也不怕破坏表格结构喽!

有时候表格看着不顺眼怎么办?别急,试试"修改表"功能。随便你怎么改,不用再傻乎乎地重建了。这么一变,数据就灵活又稳当咯~

alter table 表名 modify 列名 数据类型 not null

级联操作:数据的联动

CREATE TABLE stu3 (
	 id int,
	 name varchar(20) NOT NULL,
	 gender char(1)
  );
alter table stu3 modify name varchar(20) not null;

这又是什么新鲜故事呀?没错,这就是你常听说的“级联操作”!简而言之,就是只要你改动了主表格的信息,副表格的数据也会跟着改变。比如,假如你在‘部门’表格中改了个ID,那与它相关的‘员工’表格中的信息也会自动更新。这其实就是利用了我们数据库的原理,有了这个功能,以后就不用再费劲地手动修改众多信息了,真的轻松很多!

有时候手抖或搞怪可能犯错,别怕,咱们有个靠得住的小伙伴——级联操作用它来解决数据库里的小问题,不用再为数据乱七八糟而烦恼了!

列名 数据类型 UNIQUE

创建stu4表,包含字段(id, name,email) ,email这一列设置唯一约束,不能重复。
CREATE TABLE stu4 (
	id INT primary key,
	NAME VARCHAR(20),
email varchar(200) unique
)
insert into stu4 values(1,'张三','zs@aaa.com');
insert into stu4 values(2,'李四','ls@aaa.com');
insert into stu4 values(3,'王五','ww@aaa.com');
-- Duplicate entry 'zs@aaa.com' for key 'stu4.email'  email 重复
insert into stu4 values(4,'赵六','zs@aaa.com');

本文 融资融券杠杆炒股 原创,转载保留链接!网址:http://www.bkaao.cn/zmt/184.html

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索