posts - 397,comments - 0,views - 25332

 外键约束

复制代码
-- 创建表
CREATE TABLE emp(
    id int PRIMARY KEY auto_increment,
    name varchar(30),
    age INT,
    dep_name VARCHAR(30),
    dep_location VARCHAR(30)
    
);

-- 添加数据
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES ('张三',20,'研发部','广州');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES ('李四',21,'研发部','广州');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES ('王五',20,'研发部','广州');
 
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES ('老王',28,'销售部','深圳');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES ('大王',22,'销售部','深圳');
INSERT INTO emp (NAME,age,dep_name,dep_location) VALUES ('小王',18,'销售部','深圳');


CREATE TABLE department(
     id INT PRIMARY KEY AUTO_INCREMENT,
     dep_name VARCHAR(20), -- 部门名称
     dep_location VARCHAR(20) -- 部门地址
);

-- 创建员工表(id,name,age,dep_id)
-- 多方,从表
CREATE TABLE employee(
    id INT PRIMARY KEY AUTO_INCREMENT,
    NAME VARCHAR(30),
    age INT,
    dep_id INT, -- 外键对应主表的主键
    CONSTRAINT emp_dept_fk FOREIGN KEY (dep_id) REFERENCES department(id)
);
-- 添加2个部门
INSERT INTO department VALUES(NULL,'研发部','广州'),(NULL,'销售部','广州');

-- 添加员工,dep_id 表示员工所在的部门
INSERT INTO employee(NAME,age,dep_id) VALUES ('张三',20,1);
INSERT INTO employee(NAME,age,dep_id) VALUES ('李四',21,1);
INSERT INTO employee(NAME,age,dep_id) VALUES ('王五',20,1);
INSERT INTO employee(NAME,age,dep_id) VALUES ('老王',28,2);
INSERT INTO employee(NAME,age,dep_id) VALUES ('大王',22,2);
INSERT INTO employee(NAME,age,dep_id) VALUES ('小王',18,2);
复制代码

 

语法:foreign key  :让表与表产生关系,从而保证数据的正确性。

    在创建表示,可以添加外键

    语法:

      create  table 表名(

        .....

        外键列

        constrant (外键名称:随便起一个) foreign key (外键列名称) References  注意名称(主列表名称)

       );

 

删除外键

-- 删除外键
ALTER TABLE employee DROP FOREIGN KEY emp_dept_fk;

 

添加外键

-- 添加外键
ALTER TABLE employee ADD CONSTRAINT emp_dept_fk FOREIGN KEY (dep_id) REFERENCES department(id)

 

 

 

 

 

 

 

 

 

约束_外键约束_级联操作

创建表之后添加外键

    ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(id) on UPDATE CASCADE ON DELETE CASCADE;

分类:

  级联更新:ON Update Cascade

  级联删除:ON delete Cascade

 

-- 添加外键, 设置级联跟新,设置级联删除
ALTER TABLE employee ADD CONSTRAINT emp_dept_fk FOREIGN KEY (dep_id) REFERENCES department(id) on UPDATE CASCADE ON DELETE CASCADE;

 

posted on   淤泥不染  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示