• MySQL数据库:第十三章:常见约束


    回退至Mysql数据库理论与实战

    #常见约束

    理解:约束是用于限定表的字段的,为了保证数据表的完整性
    常见约束:★
    (not null)NOT NULL 非空:用于限定某字段为必填项,比如姓名、id等
    (default)DEFAULT 默认:用于限定某字段如果没有显式的插入值,默认存储的选项,比如性别、成绩等
    (primary key)PRIMARY KEY主键:用于限定某字段是唯一的、非空的,比如学号
    (unique)UNIQUE 唯一:用于限定某字段是唯一的,可以为空,比如:座位号
    (check)CHECK检查:用于限定某字段必须满足指定条件,比如
    check (gender = ‘男’ or gender =‘女’)
    但是:mysql不支持
    (foreign key)FOREIGN KEY外键:用于限定两个表的关系,比如学员信息表和专业表通过专业编号关联
    【面试题】主键和唯一的对比
    主键:唯一、非空、一个表至多有一个主键
    唯一:唯一、可以为空、一个表可以有多个唯一键

    #一、创建表时添加约束 √

    分类:
    列级约束:直接放在字段的后面,对当前字段有效
    not null、default、unique、primary key
    表级约束:放在所有字段的下面,对显式指定的字段有效
    primary key、unique、foreign key
    二者的区别:
    ①表级约束可以起名,语法:
    【constraint 约束名】 约束类型(字段)
    其中主键起名后,也无效!
    ②列级约束不能起名
    语法:
    create table 表名(
    字段名 字段类型 约束类型,
    字段名 字段类型 约束类型,

    约束
    )

    #示例1:主键和唯一放在列级约束上

    CREATE TABLE grade(
    	id INT PRIMARY KEY,
    	gradename VARCHAR(20)
    )
    CREATE TABLE testTab1(
    	id INT PRIMARY KEY,#主键
    	tname VARCHAR(20) NOT NULL,#非空
    	gender CHAR DEFAULT '男',#默认
    	seat INT  UNIQUE NOT NULL,#唯一+非空
    	gradeId INT ,
    	FOREIGN KEY(gradeid) REFERENCES grade(id)
    );
    

    #示例2:主键和唯一放在表级约束上

    DROP TABLE IF EXISTS testTab1;
    CREATE TABLE testTab1(
    	id INT ,#主键
    	tname VARCHAR(20) NOT NULL,#非空
    	gender CHAR DEFAULT '男',#默认
    	seat INT  ,#唯一+非空
    	gradeId INT ,
    	FOREIGN KEY(gradeid) REFERENCES grade(id),
    	PRIMARY KEY(id),
    	UNIQUE(seat)
    );
    

    #二、修改表时添加约束【了解】

    DROP TABLE IF EXISTS testTab1;
    CREATE TABLE testTab1(
    	id INT ,
    	tname VARCHAR(20) ,
    	gender CHAR,
    	seat INT  ,
    	gradeId INT 
    );
    

    #1、添加非空
    ALTER TABLE testTab1 MODIFY COLUMN tname VARCHAR(20) NOT NULL;
    #2、添加默认
    ALTER TABLE testTab1 MODIFY COLUMN gender CHAR DEFAULT ‘女’;
    #3、添加唯一
    #列级约束的方式
    #ALTER TABLE testTab1 MODIFY COLUMN seat int unique;
    #表级约束的方式
    ALTER TABLE testTab1 ADD CONSTRAINT uq UNIQUE(seat);
    #4、添加主键
    #列级约束的方式
    ALTER TABLE testTab1 MODIFY COLUMN id INT PRIMARY KEY;
    #表级约束的方式
    #ALTER TABLE testTab1 ADD primary key(id);
    #5、添加外键
    ALTER TABLE testTab1 ADD CONSTRAINT fk_t_g FOREIGN KEY(gradeid) REFERENCES grade(id);
    #三、修改表时删除约束【了解】

    #1、删除非空
    ALTER TABLE testTab1 MODIFY COLUMN tname VARCHAR(20) NULL;
    #2、删除默认
    ALTER TABLE testtab1 MODIFY COLUMN gender CHAR;
    #3、删除唯一(唯一约束的名字默认和字段名一致)
    ALTER TABLE testtab1 DROP INDEX seat;
    #4、删除主键
    ALTER TABLE testtab1 DROP PRIMARY KEY;
    #5、删除外键
    ALTER TABLE testtab1 DROP FOREIGN KEY fk_t_g;
    SHOW INDEX FROM testtab1;
    
  • 相关阅读:
    Duplicate keys detected: '0'. This may cause an update error.
    better-scroll在移动端绑定click事件失效
    vue-awesome-swiper轮播插件的使用方法及问题。
    可运行的js代码
    CSS3表达式calc( )
    webstorm破解教程
    box-decoration-break属性
    shiro自定义密码校验器
    获取select中option被选中的值
    SpringBoot开发验证码功能
  • 原文地址:https://www.cnblogs.com/javawxid/p/12812116.html
Copyright © 2020-2023  润新知