当前位置: 首页 > news >正文

数据库表约束完全指南:提升数据完整性和准确性

数据库表约束完全指南:提升数据完整性和准确性

在数据库设计中,表约束是确保数据完整性和准确性的关键工具。本文将详细介绍各种类型的表约束及其使用方法,包括非空约束、唯一约束、主键约束、外键约束、默认值约束、检查约束以及自动递增约束。

1. 非空约束(NOT NULL)

1). 定义和目的

定义:非空约束(NOT NULL)是一种数据库表约束,它要求表中指定的列不能包含 NULL 值。

目的:非空约束的主要目的是确保数据库表中某些列总是包含有效的数据。这有助于防止数据缺失,确保数据的完整性,并且在查询和数据分析时提供更准确的结果。

2). 如何使用

非空约束可以在创建表时直接定义,也可以在表创建后通过修改表结构来添加。

创建表时定义 :

CREATE TABLE customers (customer_id INT NOT NULL,first_name VARCHAR(50) NOT NULL,last_name VARCHAR(50) NOT NULL
);

在这个例子中,customer_idfirst_namelast_name 字段都被定义为非空字段。

修改表结构添加非空约束

如果表已经存在,你可以使用 ALTER TABLE 语句来添加非空约束:

ALTER TABLE customers
MODIFY first_name VARCHAR(50) NOT NULL;

这个例子将 first_name 字段修改为非空字段。

3). 影响和注意事项

数据插入:当非空约束应用于某个字段时,任何尝试插入 NULL 值到该字段的操作都会失败,数据库将返回错误。

数据更新:同样,任何尝试将非空字段更新为 NULL 的操作也会失败。

默认值:如果一个字段有默认值并且该字段没有非空约束,那么在插入记录时不指定该字段的值,数据库将使用默认值。但如果字段有非空约束,即使有默认值,也必须在插入记录时明确指定该字段的值。

性能:非空约束有助于数据库优化查询性能,因为数据库知道这些列总是包含数据,不需要额外的空值检查。

数据迁移和兼容性:在进行数据迁移或处理来自其他系统的数据显示时,非空约束有助于确保数据的一致性和兼容性。

4). 特殊情况

与其他约束结合使用:非空约束经常与其他约束(如唯一约束、主键约束等)结合使用,以进一步确保数据的唯一性和完整性。

空字符串与NULL:需要注意的是,非空约束防止的是 NULL 值,而不是空字符串('')。在某些情况下,空字符串可能被视为有效的数据,因此需要根据具体的业务逻辑来决定是否接受空字符串。

通过理解和正确使用非空约束,数据库设计者和开发者可以确保数据库中的数据更加可靠和可用,从而提高整个系统的稳定性和效率。

复制再试一次分享

2. 唯一约束(UNIQUE)

唯一约束(UNIQUE)是数据库表中用于确保列中的所有值都是唯一的约束。这意味着在任何给定的列或列组合中,不允许有重复的值。唯一约束通常用于标识那些在表中应该是独一无二的字段,如电子邮件地址、电话号码或任何用于区分记录的唯一标识符。

1). 定义和目的

定义:唯一约束保证表中某一列或列组合的值必须唯一,即在整个表中不会有两条记录在该列或列组合上有相同的值。

目的:其主要目的是保证数据的一致性和完整性,确保关键字段的值不会重复,从而避免数据混淆和错误。

2). 如何使用

唯一约束可以在创建表时定义,也可以在现有表上添加。

创建表时定义

CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255) UNIQUE,email VARCHAR(255) UNIQUE
);

在这个例子中,usernameemail 字段都被定义为唯一字段,这意味着任何尝试插入或更新为已存在的 usernameemail 的操作都会失败。

在现有表上添加唯一约束

如果表已经存在,可以使用 ALTER TABLE 语句来添加唯一约束:

ALTER TABLE users
ADD UNIQUE (username);

这个例子将 username 字段添加为唯一字段。

3). 影响和注意事项

数据插入和更新:唯一约束会阻止插入或更新操作产生重复的值。如果尝试插入或更新为已存在的值,数据库将返回错误。

索引:唯一约束通常会自动创建一个唯一索引,这有助于提高查询性能,因为数据库可以快速检查重复项。

空值(NULL):唯一约束列允许有空值(NULL),因为 NULL 不等于自身。因此,可以在唯一约束列中有多个 NULL 值。

