今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL数据表的字段修饰符。

一、字段修饰符简介

字段修饰符,简单来看是一种约束,主要用于约束数据库表中的一些字段。我们可以通过字段修饰符对数据库的数据进行一些设置,从而使得我们更方便的使用数据库。
今天,主要给大家介绍常用的字段修饰符,比如NOT NULL、Default以及Auto_Increment三种。

二、NOT NULL非空

之前我们介绍过,在创建数据表后,在向表内插入数据的过程中,不用指定所有的字段内容,而是可以只写入部分的字段内容。这种插入的结果,那些没有插入的字段处就为NULL,即空值。当一个字段被修饰为NOT NULL后,就不允许在插入数据时将该字段指定为空,否则MySQL会报错。我们在实际使用中,有些场景下字段有存储NULL的需求,比如大学成绩表,在未考试前,成绩就应该是NULL。但是,在很多情况下,一个字段不可能为NULL,这时我们就可以使用NOT NULL对该字段进行修饰。
注意,在MySQL中,NULL和空字符串不是一个概念,空字符串即在插入数据时,采用两个相邻的引号插入一个空的字符串,在MySQL实际存储数据时,不占用实际存储空间进行存储。但是,NULL在MySQL中需要采用特殊的编码来标识。因此,在插入索引或者是在进行字符排序等操作中,NULL比空字符串效率要慢的多。

三、Default字段默认值

前面我们讲到过,MySQL允许在插入数据时仅指定部分字段,这样其他的字段在默认情况下即为NULL。但是,在有些情况下,我们不希望该字段为NULL,而是希望该字段可以是我们自己预先设定的一个值。想要达到这种效果,我们就可以通过Default字段来实现。数据表中设定了Default的字段,会存在一个默认值,在插入数据时,如果指定了该字段的值,则该字段就为插入数据时指定的值,如果未指定该字段的值,就会默认为Default的默认值。

四、Auto_Increment自增

还有的情况下,我们在数据库中有一些ID的字段,对于这些字段,我们希望其可以随着我们数据的插入进行自动增长,这时我们可以使用Auto_Increment字段来修饰该字段。Aut_Increment字段在使用时一定要注意,该字段只能修改INT类型的字段,并且该字段必须存在键值索引,当插入数据时,该字段的值总是在最大值的基础上加1,例如,如果该字段已经设置了数据,那么当新插入值但是没有指定该字段的值时,MySQL会插入该字段内所有数据中最大的值加1。
另外,在已经存在部分数据的含有auto_increment的表中,如果删除了部分数据,则再次插入数据时,auto_increment字段的值并不会随着该字段的删除而重新计算,而是依旧按照之前的设置继续增加,如下所示:

如果想要让auto_increment字段的值重新计数,则需要执行MySQL命令:

truncate table 【表名】;

这样,MySQL就会重新计数了。注意,该命令会删除该表内所有内容,因此在执行该命令前,必须备份表内已有的数据。

五、字段修饰符SQL语句

关于MySQL数据表的字段修饰符,可以在创建表时添加或者是在创建表后修改,前一种方式即是在使用create创建数据表时,在要创建字段修饰符的字段后面直接添加相应的修饰符即可,第二种方式是使用alter命令结合change关键字进行修改,相应的SQL语句示例如下:

create table exp (id int primary key auto_increment , name varchar(20) default 'Pzz' , age int not null,address varchar(20));
alter table exp change address address varchar(20) not null;

上述命令执行后效果如下:


原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

