数据库编程4

目录

MySQL中的约束

主键约束(Primary Key) PK

外键约束(Foreign Key) FK

唯一性约束(Unique)

非空约束(Not Null)

添加主键约束(Primary Key)

单一主键

联合主键

修改表添加主键约束

使用DDL语句添加主键约束

MySQL 中的自动增长类型要求:

使用Navicat添加主键约束

删除主键

使用DDL语句删除主键

使用Navicat删除主键

添加外键约束(Foreign Key)

使用DDL语句添加外键约束

删除外键约束

使用DDL语句删除外键约束。

使用Navicat删除外键约束


MySQL中的约束

数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。

  1. 主键约束(Primary Key) PK

    主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。 主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。例如,学生信息表中的学号是唯一的。

  2. 外键约束(Foreign Key) FK

    外键约束经常和主键约束一起使用,用来确保数据的一致性。

  3. 唯一性约束(Unique)

    唯一约束与主键约束有一个相似的地方,就是它们都能够确保列的唯一性。与主键约束不同的是,唯一约束在一个表中可以有多个,并且设置唯一约束的列是允许有空值的。

  4. 非空约束(Not Null)

    非空约束用来约束表中的字段不能为空。

添加主键约束(Primary Key)

  1. 单一主键

    使用一个列作为主键列,当该列的值有重复时,则违反唯一约束。

  2. 联合主键

    使用多个列作为主键列,当多个列的值都相同时,则违反唯一约束。

修改表添加主键约束

使用DDL语句添加主键约束

ALTER TABLE  表名 ADD PRIMARY KEY(列名)

示例:

将 emp 表中的 employee_id 修改为主键。

alter table emp add primary key(employee_id);

MySQL 中的自动增长类型要求:

  • 一个表中只能有一个列为自动增长。
  • 自动增长的列的类型必须是整数类型。
  • 自动增长只能添加到具备主键约束与唯一性约束的列上。
  • 删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然 后在删除约束。
alter table 表名 modify 主键 类型 auto_increment;

示例:

将 emp 表中的 employee_id 主键修改为自增。

alter table emp modify employee_id int auto_increment;

使用Navicat添加主键约束

    image-20211106153726565

    image-20211106155408963

    删除主键

    使用DDL语句删除主键

    ALTER TABLE  表名 DROP PRIMARY KEY;
    

    注意:


    删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除 主键。

    示例:

    删除emp表中的 employee_id 主键约束。

    去掉自动增长:

    alter table emp modify employee_id int;
    

    删除主键:

    alter table emp drop primary key;
    

    使用Navicat删除主键

      image-20211106155430755

      image-20211106155458431

      添加外键约束(Foreign Key)

      使用DDL语句添加外键约束

      ALTER TABLE  表名 ADD CONSTRAINT  约束名 FOREIGN KEY( 列 名 ) REFERENCES  参照的表名(参照的列名);
      

      示例一:

      创建 departments 表包含 department_id 、department_name ,location_id。

      create table departments(department_id int,department_name varchar(30),location_id int);
      

      示例二:

      修改departments表,向department_id列添加主键约束与自动递增。

      alter table departments add primary key(department_id);
      alter table departments modify department_id int auto_increment;
      

      示例三:

      修改 emp 表,添加 dept_id 列。

      alter table emp add column dept_id int;
      

      示例四:

      向 emp 表中的 dept_id 列添加外键约束。

      alter table emp add constraint emp_fk foreign key(dept_id) references departments(department_id);
      

      Navicat添加外键约束

      1. image-20211106161642724

        image-20211106161843815

      删除外键约束

      使用DDL语句删除外键约束。

      ALTER TABLE  表名 DROP FOREIGN KEY  约束名;
      

      示例:

      删除 dept_id 的外键约束。

      alter table emp drop foreign key emp_fk;
      

      使用Navicat删除外键约束

      image-20211106164123290

      image-20211106164226071

        评论 1
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

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

        抵扣说明:

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

        余额充值