• MySQL(11)---约束


    MySQL(11)---约束

    含义: 一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性。

    先把Mysql几种约束列出来:

    主键约束 外键约束 唯一性约束 非空约束 默认值约束 自增约束

    MySQL不支持check约束,但可以使用check约束,而没有任何效果。

    一、语法

    不多说理论,说下语法和示例就好。

    1、建表时直接建约束

    drop table student;
    CREATE TABLE student(
    	id INT PRIMARY KEY auto_increment,#主键 自增
    	name VARCHAR(20) NOT NULL UNIQUE,#非空 唯一
    	xh INT UNIQUE,#唯一
    	age INT DEFAULT  18 #默认约束
    )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生表';
    
    -- 上面和下面是一样的,只不过是另一种写法
    drop table student;
    CREATE TABLE `student` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) NOT NULL,
      `xh` int(11) DEFAULT NULL,
      `age` int(11) DEFAULT '18',
      PRIMARY KEY (`id`),
      UNIQUE KEY `name` (`name`),
      UNIQUE KEY `xh` (`xh`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生表';
    

    2、查看约束

    这里命令是查看索引的命令,因为建立主键约束会自动的建立主键索引。

    同样建立唯一约束也会自动建立唯一索引。

    -- 这里只能看到主键约束,唯一约束。
    SHOW INDEX FROM 表名;
    

    3、单独建约束

    上面的约束是建表时候建的,下面是在表建好后独立添加。

    -- 1.添加非空约束
    ALTER TABLE student MODIFY COLUMN id INT  auto_increment;
    -- 2.添加默认约束
    ALTER TABLE 表名 MODIFY COLUMN 字段名 INT DEFAULT 16;
    -- 3、主键约束
    ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
    -- 4、唯一约束
    ALTER TABLE 表名 ADD UNIQUE(字段名); #字段名可以多个,多个用逗号隔开
    -- 5、主键自增
    # 注意自增一张表只有一个,同时只能在主键上
    ALTER TABLE 表名 MODIFY COLUMN 字段名 INT  auto_increment;
    

    4、删除约束

    -- 1、删除非空约束
    ALTER TABLE 表名 MODIFY COLUMN 字段名 VARCHAR(20) NULL;
    -- 2、删除主键
    -- 这里需要注意如果主键设置为自增的情况下是不能删除成功的,因为自增只能设置在主键上,你删主键自增还存在当然不行。
    ALTER TABLE 表名 DROP PRIMARY KEY;
    -- 3、删除唯一
    ALTER TABLE 表名 DROP INDEX 字段名;
    

    这应该是我最短的博客了,哈哈



    只要自己变优秀了,其他的事情才会跟着好起来(少将12)
    
  • 相关阅读:
    C/S和B/S结构区别整理
    JavaScript特点、优缺点及常用框架
    ExtJs特点、优缺点及注意事项
    Oracle SQL 脚本跟踪
    解决 C#中 SQL脚本执行超时 问题
    oracle 时间转化函数及常见函数 .
    Spring.NET 1.3.2 集成 NHibernate 3.2 1 下载软件
    SQL Server 跨服务器 不同数据库之间复制表的数据的方法:
    spring.net nhibernate 分布布式事务(上)
    set xact_abort ON 你懂的, 在分布式数据库事务中,用到. 在事务中,若出现错误,系统即默认回滚事务
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/10827780.html
Copyright © 2020-2023  润新知