SQL语句详解(五)——SQL字段修饰符相关推荐

  1. SQL语句详解(四)——SQL联表查询

    今天我们继续给大家介绍MySQL相关知识,本文主要内容是SQL联表查询. 一.SQL联表查询简介 在前文SQL语句详解(三)--SQL子查询中,我们给大家介绍了SQL子查询的相关知识和使用示例.实际上 ...

  2. MyBatis SQL语句详解

    MyBatis SQL语句详解 1 CRUD标签 1.1 select 1.2 insert 1.3 update 1.4 delete 1.5 #{ }和${ }的区别 2 动态SQL 2.1 if ...

  3. mysql切换用户sql语句,MySQL用户管理及SQL语句详解

    [(none)]>select user,host frommysql.user; #查询用户和主机+---------------+-----------+ | user | host | + ...

  4. oracle分页查询sql语句通用,oracle分页查询sql语句,oracle分页查询sql语句详解

    oracle分页查询sql语句,oracle分页查询sql语句详解,Oracle分页查询sql语句 Oracle中分页和MySql中的分页不同,MySql中的分页使用关键字limit即可,相对简单一点 ...

  5. MaxCompute SQL函数详解 ODPS SQL函数详解---之日期相关函数

    MaxCompute SQL函数详解 ODPS SQL函数详解 日期函数 to_date函数 返回类型:datetime 语法:to_date(类型 参数1,类型 参数2);to_date(strin ...

  6. MaxCompute SQL函数详解 ODPS SQL函数详解---之常用数学运算相关函数

    MaxCompute SQL函数详解 ODPS SQL函数详解---之常用数学运算相关函数 MaxCompute/ODPS SQL常用数学运算相关函数 ABS函数-计算绝对值 sql:select A ...

  7. 【数据库】MySQL的sql语句详解

    目录 MySQL之sql语句 一, INSERT语句 insert语句的使用: 1,给表中一次性插入一条记录 2,给表中一次性插入多条记录 二, REPLACE语句 REPLACE语句的使用 1,语法 ...

  8. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)...

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INT ...

  9. SQL基础:常用SQL语句详解(转)

    到今天为止,人们对关系数据库做了大量的研究,并开发出关系数据语言,为操作关系数据库提供了方便的用户接口.关系数据语言目前有几十种,具有增加.删除.修改.查询.数据定义与控制等完整的数据库操作功能.通常 ...

  10. mysql批量删除数据sql语句_mysql批量删除数据sql语句详解

    1.like与 in批量删除指定记录 like语法 like主要是用来模糊查询了 sql = "delete from A where field like '%ABC%'" 这个 ...

最新文章

  1. 提升篇——SELINUX相关介绍
  2. Android之LinearLayout布局下怎么让按钮固定在底部
  3. java final 修改_“无法改变的设计”——浅谈Java中的final关键字
  4. leetcode1011. 在 D 天内送达包裹的能力(二分查找)
  5. 【SpringCloud】Spring cloud Alibaba Sentinel @SentinelResource
  6. 如何终止Java线程
  7. .Net/C# 实现真正的只读的 Hashtable 类型的属性 (ReadOnly Hashtable Property)
  8. idea 集成svn
  9. 软件测试的职责描述,软件测试工程师的责任是什么?
  10. OceanBase架构浅析_OceanBase分布式数据库
  11. Maven中的pom.xml文件超详细解析
  12. Heaven of Imaginary(PKUSC2018)
  13. 20150201推荐
  14. 永磁同步电机的矢量控制策略(八)一一一仿真模型搭建与源代码
  15. 华为路由器接口IP地址如何配置与查看
  16. java EE crm代码_基于jsp的小型企业CRM-JavaEE实现小型企业CRM - java项目源码
  17. windows清理c盘的三种有效方法
  18. 高中数学必修3知识点总结归纳:第一章算法初步
  19. 以马丁格尔(翻倍加仓)为基础的长线交易策略
  20. java图形化Swing教程(二)

热门文章

  1. 数据预处理—4.为什么要趋近于正态分布?详解
  2. python—json模块的编码与解码
  3. TF2.0—tf.keras.layers.Activation
  4. [论文笔记]FusionNet: Fusing via Fully-Aware Attention with Application to Machine Comprehension
  5. 如何快速地真正的融入IT行业
  6. 用Python2编译Python3.X的代码: __future__ 模块
  7. 海量数据挖掘MMDS week7: 局部敏感哈希LSH(进阶)
  8. Sublime Text 3安装、配置和快捷键
  9. RNN、LSTM、GRU
  10. matlab多边形减面算法_matlab考前复习