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 无限级分类实现思路

    关于该问题,暂时自己还没有深入研究,在网上找到几种解决方案,各有优缺点。
    2011-08-08
  • Mysql优化之Zabbix分区优化

    Mysql优化之Zabbix分区优化

    这篇文章主要介绍了Mysql优化中Zabbix分区优化的详细方法和优缺点分析,一起学习下。
    2017-11-11
  • window环境下使用VScode连接虚拟机MySQL方法

    window环境下使用VScode连接虚拟机MySQL方法

    这篇文章主要介绍了window环境下使用VScode连接虚拟机MySQL方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 详谈mysql order by in 的字符顺序(推荐)

    详谈mysql order by in 的字符顺序(推荐)

    下面小编就为大家带来一篇详谈mysql order by in 的字符顺序(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • mysql慢查询使用详解

    mysql慢查询使用详解

    慢查询是我们在mysql中经常需要使用到的一个很方便的功能,慢查询对于跟踪有问题的查询很有用,可以分析出当前程序里那些Sql语句比较耗费资源。
    2014-12-12
  • mysql用户变量与set语句示例详解

    mysql用户变量与set语句示例详解

    这篇文章主要给大家介绍了关于mysql用户变量与set语句的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • mysql Load Data InFile 的用法

    mysql Load Data InFile 的用法

    Load Data InFile是用于批量向数据表中导入记录。
    2009-05-05
  • MySQL语句整理及汇总介绍

    MySQL语句整理及汇总介绍

    今天小编就为大家分享一篇关于MySQL语句整理及汇总介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • MySQL 大表的count()优化实现

    MySQL 大表的count()优化实现

    这篇文章主要介绍了MySQL 大表的count()优化实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • linux Xtrabackup安装及使用方法

    linux Xtrabackup安装及使用方法

    Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品
    2013-04-04

最新评论