ALTER命令

  作用:当我们修改数据库的列属性、列名称、表名等,要使用ALTER命令

  教程:

  1、首先是我们创建一个数据库以及一张表

mysql> create table exercise(-> id int,-> name varchar(15)-> );

    1.1、查看表结构

mysql> SHOW COLUMnS FROM exercise;  或者使用  DESC erercise;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(15) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

  删除、添加、修改表字段

  1、删除一个字段,比如id

mysql> ALTER TABLE exercise drop id;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> DESC exercise;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(15) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.00 sec)

  2、添加字段

    2.1、添加一个字段,比如id_new

mysql> ALTER TABLE exercise ADD COLUMN id_new int;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> DESC exercise;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name   | varchar(15) | YES  |     | NULL    |       |
| id_new | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

    2.2、将新添加的字段设置为第一列

mysql> ALTER TABLE exercise ADD COLUMN sex varchar(1) FIRST;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> DESC exercise;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| sex    | varchar(1)  | YES  |     | NULL    |       |
| name   | varchar(15) | YES  |     | NULL    |       |
| id_new | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

    2.3、在某个列之后添加新的字段,比如在name列后添加

mysql> ALTER TABLE exercise ADD COLUMN address char(50) AFTER name;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> DESC exercise;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| sex     | varchar(1)  | YES  |     | NULL    |       |
| name    | varchar(15) | YES  |     | NULL    |       |
| address | char(50)    | YES  |     | NULL    |       |
| id_new  | int(11)     | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

  总结:添加字段,只有FIRST和AFTER关键字两个

  3、修改一个字段属性及名称

    3.1、修改列属性

      使用modify修改列属性

mysql> ALTER TABLE exercise modify id_new int(4);  #将原来的int(11)修改为int(4)
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> DESC exercise;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name   | varchar(15) | YES  |     | NULL    |       |
| id_new | int(4)      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

      使用change修改列属性

mysql> ALTER TABLE exercise CHANGE id_new id_new int(8);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> DESC exercise;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name   | varchar(15) | YES  |     | NULL    |       |
| id_new | int(8)      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

    总结:modify和change的区别:修改列属性时,使用change比较麻烦,要写两次列名称,而使用modify只需要写一次列名称就可以了。

    3.2、修改列名字

mysql> ALTER TABLE exercise CHANGE id_new id_new_new;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql> ALTER TABLE exercise CHANGE id_new id_new_new int(8);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> DESC exercise;+------------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | name | varchar(15) | YES | | NULL | | | id_new_new | int(8) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)

    总结:修改列名称需要使用CHANGE,而MODIFY不能修改列的名称。如果要同时修改名称和属性还是CHANGE。使用CHANGE后面要跟上旧列、新列的名称,以及列属性。因此修改名称前先查看列属性。

    一句话:字段名称CHANGE;字段属性MODIFY。即名称又属性还是CHANGE

  4、修改表名称

mysql> ALTER TABLE exercise rename exercise_new;
Query OK, 0 rows affected (0.01 sec)mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| exercise_new   |
+----------------+
1 row in set (0.00 sec)

  5、ALTER 修改字段的默认值

  我们往往在建表的时候给某个列的属性上面设置默认值,比如“DEFAULT NULL”等等。如何修改默认值呢?首先来查看所有列的默认值

mysql> SHOW COLUMNS FROM exercise;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| sex     | varchar(1)  | YES  |     | NULL    |       |
| name    | varchar(15) | YES  |     | NULL    |       |
| address | char(50)    | YES  |     | NULL    |       |
| id_new  | int(11)     | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

  基本所有的列默认值DEFAULT都是NULL,现在我们指定“sex”列默认值是“M”

mysql> ALTER TABLE exercise ALTER sex SET DEFAULT 'M';
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

  查看一下:

mysql> SHOW COLUMNS FROM exercise;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| sex     | varchar(1)  | YES  |     | M       |       |
| name    | varchar(15) | YES  |     | NULL    |       |
| address | char(50)    | YES  |     | NULL    |       |
| id_new  | int(11)     | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

  尝试删除表中一个列的默认值

mysql> ALTER TABLE exercise ALTER sex drop DEFAULT;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

  再来查看一下:

mysql> SHOW COLUMNS FROM exercise;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| sex     | varchar(1)  | YES  |     | NULL    |       |
| name    | varchar(15) | YES  |     | NULL    |       |
| address | char(50)    | YES  |     | NULL    |       |
| id_new  | int(11)     | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

