• mysql 添加外键约束


    创建表时添加约束

    1. create table table_name(
    2. id int primary key auto_increment, #设为主键且自动增长
    3. name not null unique, #不为空且值唯一
    4. sex default '男', #使用默认约束,默认性别为男
    5. constraint 索引名 foreign key(外键列) references 主键表(主键列)
    6. on delete cascade | on delete set null 外键约束
    7. )

    完成表后添加约束

    1. 1.主键约束
    2. 添加:alter table table_name add primary key (字段)
    3. 删除:alter table table_name drop primary key
    4. 2.非空约束
    5. 添加:alter table table_name modify 列名 数据类型 not null
    6. 删除:alter table table_name modify 列名 数据类型 null
    7. 3.唯一约束
    8. 添加:alter table table_name add unique 约束名(字段)
    9. 删除:alter table table_name drop key 约束名
    10. 4.自动增长
    11. 添加:alter table table_name modify 列名 int auto_increment
    12. 删除:alter table table_name modify 列名 int
    13. 5.外键约束
    14. 添加:alter table table_name add constraint 约束名 foreign key(外键列)
    15. references 主键表(主键列)
    16. 删除:
    17. 第一步:删除外键
    18. alter table table_name drop foreign key 约束名
    19. 第二步:删除索引
    20. alter table table_name drop index 索引名
    21. [^1]:
    22. 约束名和索引名一样
    23. 6.默认值
    24. 添加:alter table table_name alter 列名 set default '值'
    25. 删除:alter table table_name alter 列名 drop default

    相关知识

    在数据库的使用过程中我们经常要限制字段的取值,比如有些字我们不能让它为空,我们就需要添加非空约束,本关我们就来学习如何添加这些常用的约束。

    为了完成本关任务,你需要掌握:
    1.怎么添加唯一约束;
    2.怎么添加非空约束;
    3.怎么添加默认约束;
    4.怎么设置字段的值自动增加。

    怎么添加唯一约束

    唯一约束(Unique Constraint)要求该列唯一,允许为空,但是只能有一个空值。唯一约束可以确保一列或者几列不出现重复值。

    定义部门表的部门名称唯一,SQL语句如下:关键词 UNIQUE

     
    
    1. CREATE TABLE t_dept(
    2. id INT PRIMARY KEY,
    3. name VARCHAR(22) UNIQUE,
    4. location VARCHAR(50)
    5. )

    怎么添加非空约束

    关键词:NOT NULL

    例如:

     
    
    1. CREATE TABLE t_dept(
    2. id INT PRIMARY KEY,
    3. name VARCHAR(22) NOT NULL,
    4. location VARCHAR(50)
    5. )

    怎么使用默认约束

    默认约束:即给字段一个默认值。
    关键词:DEFAULT

    例如:

     
    
    1. CREATE TABLE t_emp(
    2. id INT PRIMARY KEY,
    3. name VARCHAR(22),
    4. sex VARCHAR(2) DEFAULT '男'
    5. ) DEFAULT CHARSET=utf8;

    注意:

    • 如果是添加字符串型默认值要使用单引号,如果是整型则不需要加任何符号;
    • 如果要添加的是中文默认值,则需要加上DEFAULT CHARSET=utf8;使用英文字符则不需要。

    设置表的属性值自动增加

    在数据库应用中,经常有个需求就是,在每次插入新纪录时,系统自动生成字段的主键值,即:

    idname
    1张三
    2李四
    ID每次自动加一姓名
    ...XXX
    10XXX

    关键词:AUTO_INCREMENT,默认情况下初始值和增量都为1

    例如:

    1. CREATE TABLE t_tmp
    2. (
    3. id int PRIMARY KEY AUTO_INCREMENT,
    4. name VARCHAR(32)
    5. )

    以上这些你都可以在右侧的命令行中测试。

    编程要求

    在数据库MyDb中创建表t_user,表结构如下:

    字段名称数据类型备注
    idINT用户ID,主键,自动增长
    usernamevarchar(32)用户名,非空,唯一
    sexvarchar(4)性别,默认“男”

    提示:若要给字段添加两个或者两个以上的约束,约束之间以空格隔开即可。

    任务代码

    1. mysql -uroot -p123123 -h127.0.0.1;
    2. create database MyDb;
    3. use MyDb;
    4. create table t_user(
    5. id int primary key auto_increment,
    6. username varchar(32)not null unique,
    7. sex varchar(4) default '男');

    完成如下

     

  • 相关阅读:
    Ceph入门到精通-ceph pool 删除导致 misplaced 的原因
    智慧采购管理系统电子招投标优势浅析,助力建筑工程企业高效做好采购管理工作
    Multi-Adapter RGBT Tracking代码学习(二)
    Nat. Commun. | 大规模高分辨单光子成像
    深入分析LinkedHashMap
    正则表达式.java
    基于体素场景的摄像机穿模处理
    基础 | JVM - [GC]
    DC-1靶机练习【超详细】
    机械臂速成小指南(五):末端执行器
  • 原文地址:https://blog.csdn.net/qq_61604164/article/details/126040451