史上最简单的 MySQL 教程(九)「列属性 之 空属性、列描述和默认值」

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 史上最简单的 MySQL 教程(九)「列属性 之 空属性、列描述和默认值」

史上最简单的 MySQL 教程(九)「列属性 之 空属性、列描述和默认值」

列属性

列属性:实际上,真正约束字段的是数据类型,但是数据类型的约束比较单一,因此就需要额外的一些约束来保证数据的有效性,这就是列属性。

列属性有很多,例如:null、not null、default、primary key、unique key、auto_increment和comment等。

空属性

空属性有两个值,分别为:null和not null.

虽然默认数据库的字段基本都为空,但是实际上在真正开发的时候,要尽可能的保证数据不为空,因为空数据没有意义,也没办法参与运算。

执行如下 SQL 语句,进行演示:

-- 空属性演示
create table my_class(
  grade varchar(20) not null,
  room varchar(20) null  -- 显式声明为空,实际上,默认就为空
)charset utf8;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4tKq4bei-1648097200246)(https://github.com/guobinhit/mysql-tutorial/blob/master/images/column-null-comment-default/create-table-myclass.png)]


列描述

列描述:comment,表示描述,没有实际含义,是专门用来描述字段的,其会随着表创建语句自动保存,用来给程序员(数据库管理员)了解数据库使用。


执行如下 SQL 语句,进行演示:

-- 列描述演示
create table my_friend(
  name varchar(20) not null comment '姓名',
  age tinyint not null comment '年龄'
)charset utf8;

默认值

默认值:default,某一数据会经常性出现某个具体的值,因此可以在开始的时候就指定好,而在需要真实数据的时候,用户可以选择性的使用默认值。

执行如下 SQL 语句,进行演示:

-- 默认值演示
create table my_default(
  name varchar(20) not null,
  age tinyint unsigned default 0,
  gender enum('男','女') default '男'
)charset utf8;

如上图所示,在列属性Default中已经展示了age和gender字段的默认值,这说明咱们设置成功啦!接下来,咱们再演示如何使用默认值:

-- 演示默认值的使用(即不该对应的字段赋值)
insert into my_default (name) values ('Charies');
insert into my_default values ('Guo',18,default);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7zoVR5UP-1648097200248)(https://github.com/guobinhit/mysql-tutorial/blob/master/images/column-null-comment-default/insert-mydefault.png)]


观察上面的 SQL 语句及执行结果,相信大家已经知道如何使用默认值啦,即不给设置默认值的字段赋值或者用default代替相应的字段值。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
存储 关系型数据库 MySQL
mysql安装教程mac
【4月更文挑战第21天】
|
1天前
|
SQL 关系型数据库 MySQL
MySQL最新版8.1.0安装配置教程
本文章,是对自己在安装最新版MySQL最新版8.1.0安装配置的一个详细过程吧,中间也有很多不清楚的地方,但是经过自己的多次对,工具环境以及软件环境的配置,现在对于这个的安装也算得心应手吧,不仅仅是一种总结,更是对自己经验的一种积累.
|
1天前
|
存储 安全 关系型数据库
MySQL中使用percona-xtrabackup工具 三种备份及恢复 (超详细教程)
MySQL中使用percona-xtrabackup工具 三种备份及恢复 (超详细教程)
|
1天前
|
关系型数据库 MySQL Linux
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
|
1天前
|
安全 关系型数据库 MySQL
MySQL安装教程
MySQL安装教程
33 0
|
1天前
|
关系型数据库 MySQL Linux
【MySQL-2】MySQL的下载&安装&启停&配置环境变量【一条龙教程】
【MySQL-2】MySQL的下载&安装&启停&配置环境变量【一条龙教程】
|
1天前
|
关系型数据库 MySQL 数据库
【MySQL】:超详细MySQL完整安装和配置教程
【MySQL】:超详细MySQL完整安装和配置教程
318 1
|
1天前
|
Java 关系型数据库 MySQL
Java基础教程(20)-Java连接mysql数据库CURD
【4月更文挑战第19天】MySQL是流行的关系型数据库管理系统,支持SQL语法。在IDEA中加载jar包到项目类路径:右击项目,选择“Open Module Settings”,添加库文件。使用JDBC连接MySQL,首先下载JDBC驱动,然后通过`Class.forName()`加载驱动,`DriverManager.getConnection()`建立连接。执行CRUD操作,例如创建表、插入数据和查询,使用`Statement`或`PreparedStatement`,并确保正确关闭数据库资源。
|
1天前
|
关系型数据库 MySQL Windows
windows安装MySQL5.7教程
windows安装MySQL5.7教程
28 0
|
1天前
|
关系型数据库 MySQL 数据库
docker 安装mysql(踩坑踩得想哭 详细解决教程)ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using pa
docker 安装mysql(踩坑踩得想哭 详细解决教程)ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using pa
35 1