Mysql基础之 ALTER命令
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命令相关推荐
- MySQL基础知识——ALTER TABLE
点击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 ALTER TABLE的作用 ALTER TABLE命令用于添加.删除或者更改现有数据 ...
- mysql基础操作和命令
#mysql ###mysql工具使用 //语法:mysql [OPTIONS] [database] //常用的OPTIONS: -uUSERNAME //指定用户名,默认为root -hHOST ...
- Mysql学习总结(6)——MySql之ALTER命令用法详细解读
MySql语法中Alter命令的用法,这是一个用法比较多的语法,而且功能还是很强大的. [sql]
- alter在MySQL中是什么意思_MySql之ALTER命令用法详细解读(转)
本文详细解读了MySql语法中Alter命令的用法,这是一个用法比较多的语法,而且功能还是很强大的. USE learning;(自己要提前建好) CREATE TABLE student(id IN ...
- MySQL基础一些概念一些用法
MySQL基础_为什么学习数据库 [toc] 实现数据辞持久化(本地) 使用完整的管理系统统一查询管理 MySQL基础_数据库的相关概念 DB 数据库( database ):存储数据的"仓 ...
- Mysql 基础命令
MySQL基础命令 创建用户 1 -- 查看系统用户2 select Host,User,Password from mysql.user;3 4 -- 创建一个远程用户 5 create user ...
- MySQL基础命令-学习的时候记录一下
MySQL基础命令 DDL-操作数据库命令 R(Retrieve):查询功能 ① 查询所有数据库 SHOW DATEBASES; ② 查询数据库的创建语句 SHOW CREATE DATABASE d ...
- mysql源码添加一个命令,MySQL ALTER命令
MySQL ALTER命令 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本章教程前让我们先创建一张表,表名为:testalter_tbl. root@ho ...
- mysql alter算法_MySQL ALTER命令_mysql alter_添加_删除_修改
MySQL ALTER命令 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本章教程前让我们先创建一张表,表名为:testalter_tbl. root@ho ...
- linux mysql运维_Linux运维常用的 MySQL基础命令
# MySQL基础命令 ------------- ### 创建MySQL库,授权. >create database mysqldb character set utf8; >grant ...
最新文章
- 20172317 2018-2019-1 《程序设计与数据结构》第6周学习总结
- arm-linux-gcc的安装
- server2016 查看图片 预览图片
- log4net 记录日志到sqlserver
- 【Linux】一步一步学Linux——more命令(39)
- 前端JavaScripts基础知识点轮播图
- 使用vue-amap
- LeetCode 5. 最长回文子串(动态规划)
- 线程+urllib下载互联网图片的一个示例
- 记录一次重装win10系统的流程
- WPS如何使参考文献对齐
- ectouch2.0 php5.5_Ectouch2.0 分析解读代码审计流程
- 《自然语言处理简明教程》读书笔记:第十四章 文本数据挖掘
- ih5怎么切换下一个页面_ih5快速入门(二)
- 智能对话 | 使用 Java实现 智能对话机器人
- 国内外视频编解码标准体系-我们在音视频标准化组织的工作,唯有坚持、主动、投入
- [学习笔记] CDQ分治 从感性理解到彻底晕菜
- 用python写情书_用Python给喜欢人的发一封邮件吧(群发)
- 高清摄像头MIPI CSI2接口浅解【转】
- 惠普t630服务器u盘安装系统,t630服务器设置u盘启动
热门文章
- 队列:先进先出的线性表,如何实现增删查?
- Rabbitmq-server-3.7.18安装完整过程
- SpringBoot番外篇-微服务架构【1.起源与定义】
- python交互式程序设计导论第三周小测验答案,2020学堂云Python 交互式程序设计导论答案第五章节答案...
- SpringBoot+zk+dubbo架构实践(二):SpringBoot 集成 zookeeper
- 运行Django,Python崩溃
- linux中用c语言做一个游戏主播,当一个游戏主播需要做什么直播准备?
- input输入框大小设置_Qualtrics调查问卷设计1-如何在输入框前后添加辅助文字
- 基于 display 和 javaScript 封装一个页面布局小插件
- PHP用户连续签到赠送额外积分