• SQL外键


    外键:外键是用来再两个表的数据之间建立连接,他可以是一列也可以是多列。一个表中可以有一个或多个外键。

             一个表的外键可以是空值,若不为空值,则每一个外键值必须等于另外一个表中的主键的某个值。

    外键是一个表中的字段,他可以不是本表中的主键,但对应另外一个表的主键,外键的作用是保证数据引用的完整性。

    定义完外键后,不允许删除在另一表中具有关联的行。列如:部门表tb_dept的主键是id,在员工表tb_emp5中有一个键deptId跟这个id关联。

       主表(父表):对于两个有关联的表而言,相关字段中主键所在的那个表为主表。

       从表(子表):对于两个有关联的表而言,相关字段中的外键所在的那个表为从表。

    外键名:定义外键约束的名称,一个表中不能有相同名称的外键。

    字段名:表示从表需要添加外键约束的字段列。

    主表名:即被从表外键所依赖的表的名称

    主键列:表示主表中定义的主键字段,或者字段组合。

    ON  DELETE 和  ON UPDATE :指定在发生删除或更改的表中。

    例子:

    创建一个部门表tb_dept1,表结构SQL语句如下:

    CREATE  TABLE  tb_dept1
    (
         id  INT PRIMARY KEY,
         name  VARCHAR(22) NOT NULL,
        location  VARCHAR(50) NULL  
    );
    

    定义数据表tb_emp6,让它的键deptId作为外键关联到tb_dept1的主键id,SQL语句如下:

    CREATE  TABLE tb_emp6
    (
        id   INT  PRIMARY KEY,
        name  VARCHAR(25),
        deptId  INT,
        salary   FLOAT,
        CONSTRAINT  fk 员工部门编号  FOREIGN KEY(deptId)  REFERENCES tb_dept1(id) 
    );
    

    在未设外键表中添加外键 可以使用ALTER语句将FOREIGN KEY约束添加到该表中,添加主键的ALTER语句语法格式如下  

    CREATE  TABLE tb_emp6
    (
       id   INT  PRIMARY KEY,
       name  VARCHAR(25),
       deptId  INT,
       salary  FLOAT
    )--创建表但未添加外键
    
    后期添加外键SQL语法如下:
    
    GO
    ALTER  TABLE tb_emp6
    ADD
    CANSTRAINT fk 员工不猛编号
    FOREIGN  KEY(deptId) REFERENCES  tb_dept1(id)
    

    删除外键约束

    删除tb_emp6表中创建的 “fk_员工部门编号”外键约束,输入语句如下:
    ALTER TABLE tb_emp6
    DROP CONSTRAINT fk_员工部门编号;
    
    执行完成后将删除tb_emp6的外键约束。

      

      

      

  • 相关阅读:
    Spring-Context之四:Spring容器及bean的定义
    Spring-Context之三:使用XML和Groovy DSL配置Bean
    Spring-Context之二:使用Spring提供的测试框架进行测试
    Spring-Context之一:一个简单的例子
    ActiveMQ第五弹:增加ReDelivery功能
    百度云+ KeePass 网络同步你的密码
    git生成秘钥之后同步到服务器
    谷歌chrome浏览器和火狐firefox浏览器自带http抓包工具和请求模拟插件
    ltnmp
    CentOS 下安装xdebug
  • 原文地址:https://www.cnblogs.com/leiminghui/p/13068419.html
Copyright © 2020-2023  润新知