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

先看一下最简单的例子,在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中给表添加一个字段,本文就介绍这么多,希望对大家有所帮助,谢谢!

(0)

相关推荐

  • SQL提取数据库表名及字段名等信息代码示例

    本文向大家介绍了使用SQL语句提取数据库所有表的表名.字段名的实例代码,在SQLserver 中进行了测试,具体内容如下: --查询所有用户表所有字段的特征 SELECT D.Name as TableName, A.colorder AS ColOrder, A.name AS Name, COLUMNPROPERTY(A.ID,A.Name, 'IsIdentity') AS IsIdentity, CASE WHEN EXISTS (SELECT 1 FROM dbo.sysobjects

  • MySQL中字段名和保留字冲突的解决办法

    我们知道通常的SQL查询语句是这么写的: 复制代码 代码如下: select col from table; 这当然没问题,但如果字段名是"from"呢? 复制代码 代码如下: select from from table; 若真的这么写,必然出错,当字段名与MySQL保留字冲突时,可以用字符"`"将字段名括起来: 复制代码 代码如下: select `from` from table; 总结 刚发现我原先设计的数据库表里有两个字段都用了保留字(add,commen

  • php mysql获取表字段名称和字段信息的三种方法

    php mysql获取表字段名称和字段信息的三种方法 先给出本实例中使用的表的信息: 使用desc获取表字段信息 php代码如下: <?php mysql_connect("localhost","root",""); mysql_select_db("test"); $query = "desc student"; $result = mysql_query($query); while($row=

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

    先看一下最简单的例子,在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; +------+--------+-----------------------

  • mysql命令行中执行sql的几种方式总结

    1.直接输入sql执行 MySQL> select now(); +---------------------+ | now() | +---------------------+ | 2013-09-18 13:55:45 | +---------------------+ 1 row in set (0.00 sec) 2.执行编写好的sql脚本 mysql> source H:/1.sql +---------------------+ | now() | +--------------

  • 教你如何在MySQL命令行中使用SQL语句的规则

    规则1: SQL语句必须以分号(;)或者(\G)结束 分号(;)是SQL语句的结束标志.如果遗忘了分号,而直接按下回车键时,在MySQL客户端上将显示如下 mySQL> SELECT * FROM customer -> 因为没有以分号结束,客户端认为SQL语句并没有结束,显示[->]等待用户继续输入命令,直到以分号结束.有些数据库中,支持省略最后的分号的情况. 规则2: 保留关键字不区分大小写 保留关键字是SQL中事先定义好的关键字,如上面检索语句中的SELECT.FROM等就属于保留

  • MySQL命令行下18个常用命令

    在日常的网站维护和管理中,会用到非常多的SQL语句, 熟练使用对网站管理有很多好处,尤其是站群管理的时候. 下面列一些常用的命令做备记. 1.显示数据库 show databases 显示表 show tables;  2.创建用户 创建root用户密码为123 use mysql; grant all on *.* to root@'%' identified by '123' with grant option; commit;  3.修改密码 grant all on *.* to xin

  • MySQL在Linux系统中隐藏命令行中的密码的方法

    在命令行中输入命令并不是一个好主意,会造成安全问题.但是如果你决定去写一个应用,而这个应用需要在命令行中使用密码或者其他敏感信息.那么,你能通过以下方法禁止系统的其他用户轻易的看到这些敏感数据 呢?,类似MySQL在ps命令下隐藏密码. 假设我这里系统里两个用户,一个是root ,一个是dabu .测试系统为centos 6.5在按照下面的步骤做: [root@dabu.info ~]#su dabu #切换到dabu这个账号 [dabu@dabu.info ~]$cd ~ #切换到dabu的h

  • MYSQL命令行导入导出数据库详解

    Mysql命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql -u root -p   (输入同样后会让你输入MySQL的密码) 4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库 5,输入:mysql>use 目标数据库名 如我输入的命令行:mysql>use news; 6,导入文件:mysql>s

  • MySQL命令行导出导入数据库实例详解

    MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 5.5\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u lmapp -p lmapp -P 3308 > lmapp.sql   (输入后会让你

  • mysql命令行如何操作

    现在向大家介绍mysql命令行下,从数据库的建立到表数据的删除全过程,希望对大家有所帮助. 登陆mysql 打cmd命令终端,如果已经添加了mysql的环境变量,可以直接使用命令mysql -uroot直接回车,之后按提示输入密码. 如果未添加mysql的环境变量,可以切换到mysql的安装目录下的bin目录,再使用mysq -uroot 你也可以手动为mysql添加环境变量. 下面先介绍怎么添加环境变量的方法,使得在cmd命令行中运行mysql. 下载最新版mysql软件,将mysql安装到系

  • Mysql 命令行模式访问操作mysql数据库操作

    使用环境 在cmd模式下输入 mysql --version (查看mysql安装的版本). 完整的命令可以通过mysql --help来获取. 本测试使用的Mysql版本是mysql5, 本测试使用的SQL: db_yves.sql: 链接: https://pan.baidu.com/s/1vZWWgAp7TS48nrBiMDpcaQ提取码: vveu 1.连接数据库 不借助数据库管理软件(如Navicat等软件),通过dos连接mysql软件库服务器,然后操作数据库. 连接数据库通用格式:

  • 进入mysql命令行和退出mysql命令行详解

    目录 进入mysql命令 退出mysql命令 mysql命令行常用语句 进入mysql之前 基础命令行语句 关于mysql用户访问与权限 进入mysql命令 mysql -u 用户名 -p回车 然后输密码 或 mysql -u用户名 -p回车 然后输密码 退出mysql命令 mysql > exit; mysql > quit; mysql > \q; 如果以上命令都无法退出mysql则按:Ctrl+c. mysql命令行常用语句 进入mysql之前 操作 语句 登陆mysql mysq

随机推荐