当前位置:   article > 正文

MySQL----约束_mysql drop constraint

mysql drop constraint

该篇文章主要介绍了MySQL中的主键约束、外键约束、检查约束、唯一约束四种约束。

一、约束的定义

约束(constraint):约束实际上就是限制表中数据的条件

二、约束的种类

2.1 主键约束

主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符。主键一定是非空和唯一

  • 建表时设置主键约束
  1. 第一种创建方式
  2. create table goods_type(
  3. good_type_id number(10),
  4. good_type_name varchar(30),
  5. primary key(goods_type_id)
  6. );
  7. 第二种创建方式
  8. create table goods_type(
  9. goods_type_id number(10),
  10. goods_type_name varchar(30),
  11. constraint pk_goods_type primary key(goods_type_id)
  12. );
  13. 第三种创建方式
  14. create table goods_type(
  15. goods_type_id number(10) primary key,
  16. goods_type_name varchar(30)
  17. );
  • 使用alter table语句为表添加主键约束
  1. alter table table_name add constraint constraint_name primary key(column_name);
  2. 使用alter table创建主键约束
  3. alter table goods_type add constraint pk_goods_type primary key(goods_type_id);
  • 删除主键约束
  1. alter table table_name drop constraint constraint_name;
  2. 知道主键约束的情况下可以根据主键约束名字删除主键约束
  3. alter table goods_type drop constraint pk_goods_type;
  4. 不知道主键约束名称的情况下可以使用如下的方式删除主键约束
  5. alter table goods_type drop primary key;

2.2 外键约束

外键是体现两张表之间联系的列,必须来源于另一张表的主键列或者唯一键,在实际开发中应该建立在多的一方,要求外键的类型必须和主键、唯一键的类型一致。外键可以为空,也可以重复。

必须先建从表(父类 没有外键的表),再建主表(子表 有外键的表)

必须先删主表(父类 具有外键的表),再删从表(子表 没有外键的表)

  • 再创建表指定外键约束
  1. drop table goods; drop table goods_type;
  2. --商品类别表(电子产品)
  3. create table goods_type(
  4. goods_type_id number(3),
  5. goods_type_name varchar2(20),
  6. constraint pk_goods_type primary key(goods_type_id)
  7. );
  8. -- 商品表(手机 照相机...)
  9. create table goods(
  10. goods_id number(10),
  11. goods_name varchar2(30),
  12. goods_price number(8,2),
  13. goods_num number(6),
  14. goods_type number(10),
  15. goods_desc varchar2(100),
  16. -- 建立主键约束
  17. constraint pk_goods_id primary key(goods_id),
  18. -- 建立外键约束
  19. constraint fk_goods_type foreign key(goods_type) references goods_type(goods_type_id) );
  20. --创建表时不加外键约束
  21. create table goods(
  22. goods_id number(10),
  23. goods_name varchar2(30),
  24. goods_price number(8,2),
  25. goods_num number(6),
  26. goods_type number(10),
  27. goods_desc varchar2(100),
  28. -- 建立主键约束
  29. constraint pk_goods_id primary key(goods_id)
  30. );
  • 使用alter table的方式建立外键约束
  1. add constraint constraint_name FOREIGN KEY(column_name)
  2. REFERENCES table_name(column_name)
  3. --为goods表建立外键约束(要么删除外键约束要么删除表)
  4. alter table goods add constraint fk_goods_type foreign key(goods_type)
  5. references goods_type(goods_type_id);
  • 删除外键约束
  1. alter table 表名 drop constraint 外键约束的名字;
  2. -- 删除外键约束
  3. alter table goods drop constraint fk_goods_type;

2.3 检查约束

检查数据的合法性

constraint 约束名 check(检查约束的表达式);
  1. --在建表时创建检查约束
  2. create table users(
  3. user_id number(10),
  4. user_name varchar2(30),
  5. user_age number(2),
  6. user_gender varchar2(3),
  7. user_tel varchar2(11),
  8. user_addr varchar2(100),
  9. constraint pk_user_id primary key(user_id),
  10. constraint chk_gender check(user_gender in ('男','女'))
  11. );
  • 使用alter table的方式添加检查约束
  1. alter table 表名 add constraint 检查约束名 check(检查约束的表达式);
  2. -- 设置年龄必须是0~100的约束
  3. alter table users add constraint chk_age check(user_age > 0 and user_age <= 100);
  • 删除检查约束
  1. ALTER TABLE 表名 drop CONTRAINT 检查约束名;
  2. -- 删除性别的检查约束
  3. alter table users drop constraint chk_gender;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/574868
推荐阅读
相关标签
  

闽ICP备14008679号