MySQL创建表和约束条件(四)中

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: MySQL创建表和约束条件(四)

四. 非空约束 not null


只能指定一个单字段为非空约束,没有联合字段做为非空约束。 可以让多个字段都为非空约束。


  列名  数据类型  not null [默认值]


四.一 创建非空约束


活学活用,将前面的主键约束再练习一遍。


  create table n7(
    id int(11) primary key,
    name varchar(20) not null
   );


20191115141311883.png


注意,只有这一种写法。 没有 not null (name) 作为表级别约束条件的, 只能放在列级别约束。


四.二 演示非空约束


1 . name有值, 正常插入


insert into n7(id,name) values(1,'两个蝴蝶飞');


20191115141333491.png


2 . name 没有值 或者插入值为 null


insert into n7(id) values(2);


20191115141347631.png


insert into n7(id,name) values(2,null);


20191115141400482.png


五. 唯一约束 Unique


可以为空,MySQL也允许其他的列也可以为null.这一点不像SQL Server 数据库。


五.一 创建列约束条件的 唯一约束


命令:


  列名  数据类型  unique 


创建语句:


create table u8(
    id int(11) primary key,
    name varchar(20) unique
);


20191115141407723.png


五.二 创建表约束条件的 唯一约束


也可以创建表级别的唯一约束


[constraint 唯一约束名] unique (列名)


创建语句:


  create table u9(
       id int(11) primary key,
       name varchar(20),
      unique (name)
    );


20191115141541756.png


五.二 演示唯一约束


以 u8 表为例。


1 .先插入一条数据, id为1, name为两个蝴蝶飞


insert into u8(id,name) values(1,'两个蝴蝶飞');


20191115141434515.png


2 . 再创造一条数据, id为3, name仍然为两个蝴蝶飞。 name 重复了。


insert into u8(id,name) values(3,'两个蝴蝶飞');


20191115141522717.png


3 . 但可以插入一条空的值, 如name 的值插入为 null


insert into u8(id,name) values(4,null);


201911151415089.png


但 null的值,可以有多个。 再插入 id为5,名称仍然为null 的。


insert into u8(id,name) values(5,null);


20191115141609675.png


查询一下: select * from u8;


20191115141615806.png


说明,唯一约束可以插入多个 null的值,并不是唯一的null值。


六. 默认约束 default


命令:


  列名  数据类型  default 默认值


默认约束是,如果不填入这个属性值,就用默认值代替,如果填入了,哪怕填入的值是空,也用填入的值。


六.一 创建默认约束


令 性别默认是 男.


create table d10(
    id int(11) primary key,
     name varchar(20),
     sex varchar(10) default '男'
   );


20191115141623793.png


六.二 演示默认约束


1 . 插入一条正常的数据, 性别是男。


 insert into d10(id,name,sex) values(1,'两个蝴蝶飞','男');


20191115141629651.png


2 . 插入一条正常的数据,性别是女.


 insert into d10(id,name,sex) values(2,'精灵妹','女');


20191115141635147.png


3 . 插入一条数据,不指定性别。


 insert into d10(id,name) values(3,'老蝴蝶');


20191115141641307.png


4 . 插入一条数据,性别为null 值。


insert into d10(id,name,sex) values(4,'岳泽霖',null);


20191115141648577.png


5 . 查询刚才的数据 select * from d10;


20191115141653204.png



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
关系型数据库 MySQL
MYSQL-多表操作-外键约束
MYSQL-多表操作-外键约束
|
13天前
|
关系型数据库 MySQL
MYSQL:约束(主键约束)
MYSQL:约束(主键约束)
|
8天前
|
数据采集 关系型数据库 MySQL
MySQL数据库基础第三篇(约束)
MySQL数据库基础第三篇(约束)
|
13天前
|
关系型数据库 MySQL
MYSQL约束(自增长,以及非空约束)
MYSQL约束(自增长,以及非空约束)
|
12天前
|
存储 关系型数据库 MySQL
【MySQL技术内幕】4.6-约束
【MySQL技术内幕】4.6-约束
15 1
|
19天前
|
SQL 关系型数据库 MySQL
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
24 5
|
22天前
|
存储 关系型数据库 MySQL
【MySQL】表的约束
【MySQL】表的约束
|
1月前
|
关系型数据库 MySQL
【MySQL进阶之路 | 基础篇】约束之CHECK约束与DEFAULT约束
【MySQL进阶之路 | 基础篇】约束之CHECK约束与DEFAULT约束
|
1月前
|
关系型数据库 MySQL 索引
【MySQL进阶之路 | 基础篇】约束之主键约束与AUTO_INCREMENT
【MySQL进阶之路 | 基础篇】约束之主键约束与AUTO_INCREMENT
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL进阶之路 | 基础篇】约束之概述
【MySQL进阶之路 | 基础篇】约束之概述