您的位置:首页 > 娱乐 > 明星 > 廊坊seo培训_国家企用信用信息公示系_品牌传播策划方案_百度免费推广方法

廊坊seo培训_国家企用信用信息公示系_品牌传播策划方案_百度免费推广方法

2024/12/23 12:38:26 来源:https://blog.csdn.net/m0_74124657/article/details/143452673  浏览:    关键词:廊坊seo培训_国家企用信用信息公示系_品牌传播策划方案_百度免费推广方法
廊坊seo培训_国家企用信用信息公示系_品牌传播策划方案_百度免费推广方法

目录

约束的分类

分类

注意

主键约束

添加主键约束

1 建表时,添加

1.1创建表:定义列时指定

1.2 创建表:定义列之后独立指定主键:

2 建表后使用alter  关键字添加

删除约束

在主键添加自动增长属性

疑问

1 建表时添加

2 建表后添加

3 创表之后添加自动增长可以使用关键字 modify/change

关键字 modify/change 的联系

modify

change

主键的特点

唯一约束

实例代码

非空约束

实例代码

发现

总结


约束的分类

分类

主键约束(primary key):唯一且不是null ,每张表,最多只能有一个主键约束

唯一约束(unique):唯一,每一张可以有多个唯一约束

非空约束:不为null

默认约束:保存数据时,如果未指定该字段的值/ 你不添加数据时,则使用默认值

外键约束(foreign key):用于让两张表建立连接,保证数据的一致和完整性

检查约束(check 8.0.16版本之后,才可以被正常使用):为了使该字段满足一定的条件

注意

  • 约束是作用在表的字段(该列)上的
  • 添加约束,可以在建表时/建完表之后添加约束

主键约束

添加主键约束

1 建表时,添加

1.1创建表:定义列时指定

代码如下

CREATE TABLE stu (sid CHAR(6) PRIMARY KEY,sname VARCHAR (20),age INT,gender VARCHAR (10)
) ;
1.2 创建表:定义列之后独立指定主键:

代码如下

CREATE TABLE stu (sid CHAR(6),sname VARCHAR (20),age INT,gender VARCHAR (10),PRIMARY KEY (sid)
) ;

2 建表后使用alter  关键字添加

ALTER TABLE stu ADD PRIMARY KEY(sid);

删除约束

应用场景:一般发生在建表之后

ALTER TABLE stu DROP PRIMARY KEY;

在主键添加自动增长属性

疑问

注意 :我不知道大家有没有一种疑惑 ,潜意识把自动增长当成主键本身自带的属性

实际上这种说法,是有问题的,以下是关于主键和自动增长的区别和联系

主键(Primary Key)本身并不具有自增(AUTO_INCREMENT)的功能。主键是一种约束,用于确保数据的唯一性和非空性,而自增是一种特殊的属性,用于在插入新记录时自动生成唯一的数值。

以下是主键和自增属性的区别和联系:

  1. 主键(Primary Key)

    • 主键是一种表级别的约束,用于标识表中的每一行记录。
    • 主键列中的值必须是唯一的,且不能为NULL。
    • 主键可以是单个列或多个列的组合(复合主键)。
  2. 自增(AUTO_INCREMENT)

    • 自增是一种列级别的属性,用于在插入新记录时自动生成唯一的数值。
    • 自增属性通常用于整数类型的列,如INT或BIGINT。
    • 自增属性可以简化数据插入过程,无需手动指定主键值。
  3. 联系

    • 虽然主键和自增是两个不同的概念,但它们经常一起使用。
    • 将自增属性应用于主键列是一种常见的做法,这样可以确保主键值的唯一性和自动生成。
    • 但是,并非所有主键列都需要自增属性。例如,如果主键是基于业务逻辑生成的唯一标识符(如UUID),则不需要自增属性。
  4. 为什么需要额外添加AUTO_INCREMENT

    • 主键约束只保证数据的唯一性和非空性,但不会自动生成值。
    • 自增属性提供了一种方便的方式来自动生成唯一的主键值,特别是在插入新记录时。
    • 如果主键列不是自增的,你需要在插入新记录时手动指定主键值,这可能会导致数据插入的复杂性和错误。

1 建表时添加

写法1 

CREATE TABLE stu (sid int   auto_increment ,sname VARCHAR (20),age INT,gender VARCHAR (10),PRIMARY KEY (sid)
) ;

写法2

CREATE TABLE stu (sid int  primary key auto_increment ,sname VARCHAR (20),age INT,gender VARCHAR (10)) ;

我插入数据

INSERT INTO stu (sname, age, gender) VALUES ('tom1',18,'男'),('jack',19,'女'),('lisa',20,'男'),('tomCat',18,'女'),('dj',16,'男');

最终结果

2 建表后添加

CREATE TABLE stu (sid int  primary key ,sname VARCHAR (20),age INT,gender VARCHAR (10)) ;

注意:假设你不添加自动增长,而是直接插入,这会因为没有默认约束而出现错误

3 创表之后添加自动增长可以使用关键字 modify/change

关键字 modify/change 的联系

相同的: 都可以修改字段的类型和属性

不同点:change 可以改变字段名

modify

格式

alter table 表名 modify 字段名 字段类型   [ 属性];

alter table stu modify sid int  auto_increment;
change

格式

alter table 表名 change  原本字段名   现在的字段名   字段类型   [ 属性];

alter table stu change sid sid int auto_increment;

插入数据,展示最终结果

主键的特点

1 包含非空 约束和唯一约束,防止出现数据的冗余

注意:如果在插入数据时,确实存 在大量相同的数据时 如 学生表 和班级表 / 员工表和职位表。。应该使用外键。这个下一篇博客会提到。

2 在实际 工作中,我们给表添加主键时,往往被添加的字段,对该表不受影响

原因;是不希望在插入数据时,因为主键约束而无法添加成功

唯一约束

实例代码

// 创建stu 表CREATE TABLE stu (sid int  primary key auto_increment ,sname VARCHAR (20)  unique ,age INT not null,gender VARCHAR (10) default '男') ;
// 向stu表插入数据
INSERT INTO stu (sname, age, gender) VALUES ('tom1',18,'男'),('jack',19,'女'),('lisa',20,'男'),('tomCat',18,'女'),('tom1',18,'男'),('dj',16,'男');
select  *from stu;

大家发现,我给sname 字段 添加唯一约束 ,如果我插入相同 会因为唯一约束报错

非空约束

实例代码

//创建 stu表
CREATE TABLE stu (sid int  primary key auto_increment ,sname VARCHAR (20) unique ,age INT not null,gender VARCHAR (10) default '男') ;
//插入数据
INSERT INTO stu (sname, age, gender) VALUES ('tom1',null,'男');

大家发现,我给age 字段 添加非空约束 ,如果我插入null 会因为非空约束报错

总结

本篇博客,介绍了约束的组成和添加约束时不同的场景,下一篇博客介绍 外键 内容

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com