MySQL入门(8)- 约束——主键约束&外键约束&级联更新/删除

本文介绍了MySQL中的主键约束(primary key)和外键约束(foreign key),包括主键的单一和复合类型,自增主键,以及外键的单一和复合形式。主键用于确保数据的唯一性,外键则用于建立表间关联。此外,还讨论了级联更新和删除操作,并给出了示例,强调级联操作应谨慎使用,因为它们可能直接影响数据。
摘要由CSDN通过智能技术生成

约束——主键约束&外键约束&级联更新/删除

此系列记录PN视频学习笔记


* 本博客涉及到的数据为bjpowernode.sql,数据见文末,SQL文见MySQL入门(9)文末。

* 该数据有三张表,分别是部门表dept(deptno部门编号、dname部门名称、loc位置)、

                                       员工表emp(empno工号、ename员工姓名、job职位、mgr直属领导工号、

                                                            hiredate入职日期、sal月薪、comm补贴、deptno部门编号)、

                                        薪水等级表salgrade(grade等级、losal区间下限、hisal区间上限)


6、主键约束-primary key-PK

       6.1  主键涉及到的术语:

              -主键约束

              -主键字段

              -主键值

 

       6.2主键约束、主键字段、主键值的关系?

           表中的某个字段添加主键约束之后,该字段被称为主键字段,主键字段中出现的每一个数据被称为主键值。

 

       6.3主键的作用:作为某行纪录的唯一标识

           给某个字段添加主键约束(primary key)之后,该字段不能重复,且不能为空。

           效果和not null unique相同,但是本质不同。

           主键约束除了可以做到not null unique之外,主键字段还会默认添加‘索引-index’。

 

       6.4一张表应该有主键字段,若没有,表示这张表是无效的。

           主键值是当前行数据的唯一标识,是当前行数据的身份证号。

           即使表中的两行记录相关的数据是相同的,但是只要主键值不同,便认为这两行是完全不同的数据。

 

6.5 【单一主键】:给一个字段添加主键约束。

    //单一主键

    //列级定义方式/列级约束

    drop table if exists t_user;

    create table t_user(

                id int(10) primary key,

                name varchar(32)

    );

 

    //单一主键

    //表级定义方式/表级约束

    drop table if exists t_user;

    create table t_user(

                id int(10),

                name varchar(32),

                primary(key)

    );

 

    //单一主键

    //表级定义方式/表级约束

    //起名

    drop table if exists t_user;

    create table t_user(

                id int(10),

                name varchar(32),

                constraint t_user_id_pk primary key(id)

     );

    mysql> desc t_user;

    +-------+-------------+------+-----+---------+-------+

    | Field | Type        |Null | Key | Default | Extra |

    +-------+-------------+------+-----+---------+-------+

    | id    | int(10)     | NO  | PRI | NULL    |       |

    | name  | varchar(32) |YES  |    | NULL    |       |

    +-------+-------------+------+-----+---------+-------+

 

6.6 【复合主键】:给多个字段联合添加一个联合主键。

    //单一主键

    //表级定义方式/表级约束

    //起名

    drop table if exists t_user;

    create table t_user(

                id int(10),

                name varchar(32),

                email varchar(128),

                constraint t_user_ib_name_pk primary key(id,name)

    );

       mysql>desc t_user;

        +-------+--------------+------+-----+---------+-------+

        | Field | Type         |Null | Key | Default | Extra |

        +-------+--------------+------+-----+--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值