mysql主外键代码

频道:网站相关 日期: 浏览:54

MySQL 主外键

MySQL 主外键是一种关系型数据库中非常重要的概念,用于建立表与表之间的关联性,是保证数据库完整性和有效性的关键因素。在MySQL中,主键和外键都是通过列约束来实现的。

主键

mysql主外键代码

主键是唯一标识一个表中每行记录的列或列的集合。主键的值在整个表中必须是唯一的,并且不能为NULL。在MySQL中,一个表只能有一个主键约束。主键用于查找和链接其他表中的数据。

在MySQL中,我们可以通过以下方式创建主键:

#### 方式一:在创建表时指定主键

```

CREATE TABLE students (

id INT UNSIGNED NOT NULL AUTO_INCREMENT,

name VARCHAR(30) NOT NULL,

age INT UNSIGNED NOT NULL,

PRIMARY KEY (id)

);

#### 方式二:在创建表后添加主键约束

ALTER TABLE students ADD PRIMARY KEY (id);

#### 方式三:直接在列定义中指定主键

id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

age INT UNSIGNED NOT NULL

外键

外键是一个列或列的集合,它引用了另一个表中的主键或唯一键。外键的存在可以保证表与表之间的完整性,确保了相关数据的正确性和一致性。

在MySQL中,我们可以通过以下方式创建外键:

#### 方式一:在创建表时指定外键

CREATE TABLE orders (

customer_id INT UNSIGNED NOT NULL,

product_id INT UNSIGNED NOT NULL,

price DECIMAL(10,2) NOT NULL,

FOREIGN KEY (customer_id) REFERENCES customers(id),

FOREIGN KEY (product_id) REFERENCES products(id)

#### 方式二:在创建表后添加外键约束

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

ALTER TABLE orders ADD FOREIGN KEY (product_id) REFERENCES products(id);

外键约束也可以指定ON DELETE和ON UPDATE属性来控制在主表中删除或更新数据时从表中的数据如何处理。例如:

FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE CASCADE,

FOREIGN KEY (product_id) REFERENCES products(id) ON UPDATE CASCADE

以上代码中,当customers表中的主键被删除时,与之相关的orders表中的记录也将被删除(ON DELETE CASCADE)。当products表中的主键被更新时,与之相关的orders表中的记录也将被更新(ON UPDATE CASCADE)。

代码示例

以下是一个使用主外键的完整MySQL表结构示例:

CREATE TABLE customers (

CREATE TABLE products (

name VARCHAR(50) NOT NULL,

price DECIMAL(10,2) NOT NULL

以上示例中,customers和products表都定义了一个自增的主键id。orders表中的customer_id和product_id列都是外键,分别引用了customers表和products表中的主键id。

MySQL主外键是关系型数据库中非常重要的概念。通过使用主外键来建立表与表之间的关系,可以有效地保证数据库的完整性和有效性,确保数据的一致性和正确性。在MySQL中,我们可以通过添加列约束来定义主键和外键,还可以指定ON DELETE和ON UPDATE属性来控制在主表中删除或更新数据时从表中的数据如何处理。

网友留言(0)

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。