数据库约束分类及主键约束作用解析
后台-插件-广告管理-内容页头部广告(手机) |
好,简单地讲,这个数据库约束就是要我们别瞎搞,该怎么做就在数据库里怎么弄,这样就能保证那些数字稳妥、顺利。咱今天就要聊聊这种约束怎么让数据变得井井有条的。
主键约束:数据的身份证
主键就是数据的唯一标识!不能少,也不能重复,否则数据库就蒙圈了。所以,各个表都要搞个专属于它的主键,这样才能保证数据无误呀~
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.作者投稿可能会经我们编辑修改或补充。
后台-插件-广告管理-内容页尾部广告(手机) |