性能:虽然唯一约束有助于保证数据完整性,但在大数据量下,它可能会影响插入和更新操作的性能,因为数据库需要检查新插入或更新的值是否唯一。

与其他约束结合使用:唯一约束可以与非空约束(NOT NULL)结合使用,以确保列不仅唯一,而且不能为 NULL

4). 特殊情况

复合唯一约束:可以在多个列上定义唯一约束,这称为复合唯一约束或组合唯一约束。

CREATE TABLE orders (order_id INT AUTO_INCREMENT PRIMARY KEY,customer_id INT,product_id INT,quantity INT,UNIQUE (customer_id, product_id, quantity)
);

在这个例子中,customer_idproduct_idquantity 的组合必须是唯一的,即同一客户不能对同一产品下相同数量的订单。

删除和修改唯一约束:如果需要删除或修改唯一约束,可以使用 ALTER TABLE 语句。

ALTER TABLE users
DROP INDEX username;

这个例子删除了 username 字段上的唯一约束。

通过理解和正确使用唯一约束,数据库设计者和开发者可以确保关键数据的唯一性,从而提高数据的准确性和可靠性。

3. 主键约束(PRIMARY KEY)

主键约束(PRIMARY KEY)是数据库表中的一种特殊约束,用于标识表中的每一行记录。一个表的主键是该表中可以唯一标识每个记录的字段或字段组合。主键是数据库表结构的核心部分,对于数据完整性和表之间的关系至关重要。

1). 定义和目的

定义:主键约束是一个列或一组列,在数据库表中用于唯一标识每条记录。主键字段的值必须唯一,并且不能为 NULL

目的:主键的主要目的是确保表中的数据行的唯一性和完整性。它提供了一种可靠的方法来引用表中的数据,并且是建立表之间关系(外键)的基础。

2). 如何使用

主键约束可以在创建表时定义,也可以在现有表上修改添加。

创建表时定义

CREATE TABLE employees (employee_id INT NOT NULL,first_name VARCHAR(50),last_name VARCHAR(50),PRIMARY KEY (employee_id)
);

在这个例子中,employee_id 被定义为主键,这意味着 employee_id 的值必须是唯一的,并且不能为 NULL

在现有表上添加主键

如果表已经存在,可以使用 ALTER TABLE 语句来添加主键:

ALTER TABLE employees
ADD PRIMARY KEY (employee_id);

这个例子将 employee_id 字段添加为主键。

3). 影响和注意事项

唯一性和非空性:主键字段自动具有唯一(UNIQUE)和非空(NOT NULL)约束。这意味着你不能在主键列中插入重复的值或 NULL 值。

索引:大多数数据库管理系统会自动为主键创建一个唯一索引,这有助于提高检索效率。

性能:主键可以提高数据操作的性能,尤其是在执行联接(JOIN)操作时,因为主键的唯一性使得数据库能够快速定位和访问数据。

复合主键:可以在多个列上定义主键,这称为复合主键或多列主键。

CREATE TABLE orders (order_id INT,customer_id INT,order_date DATE,PRIMARY KEY (order_id, customer_id)
);

在这个例子中,order_idcustomer_id 的组合作为复合主键,确保了每个订单的唯一性。

删除和修改主键:主键一旦定义,就不能再直接删除或修改。如果需要更改主键,通常的做法是创建一个新表,将旧表的数据导入新表,并在新表上定义新的主键。

4). 特殊情况

自增主键:许多数据库管理系统支持自增主键(AUTO_INCREMENT),这是一种特殊的主键,其值在每次插入新记录时自动增加。

CREATE TABLE employees (employee_id INT NOT NULL AUTO_INCREMENT,first_name VARCHAR(50),last_name VARCHAR(50),PRIMARY KEY (employee_id)
);

在这个例子中,employee_id 是自增主键,每次插入新员工记录时,employee_id 的值会自动递增。

主键和外键关系:主键用于定义表内的数据完整性,同时也是定义表之间关系(外键约束)的基础。外键约束引用另一个表的主键,以保证引用的数据完整性。

通过理解和正确使用主键约束,数据库设计者和开发者可以确保数据的唯一性和完整性,提高数据操作的效率,并建立可靠的表间关系。

4. 外键约束(FOREIGN KEY)

外键约束(FOREIGN KEY)是数据库中用于建立两个表之间关联的一种约束。它确保了表中的数据与另一个表中的数据保持一致,从而维护了数据的引用完整性。外键约束是数据库规范化设计中的关键部分,用于避免孤立的数据和数据冗余。

