• 数据库约束


    1 约束种类

    约束名 约束关键字
    主键 primary key
    唯一 unique
    非空 not null
    外键 foreign key
    检查约束 mysql不支持

    2 主键约束

    通常不使用业务字段(身份证,学号)作为主键,单独使用一个id作为主键,可以没意义,只要唯一,非空就行

    2-1 主键的创建与删除

    在创建表的时候添加主键
    id int primary key auto_increment

    在已有的表中添加主键,id设置主键

    alter table student add primary key(id);
    

    删除主键

    alter table student drop primary key;
    

    2-2 主键自增

    • 字段类型必须是整数类型
    • auto_increment

    3 唯一约束(这个字段不能重复)

    4 非空约束(这个字段不能为空)

    主键约束=唯一约束+非空约束,那么有什么区别吗?
    主键约束只能出现一次,唯一+非空约束可以多次出现

    5 外键约束

    如何区分主表和从表

    员工表:从表(使用别人的数据)
    部门表:主表

    5-1 外键的创建与删除

    新增表的时候创建外键

    constraint emp_depid_fk foreign key(dep_id) references department(id)
    

    向已有表添加外键

    alter table employee add constraint emp_depid_fk foreign key(dep_id) references department(id)
    

    删除外键

    alter table employee drop foreign key emp_depid_fk;
    

    5-2 外键的级联

    主表中的数据变化,从表中的数据也跟着变化
    on delete cascade on update cascade

    5-3 外键的创建(多对多)学生表,课程表,和成绩表之间的关系

    代码块
    CREATE DATABASE ec14;
    USE ec14;
    
    CREATE TABLE student(
    id int PRIMARY key auto_increment,
    stu_name varchar(10) not null
    );
    
    CREATE TABLE subj(
    id int PRIMARY key auto_increment,
    sub_name varchar(10)
    );
    
    CREATE TABLE score(
    id int PRIMARY key ,
    stu_id int,
    sub_id int,
    score int not null,
    CONSTRAINT stu_fk FOREIGN key (stu_id) REFERENCES student(id) on DELETE CASCADE on UPDATE CASCADE,
    CONSTRAINT sub_fk FOREIGN key (sub_id ) REFERENCES subj (id) on DELETE CASCADE on UPDATE CASCADE
    );
    
    select  from  score;
    
  • 相关阅读:
    Preparing for Merge Sort(二分)
    Polycarp's phone book(unordered_mpa 大法好)
    Yet Another Task with Queens
    nginx 初时
    JSON.stringfiy 序列化
    css grid布局使用
    遍历对象属性5种方法,排列顺序规则
    归并方法
    处理地图经纬度,保留6位小数
    js 操作方法
  • 原文地址:https://www.cnblogs.com/hellosiyu/p/12501652.html
Copyright © 2020-2023  润新知