mysql怎样设置外键,什么是外键?
在MySQL中,设置外键束缚用于保证数据的一致性和完整性。外键束缚用于指定一个列或多个列,这些列的值有必要在另一个表的某些列中存在。下面是设置外键的过程:
1. 确认外键列:首要,确认你想要设置外键的列。这些列将引证另一个表中的主键或唯一键。
2. 创立或修正表:你能够运用`CREATE TABLE`句子创立一个新表,或许在现有的表中增加外键束缚。
3. 运用`FOREIGN KEY`子句:在`CREATE TABLE`或`ALTER TABLE`句子中,运用`FOREIGN KEY`子句来界说外键。你需求指定外键列的称号,以及它引证的表的称号和列的称号。
4. 指定引证的动作:你能够指定当外键列中的值被更新或删去时,应该履行的动作。例如,你能够设置`ON DELETE CASCADE`来保证当引证的行被删去时,外键地点的行也会被删去。
下面是一个简略的比如,假定咱们有两个表:`orders`和`customers`。`orders`表有一个外键列`customer_id`,它引证`customers`表的主键`id`。
```sqlCREATE TABLE customers qwe2;
CREATE TABLE orders REFERENCES customers ON DELETE CASCADEqwe2;```
在这个比如中,`orders`表中的`customer_id`列是外键,它引证`customers`表中的`id`列。当`customers`表中的某个行被删去时,一切引证该`id`的`orders`表中的行也会被删去。
请依据你的详细需求调整表结构和外键设置。
什么是外键?
外键(Foreign Key)是数据库表中的一种束缚,用于树立两个表之间的引证联系。它保证了数据的引证完整性,即从表中引证主表的主键值有必要存在于主表中。外键一般用于完成实体联系模型(ER模型)中的相相联系。
外键的效果
外键的首要效果绵亘:
保护数据的一致性和完整性。
保证从表中的数据与主表中的数据保持一致。
供给数据引证的透明性,使得数据的相相联系愈加直观。
怎么设置MySQL中的外键
在MySQL中设置外键,一般有以下几种办法:
办法一:在创立表时设置外键
在创立表的时分,能够直接在表界说中增加外键束缚。以下是一个示例:
CREATE TABLE IF NOT EXISTS `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`class_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在这个比如中,`student` 表中的 `class_id` 字段是一个外键,它引证了 `class` 表中的 `id` 字段。
办法二:运用ALTER TABLE句子增加外键
假如现已创立了表,但需求增加外键束缚,能够运用ALTER TABLE句子。以下是一个示例:
ALTER TABLE `student`
ADD CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`);
这个句子会在 `student` 表中增加一个名为 `fk_class` 的外键束缚,引证 `class` 表的 `id` 字段。
外键束缚的特点
ON DELETE CASCADE:当删去主表中的记载时,主动删去从表中引证该记载的一切记载。
ON DELETE SET NULL:当删去主表中的记载时,将引证该记载的从表中的外键列设置为NULL。
ON DELETE RESTRICT:当删去主表中的记载时,假如从表中存在引证该记载的记载,则不答应删去。
ON UPDATE CASCADE:当更新主表中的记载时,主动更新从表中引证该记载的一切记载。
ON UPDATE SET NULL:当更新主表中的记载时,将引证该记载的从表中的外键列设置为NULL。
ON UPDATE RESTRICT:当更新主表中的记载时,假如从表中存在引证该记载的记载,则不答应更新。
外键束缚的留意事项
在运用外键束缚时,需求留意以下几点:
外键列有必要与主表的主键列具有相同的数据类型。
外键列的数目有必要与主表的主键列的数目相同。
外键列的值有必要存在于主表的主键列中,或许答应为NULL。
在删去或更新主表中的记载时,有必要考虑从表中的依靠联系。
外键是MySQL数据库中保护数据完整性的重要东西。经过合理地设置外键束缚,能够保证数据的准确性和一致性。在创立表或修正表时,合理运用外键束缚,能够大大提高数据库的可靠性和易用性。
猜你喜欢
- 数据库
mysql检查版别指令,MySQL数据库版别检查指令详解
在MySQL中,你能够运用以下指令来检查MySQL的版别信息:```sqlSELECTVERSION;```这个指令会回来当时MySQL服务器的版别信息。假如你期望获取更详细的信息,能够运用以下指令:```sqlSHOWVARIABLE...
2024-12-24 2 - 数据库
大数据页面,打造高效信息展现渠道
大数据页面资源1.100套大数据可视化炫酷大屏Html5模板这篇文章共享了100套免费的大数据可视化炫酷大屏Html5模板,涵盖了社区、物业、政务、交通、工程、医疗、金融银行等多个职业,适用于数据展现、剖析、监控等场n2....
2024-12-24 2 - 数据库
access不行辨认的数据库格局,处理Access“不行辨认的数据库格局”反常的全面攻略
1.CSV(逗号分隔值):能够运用Excel、GoogleSheets等东西翻开和修改CSV文件。在Python中,能够运用pandas库来读取和操作CSV文件。2.Excel(XLS、XLSX):能够运用Excel、GoogleS...
2024-12-24 2 - 数据库
mysql检查表巨细,MySQL检查表巨细的有用办法
1.运用`SHOWTABLESTATUS`句子:```sqlSHOWTABLESTATUSLIKE'your_table_name';```这将回来一个表格,显现有关表的许多信息,绵亘表的巨细(`D...
2024-12-24 4 - 数据库
mysql联表更新, 什么是联表更新?
MySQL中能够运用`UPDATE`句子结合`JOIN`子句来完结联表更新。这种办法答应你依据一个或多个表中的条件来更新另一个表中的数据。下面是一个根本的示例,展现了怎么运用`UPDATE`句子结合`JOIN`子句来更新数据:```sqlU...
2024-12-24 2 - 数据库
联合国贸发会议数据库,全球交易数据的重要来历
联合国贸发会议(UNCTAD)数据库供给了关于世界交易、出资和展开方面的牢靠计算数据。以下是关于该数据库的一些首要信息和资源:1.UNCTADstat数据中心:供给世界经济、交易、出资、海事运送、环境、数字经济和技能以及人口包容...
2024-12-24 2 - 数据库
大数据管帐,新年代的财政革新
大数据管帐是一个新式的学科范畴,结合了管帐学的大数据技术,旨在经过数据剖析进步财政决议计划的精确度和实时性。以下是关于大数据管帐的一些要害点:1.界说和布景:大数据管帐是我国一般高等学校专科和本科专业,专业代码分别为530302和...
2024-12-24 2 - 数据库
mysql数据库字符集,MySQL数据库字符集详解
MySQL数据库的字符集设置是一个非常重要的方面,它决议了数据库中存储的字符数据怎么被解说和显现。以下是关于MySQL数据库字符集的一些基本信息:1.字符集(CharacterSet):字符集界说了数据库中每个字符的编码办法。MySQL...
2024-12-24 5