1). 定义和目的

定义:外键约束是一个表中的一个或多个列,它们与另一个表的主键或唯一键相关联。外键约束确保引用表中的每个值必须在主表的主键或唯一键中存在。

目的:外键的主要目的是建立和维护两个表之间的链接,确保引用数据的完整性。它防止了在引用表中插入不存在于主表中的值,也防止了删除或更新主表中被引用的数据。

2). 如何使用

外键约束可以在创建表时定义,也可以在现有表上添加。

创建表时定义

CREATE TABLE orders (order_id INT NOT NULL,customer_id INT NOT NULL,order_date DATE,PRIMARY KEY (order_id),FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

在这个例子中,orders 表中的 customer_id 是一个外键,它引用了 customers 表中的 customer_id 主键。

在现有表上添加外键

如果表已经存在,可以使用 ALTER TABLE 语句来添加外键:

ALTER TABLE orders
ADD FOREIGN KEY (customer_id) REFERENCES customers(customer_id);

这个例子将 orders 表的 customer_id 字段添加为外键,引用 customers 表的 customer_id 字段。

3). 影响和注意事项

级联操作:可以在外键约束中定义级联规则,如 ON DELETE CASCADEON UPDATE CASCADE,这意味着当主表中的记录被删除或更新时,引用表中相应的记录也会被级联删除或更新。

数据插入和更新:外键约束会阻止向引用列插入不存在于主键表中的值,也会阻止更新引用列的值,使其不再与主键表中的值匹配。

数据删除:外键约束会阻止删除主键表中被引用的记录,除非指定了级联删除或先删除引用表中的相关记录。

性能:外键约束可以影响数据库操作的性能,尤其是在涉及大量数据的插入和删除操作时,因为数据库需要检查引用的完整性。

索引:大多数数据库系统会自动为外键创建索引,以提高数据检索的效率。

4). 特殊情况

复合外键:可以在多个列上定义外键,这称为复合外键或多列外键。

CREATE TABLE order_details (order_id INT,product_id INT,quantity INT,PRIMARY KEY (order_id, product_id),FOREIGN KEY (order_id) REFERENCES orders(order_id),FOREIGN KEY (product_id) REFERENCES products(product_id)
);

在这个例子中,order_details 表有两个外键,分别引用了 orders 表和 products 表的主键。

外键和数据完整性:外键约束是确保数据库数据完整性的重要机制,它帮助维护了数据的准确性和一致性。

通过理解和正确使用外键约束,数据库设计者和开发者可以确保数据之间的正确关系,避免数据孤立和不一致,从而提高数据库的整体质量和性能。

5. 默认值约束(DEFAULT)

默认值约束(DEFAULT)是数据库中用于指定列在插入数据时的默认值的一种机制。当你插入一行数据时,如果没有为某个列指定具体的值,那么该列将使用其默认约束定义的默认值。

1). 定义和目的

定义:默认值约束(DEFAULT)用于在插入新记录时,为表中某一列指定的默认值。如果插入数据时未指定该列的值,则数据库会自动使用这个默认值。

目的:默认值约束的主要目的是简化数据录入过程,同时确保数据的完整性和一致性。对于某些常见或默认的字段值,无需每次手动输入,系统自动填充。

2). 如何使用

默认值约束可以在创建表时定义,也可以在表创建后通过修改表结构来添加。

创建表时定义

CREATE TABLE employees (employee_id INT NOT NULL,first_name VARCHAR(50) NOT NULL,status VARCHAR(10) DEFAULT 'active'
);

在这个例子中,status列的默认值被设置为'active',当插入新记录且未提供status值时,数据库会自动将其设置为'active'

修改表时添加默认值

如果需要对现有的表添加或修改默认值,可以使用ALTER TABLE语句。例如:

ALTER TABLE employees
MODIFY status VARCHAR(10) DEFAULT 'active';

在这个例子中,我们将一个默认约束添加到了已存在的表的某个列上,这将使该列在插入数据时使用指定的默认值。

3). 影响和注意事项

数据插入:默认值约束影响数据插入操作。如果没有为某个列指定值且该列有默认约束,则数据库将自动使用默认值填充该列。

数据更新:默认值约束只适用于插入数据时,不会影响已存在的数据。

默认值类型:在创建或修改默认约束时,要小心确保默认值的类型与列的数据类型相兼容。

