MySQL命令行中给表添加一个字段(字段名、是否为空、默认值)

 更新时间:2016年04月16日 21:08:13   作者:洪哥  
本文介绍MySQL数据库使用SQL语句来在现有的表中,添加一个新的字段,包括设置字段的是否为空、默认值等

先看一下最简单的例子,在test中,添加一个字段,字段名为birth,类型为date类型。

mysql> alter table test add column birth date;
Query OK, 0 rows affected (0.36 sec)
Records: 0  Duplicates: 0  Warnings: 0

查询一下数据,看看结果:

mysql> select * from test;
+------+--------+----------------------------------+------------+-------+
| t_id | t_name | t_password                       | t_birth    | birth |
+------+--------+----------------------------------+------------+-------+
|    1 | name1  | 12345678901234567890123456789012 | NULL       | NULL  |
|    2 | name2  | 12345678901234567890123456789012 | 2013-01-01 | NULL  |
+------+--------+----------------------------------+------------+-------+
2 rows in set (0.00 sec)

从上面结果可以看出,插入的birth字段,默认值为空。我们再来试一下,添加一个birth1字段,设置它不允许为空。

mysql> alter table test add column birth1 date not null;
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

居然执行成功了!?意外了!我原来以为,这个语句不会成功的,因为我没有给他指定一个默认值。我们来看看数据:

mysql> select * from test;
+------+--------+----------------------------------+------------+-------+------------+
| t_id | t_name | t_password                       | t_birth    | birth | birth1     |
+------+--------+----------------------------------+------------+-------+------------+
|    1 | name1  | 12345678901234567890123456789012 | NULL       | NULL  | 0000-00-00 |
|    2 | name2  | 12345678901234567890123456789012 | 2013-01-01 | NULL  | 0000-00-00 |
+------+--------+----------------------------------+------------+-------+------------+
2 rows in set (0.00 sec)

哦,明白了,系统自动将date类型的值,设置了一个默认值:0000-00-00。下面我来直接指定一个默认值看看:

mysql> alter table test add column birth2 date default '2013-1-1';
Query OK, 0 rows affected (0.28 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select * from test;
+------+--------+----------------------------------+------------+-------+------------+------------+
| t_id | t_name | t_password                       | t_birth    | birth | birth1     | birth2     |
+------+--------+----------------------------------+------------+-------+------------+------------+
|    1 | name1  | 12345678901234567890123456789012 | NULL       | NULL  | 0000-00-00 | 2013-01-01 |
|    2 | name2  | 12345678901234567890123456789012 | 2013-01-01 | NULL  | 0000-00-00 | 2013-01-01 |
+------+--------+----------------------------------+------------+-------+------------+------------+
2 rows in set (0.00 sec)

看到没,将增加的birth2字段,就有一个默认值了,而且这个默认值是我们手工指定的。

关于MySQL中给表添加一个字段,本文就介绍这么多,希望对大家有所帮助,谢谢!

相关文章

  • MySQL高级操作指令汇总

    MySQL高级操作指令汇总

    本文给大家带来的是MySQL高级操作指令代码,罗列的很详细并且附带有例子,对大家的学习将会很有用,建议收藏以防丢失,需要的朋友可以参考下
    2022-01-01
  • 详细分析MySQL主从复制

    详细分析MySQL主从复制

    这篇文章主要介绍了MySQL主从复制的相关资料,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • Mysql分库分表之后主键处理的几种方法

    Mysql分库分表之后主键处理的几种方法

    Mysql分库分表之后,主键如何处理?本文主要介绍了Mysql分库分表之后主键处理的几种方法,具有一定的参考价值,感兴趣的可以了解一下
    2022-02-02
  • Windows下MySQL5.6查找my.ini配置文件的方法

    Windows下MySQL5.6查找my.ini配置文件的方法

    今天小编就为大家分享一篇Windows下MySQL5.6查找my.ini配置文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 4种MySQL数据同步ES方案详解

    4种MySQL数据同步ES方案详解

    这篇文章主要给大家分享介绍了关于4种MySQL数据同步ES方案的相关资料,MySQL是一种常用的关系型数据库,而Elasticsearch是一种为搜索和分析而设计的分布式全文搜索引擎,需要的朋友可以参考下
    2023-10-10
  • Mysql索引创建删除及使用代价

    Mysql索引创建删除及使用代价

    这篇文章主要为大家介绍了Mysql索引创建删除及使用代价详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 21条MySQL优化建议(经验总结)

    21条MySQL优化建议(经验总结)

    这篇文章主要介绍了21条MySQL优化建议,均来自个人的实战经验总结,需要的朋友可以参考下
    2014-07-07
  • Mysql实现主从配置和多主多从配置

    Mysql实现主从配置和多主多从配置

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。必然会想到假设服务器群,来分担主数据库的压力。今天总结一下利用MySQL主从配置,减轻数据库压力
    2021-06-06
  • MySQL配置文件my.cnf参数优化和中文详解

    MySQL配置文件my.cnf参数优化和中文详解

    这篇文章主要介绍了MySQL配置文件my.cnf参数优化和中文详解,非常详细的用中文注释了各个参数的作用以及建议值,需要的朋友可以参考下
    2014-03-03
  • mysql中如何查看表空间

    mysql中如何查看表空间

    这篇文章主要介绍了mysql中如何查看表空间问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论