转载于:https://www.cnblogs.com/FengGeBlog/p/9771646.html

Mysql基础之 ALTER命令相关推荐

  1. MySQL基础知识——ALTER TABLE

    点击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 ALTER TABLE的作用 ALTER TABLE命令用于添加.删除或者更改现有数据 ...

  2. mysql基础操作和命令

    #mysql ###mysql工具使用 //语法:mysql [OPTIONS] [database] //常用的OPTIONS: -uUSERNAME //指定用户名,默认为root -hHOST ...

  3. Mysql学习总结(6)——MySql之ALTER命令用法详细解读

    MySql语法中Alter命令的用法,这是一个用法比较多的语法,而且功能还是很强大的. [sql] 

  4. alter在MySQL中是什么意思_MySql之ALTER命令用法详细解读(转)

    本文详细解读了MySql语法中Alter命令的用法,这是一个用法比较多的语法,而且功能还是很强大的. USE learning;(自己要提前建好) CREATE TABLE student(id IN ...

  5. MySQL基础一些概念一些用法

    MySQL基础_为什么学习数据库 [toc] 实现数据辞持久化(本地) 使用完整的管理系统统一查询管理 MySQL基础_数据库的相关概念 DB 数据库( database ):存储数据的"仓 ...

  6. Mysql 基础命令

    MySQL基础命令 创建用户 1 -- 查看系统用户2 select Host,User,Password from mysql.user;3 4 -- 创建一个远程用户 5 create user ...

  7. MySQL基础命令-学习的时候记录一下

    MySQL基础命令 DDL-操作数据库命令 R(Retrieve):查询功能 ① 查询所有数据库 SHOW DATEBASES; ② 查询数据库的创建语句 SHOW CREATE DATABASE d ...

  8. mysql源码添加一个命令,MySQL ALTER命令

    MySQL ALTER命令 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本章教程前让我们先创建一张表,表名为:testalter_tbl. root@ho ...

  9. mysql alter算法_MySQL ALTER命令_mysql alter_添加_删除_修改

    MySQL ALTER命令 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本章教程前让我们先创建一张表,表名为:testalter_tbl. root@ho ...

  10. linux mysql运维_Linux运维常用的 MySQL基础命令

    # MySQL基础命令 ------------- ### 创建MySQL库,授权. >create database mysqldb character set utf8; >grant ...

最新文章

  1. 20172317 2018-2019-1 《程序设计与数据结构》第6周学习总结
  2. arm-linux-gcc的安装
  3. server2016 查看图片 预览图片
  4. log4net 记录日志到sqlserver
  5. 【Linux】一步一步学Linux——more命令(39)
  6. 前端JavaScripts基础知识点轮播图
  7. 使用vue-amap
  8. LeetCode 5. 最长回文子串(动态规划)
  9. 线程+urllib下载互联网图片的一个示例
  10. 记录一次重装win10系统的流程
  11. WPS如何使参考文献对齐
  12. ectouch2.0 php5.5_Ectouch2.0 分析解读代码审计流程
  13. 《自然语言处理简明教程》读书笔记:第十四章 文本数据挖掘
  14. ih5怎么切换下一个页面_ih5快速入门(二)
  15. 智能对话 | 使用 Java实现 智能对话机器人
  16. 国内外视频编解码标准体系-我们在音视频标准化组织的工作,唯有坚持、主动、投入
  17. [学习笔记] CDQ分治 从感性理解到彻底晕菜
  18. 用python写情书_用Python给喜欢人的发一封邮件吧(群发)
  19. 高清摄像头MIPI CSI2接口浅解【转】
  20. 惠普t630服务器u盘安装系统,t630服务器设置u盘启动

热门文章

  1. 队列:先进先出的线性表,如何实现增删查?
  2. Rabbitmq-server-3.7.18安装完整过程
  3. SpringBoot番外篇-微服务架构【1.起源与定义】
  4. python交互式程序设计导论第三周小测验答案,2020学堂云Python 交互式程序设计导论答案第五章节答案...
  5. SpringBoot+zk+dubbo架构实践(二):SpringBoot 集成 zookeeper
  6. 运行Django,Python崩溃
  7. linux中用c语言做一个游戏主播,当一个游戏主播需要做什么直播准备?
  8. input输入框大小设置_Qualtrics调查问卷设计1-如何在输入框前后添加辅助文字
  9. 基于 display 和 javaScript 封装一个页面布局小插件
  10. PHP用户连续签到赠送额外积分