存储空间:使用不为NULL的默认值,可能会占用更多的存储空间。

系统值:默认值可以是常量值、函数或表达式,以提供更灵活的默认值设置选项。例如,可以使用GETDATE()这样的函数,使用DEFAULT约束插入系统值。

4). 删除默认值约束

如果你想要删除某个列的默认约束,可以使用ALTER TABLE语句来修改列定义。例如:

ALTER TABLE employees
ALTER COLUMN status DROP DEFAULT;

在这个例子中,我们删除了某个列的默认约束,这将使该列在插入数据时不再使用默认值。

通过理解和正确使用默认值约束,可以确保表中的数据有意义且符合预期,同时简化了数据插入的操作。

6. 检查约束(CHECK)

检查约束(CHECK constraint)是一种数据库约束,用于确保列中的数据符合特定的条件。通过定义检查约束,数据库可以自动验证插入或更新的数据是否满足预设的条件,从而保证数据的一致性和完整性。

1). 定义和目的

定义:检查约束用于限制数据库表中数据的有效性和一致性。它可以在插入或更新数据时对特定列的值进行验证,并防止不符合条件的数据被插入或更新。

目的:检查约束的主要目的是保持数据库中数据的一致性和有效性。它可以防止无效或不合法的数据被插入或更新到数据库表中。

2). 如何使用

检查约束可以在创建表时定义,也可以在表创建后通过修改表结构来添加。

创建表时添加检查约束

CREATE TABLE Employees (EmployeeID INT PRIMARY KEY,FirstName VARCHAR(50),LastName VARCHAR(50),Age INT CHECK (Age >= 18)
);

在这个例子中,我们在Employees表的Age列上创建了一个CHECK约束。这个约束确保输入的任何年龄都必须是18岁或以上。

修改表时添加检查约束

如果表已经存在,可以使用ALTER TABLE语句来添加检查约束:

ALTER TABLE Employees
ADD CONSTRAINT CHK_Age CHECK (Age >= 18);

这个例子将Employees表的Age字段添加为检查约束,确保年龄大于或等于18岁。

3). 影响和注意事项

数据插入和更新:检查约束会阻止向表中插入或更新不满足条件的数据。如果尝试插入或更新的数据违反了CHECK约束,数据库将返回错误。

性能:虽然检查约束有助于保证数据完整性,但在大数据量下,它可能会影响插入和更新操作的性能,因为数据库需要检查每条数据是否满足约束条件。

复合检查约束:可以在多个列上定义检查约束,这称为复合检查约束或表级检查约束。这种约束可以同时对表中多个列设置限定条件。

删除检查约束:如果需要删除检查约束,可以使用ALTER TABLE语句来移除:

ALTER TABLE Employees
DROP CONSTRAINT CHK_Age;

4). 特殊情况

命名检查约束:在创建检查约束时,可以为约束命名,这有助于在需要时引用或删除特定的约束。

逻辑表达式:检查约束可以使用任何返回TRUEFALSE的逻辑(布尔)表达式创建。例如,可以通过创建检查约束将salary列中值的范围限制为从$15,000到$100,000之间的数据。

通过理解和正确使用检查约束,数据库设计者和开发者可以确保数据库中的数据符合预期的规范和要求,从而提高数据质量和可靠性。

7. 自动递增约束(AUTO_INCREMENT)

自动递增约束(AUTO_INCREMENT)是数据库中用于自动生成唯一序列号的一种特性,通常用于主键字段。以下是关于AUTO_INCREMENT约束的详细解释:

1). 定义和作用

定义:AUTO_INCREMENT是MySQL中一个特殊的属性,用于为表中的某个整数列自动生成唯一的序列号。每当向表中插入一条新记录时,如果没有明确指定该列的值,MySQL会自动为该列分配一个比当前最大值大1的值。

作用:AUTO_INCREMENT确保了字段的唯一性、非空性和自动递增性。它在创建主键、唯一标识符等场景中非常有用,如用户ID、订单号等。

2). 如何使用

创建表时指定AUTO_INCREMENT

CREATE TABLE users (id INT AUTO_INCREMENT,username VARCHAR(50),email VARCHAR(100),PRIMARY KEY (id)
);

在这个例子中,id列被设置为自动增长字段,并且它是主键。

修改现有表添加AUTO_INCREMENT

如果需要在现有的表中添加AUTO_INCREMENT属性,可以使用ALTER TABLE语句:

ALTER TABLE users MODIFY id INT AUTO_INCREMENT;

3). 特点和要求

  • 唯一性:一个表中只能有一个字段使用AUTO_INCREMENT约束,且该字段必须有唯一索引,以避免序号重复。
  • 非空性:AUTO_INCREMENT约束的字段必须具备NOT NULL属性。
  • 整数类型:AUTO_INCREMENT约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT等)。
  • 最大值限制:AUTO_INCREMENT约束字段的最大值受该字段的数据类型约束,如果达到上限,AUTO_INCREMENT就会失效。

4). 插入数据

插入数据时,无需为AUTO_INCREMENT字段提供值,MySQL会自动处理:

INSERT INTO users (username, email) VALUES ('John Doe', 'john.doe@example.com');

5). 查看当前AUTO_INCREMENT值

可以使用SHOW TABLE STATUS命令来查看表的当前AUTO_INCREMENT值:

SHOW TABLE STATUS LIKE 'users';

在结果中,Auto_increment列显示了下一个AUTO_INCREMENT值。

6). 设置初始AUTO_INCREMENT值

默认情况下,AUTO_INCREMENT的初始值是1,但可以通过以下方式设置不同的初始值:

ALTER TABLE users AUTO_INCREMENT = 100;

这样,第一条插入的记录的id值将是100。

7). 删除与重置

删除表中的记录并不会重置AUTO_INCREMENT的值,除非手动进行重置。例如,使用TRUNCATE TABLE命令可以清空表中的所有记录并重置AUTO_INCREMENT值为1。

通过理解和正确使用AUTO_INCREMENT约束,可以简化插入操作,避免手动生成唯一值的麻烦,并确保数据的唯一性和一致性。

相关文章:

数据库表约束完全指南:提升数据完整性和准确性

数据库表约束完全指南:提升数据完整性和准确性 在数据库设计中,表约束是确保数据完整性和准确性的关键工具。本文将详细介绍各种类型的表约束及其使用方法,包括非空约束、唯一约束、主键约束、外键约束、默认值约束、检查约束以及自动递增约…...

【JavaEE】多线程(6)

一、用户态与内核态 【概念】 用户态是指用户程序运行时的状态,在这种状态下,CPU只能执行用户态下的指令,并且只能访问受限的内存空间 内核态是操作系统内核运行时的状态,内核是计算机系统的核心部分,CPU可以执行所有…...

BERT和RoBERTa;双向表示与单向的简单理解

目录 BERT和RoBERTa大型预训练语言模型 BERT的原理 RoBERTa的原理 举例说明 双向表示与单向的简单理解 除了预训练语言模型,还有什么模型 一、模型类型与结构 二、训练方式与数据 三、应用场景与功能 四、技术特点与优势 BERT和RoBERTa大型预训练语言模型 BERT(Bi…...

Pytorch使用手册-计算机视觉迁移学习教程(专题十三)

在本教程中,你将学习如何使用迁移学习训练一个卷积神经网络进行图像分类。更多关于迁移学习的内容可以参考 CS231n 课程笔记。 引用课程笔记中的内容: 实际上,很少有人从头开始训练一个完整的卷积网络(随机初始化),因为拥有足够大数据集的情况相对罕见。相反,通常会在非…...

Jackson - Java对象与JSON相互转换

在这篇文章中,我将向您展示如何使用Jackson-databind API来实现Java对象与JSON之间的绑定,以及如何将JSON数据转换为Java对象。 对于Java开发者来说,将JSON转换为Java对象及反向操作是一个常见的任务,因此我将通过示例演示如何完…...

怎麼解決路由器IP地址衝突?

路由器IP地址衝突通常發生在網路中有兩個設備嘗試使用相同的IP地址時。這種衝突會導致網路連接問題,因為每個設備需要一個唯一的IP地址才能正常通信。 1. 重啟設備 重啟路由器和設備:有時候簡單的重啟可以解決問題,設備重新獲取一個新的IP地…...

趣味数学 2.3.7 | 完全免费,无注册登录,简约纯净

趣味数学是一款完全免费的数学学习软件,支持安卓系统。它无需登录注册,界面简约纯净,分类详细,涵盖趣味数学、数学初练、应用计算、数字推理、图形推理、数字2048、题目练习和数学知识等多个分类。每个分类包含丰富的题目和关卡&a…...

Oracle ASM特性介绍和增删盘操作

1. 介绍 1.1. 在没有ASM之前ORACLE数据库靠什么去解决存储问题: 裸设备:裸设备就是没有被文件系统格式化的分区或者是直接挂载到操作系统上的磁盘。ORACLE可以直接将数据写入到裸设备中,读写能非常优异。像ORACLE的数据文件、控制文件、REDO日志在过去…...

深度优先搜索迷宫路径

深度优先搜索迷宫路径 问题描述 我们需要编写一个程序,通过深度优先搜索(DFS)找到从迷宫左上角到右下角的一条通路。 迷宫的表示: 迷宫由 0 和 1 构成的二维数组表示。0 表示可以走的路径,1 表示障碍。用户输入迷宫的…...

多媒体技术的 发展阶段----高中信息技术教资面试

上课,同学们好!请坐 在正式上课之前,老师带来 了一段微课视频,请同学们认真观看大屏幕。等下来回答老师的问题。 好,视频播放完成了,现在老师想问问大家。大家从视频中都看到了什么尼?好&…...

行为型设计模式之《责任链模式》实践

定义 责任链模式(Chain Of Responsibility Pattern)顾名思义,就是为请求创建一条处理链路,链路上的每个处理器都判断是否可以处理请求,如果不能处理则往后走,依次从链头走到链尾,直到有处理器可…...

中酱黑松露手工古法酱油,邂逅独特 “酱油红”

在美食的世界里,调味品往往扮演着画龙点睛的角色,它们虽不似主食材那般夺目,却能悄无声息地赋予菜肴灵魂与韵味。而今天,要带大家走进的,便是中酱手工古法酱油所营造出的独特美味天地,去领略那一抹别具魅力…...

Java NIO channel

channel(通道),byteBuffer(缓冲区),selector(io多路复用),通道FileChannel,SocketChannel的transferTo,transferFrom,MappedByteBuffer实现了零拷贝。 JVM调操作系统方法,read,write,都可以送字…...

智能交通(8)——腾讯开悟智能交通信号灯调度赛道

本文档用于记录参加腾讯开悟智能信号灯调度赛道的模型优化过程。官方提供了dqn和target_dqn算法,模型的优化在官方提供的代码基础上进行。最终排名是在榜单16,没能进入最后的决赛。 一.赛题介绍 赛题简介:在本地赛题中,参赛团队…...

ip所属地址是什么意思?怎么改ip地址归属地

在数字化时代,IP地址作为网络设备的唯一标识符,不仅关乎设备间的通信,还涉及到用户的网络身份与位置信息。IP所属地址,即IP地址的归属地,通常反映了设备连接互联网时的地理位置。本文将深入解析IP所属地址的含义&#…...

攻防世界 ctf刷题 新手区1-10

unserialize3 因为我上个笔记写了 php返序列化 所以先趁热打铁 看这个题目名字 我们就知道是 反序列化呀 因为flag有值所以 我们先输个 111 看看有没有线索 没线索但是这边 有个发现就是他是使用get方式传参的 可能他会把我们的输入 进行传入后台有可能进行反…...

Node做一个自动删除指定文件和文件夹工具

node14 可以搭配脚手架工具实现自动实现删除 // 引入path模块,用于处理文件路径 const path require(path); // 引入fs模块的promises API,用于异步文件操作 const fs2 require(fs).promises; // 引入fs模块,用于同步文件操作 const fs …...

陈若尧新歌《一来二去》陆续登陆全球音乐平台

由青年演员,歌手陈若尧带来的全新创作单曲《一来二去》由索尼音乐发行,于2024年11月18日陆续全球上线。这也是陈若尧与索尼音乐合作的第一首单曲。探索古典风格与流行音乐的新结合。歌曲上线不久,就因优美抒情的动人旋律,诗意而意味深远的歌词…...

【Docker】针对开发环境、测试环境、生产环境如何编排?

目录 一、引言 二、Docker Compose 文件基础 三、针对不同环境的 Docker 编排 开发环境 测试环境 生产环境 四、配置文件全局变量的编写 五、总结 一、引言 在软件开发和部署的过程中,不同的环境有着不同的需求和配置。Docker 作为一种强大的容器化技术&…...

小程序项目的基本组成结构

分类介绍 项目根目录下的文件及文件夹 pages文件夹 用来存放所有小程序的页面,其中每个页面都由4个基本文件组成,它们分别是: .js文件:页面的脚本文件,用于存放页面的数据、事件处理函数等 .json文件:…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...