创建实验环境

mysql> create database test_db;
Query OK, 1 row affected (0.00 sec) mysql> use test_db;
Database changed
mysql> create table test_table(id int(10),name varchar(20),age int);
Query OK, 0 rows affected (0.04 sec)

(1).查看表结构

  查看表结构有四种方法,如果查找的不是当前数据库里的表,一定要使用[数据库名].[表名]的格式使用。最常用的一般是desc [表名]。

mysql> desc test_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec) mysql> explain test_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec) mysql> show columns from test_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec) mysql> show fields from test_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

(2).修改表名

  alter table [旧的表名] rename [新的表名];

  如果不在当前数据库,需要使用[数据库名].[表名]代替单一的[表名]。

mysql> alter table test_table rename table_newname;
Query OK, 0 rows affected (0.04 sec) mysql> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| table_newname |
+-------------------+
1 row in set (0.00 sec)

(3).只修改表的字段类型

  alter tabel [表名] modify [字段名] [修改后的字段类型];

  如果不在当前数据库,需要使用[数据库名].[表名]代替单一的[表名]。

  修改已有数据的表的字段类型,请谨慎。

mysql> desc table_newname;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec) mysql> alter table table_newname modify name char(22);
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> desc table_newname;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | char(22) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)

(4).修改表的字段名和字段类型

  alter table [表名] change [旧的字段名] [新的字段名] [新的字段类型];

  如果不在当前数据库,需要使用[数据库名].[表名]代替单一的[表名]。

  修改已有数据的表的字段类型,请谨慎。如果不想修改字段类型,请保持类型的一致。

mysql> desc table_newname;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | char(22) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec) mysql> alter table table_newname change name newname char(30);
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> desc table_newname;
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| newname | char(30) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+---------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)

(5).添加字段

  alter table [表名] add [字段名] [字段类型];

  如果不在当前数据库,需要使用[数据库名].[表名]代替单一的[表名]。

mysql> desc table_newname;
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| newname | char(30) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+---------+----------+------+-----+---------+-------+
3 rows in set (0.01 sec) mysql> alter table table_newname add job char(40);
Query OK, 0 rows affected (0.13 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> desc table_newname;
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| newname | char(30) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| job | char(40) | YES | | NULL | |
+---------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)

(6).在表的指定位置添加字段

  字段添加到第一位:alter table [表名] add [字段名] [字段类型] first;

  字段添加到某一位的后面:alter table [表名] add [字段名] [字段类型] after [字段名];

  如果不在当前数据库,需要使用[数据库名].[表名]代替单一的[表名]。

mysql> desc table_newname;
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| newname | char(30) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| job | char(40) | YES | | NULL | |
+---------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec) mysql> alter table table_newname add sex enum('M','W') first;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> alter table table_newname add address varchar(40) after newname;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> desc table_newname;
+---------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| sex | enum('M','W') | YES | | NULL | |
| id | int(10) | YES | | NULL | |
| newname | char(30) | YES | | NULL | |
| address | varchar(40) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| job | char(40) | YES | | NULL | |
+---------+---------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

(7).删除表的指定字段

  alter table [表名] drop [字段名];

  如果不在当前数据库,需要使用[数据库名].[表名]代替单一的[表名]。

mysql> desc table_newname;
+---------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| sex | enum('M','W') | YES | | NULL | |
| id | int(10) | YES | | NULL | |
| newname | char(30) | YES | | NULL | |
| address | varchar(40) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| job | char(40) | YES | | NULL | |
+---------+---------------+------+-----+---------+-------+
6 rows in set (0.00 sec) mysql> alter table table_newname drop sex;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> desc table_newname;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| newname | char(30) | YES | | NULL | |
| address | varchar(40) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| job | char(40) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

  

  如果还有其他的操作,以后再加

对Mysql数据表本身进行操作的更多相关文章

  1. mysql数据表的字段操作

    CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, ` ...

  2. MySQL 数据表操作

    MySQL 数据表操作 创建MySQL数据表需要以下信息: -表名: -表字段名: -定义每个表字段: 一.创建数据表 1)mysql> create  table  table_name (c ...

  3. mysql(三) 数据表的基本操作操作

    mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...

  4. mysql 数据表操作 目录

    mysql 数据表操作 存储引擎介绍 mysql 使用存储引擎 mysql 数据表的增删改查 mysql 数据类型 mysql 约束条件

  5. 设置mysql数据表列自动递增以及数据行插入操作

    创建mysql数据表,设置id列递增.主键create table running_log ( id int primary key auto_increment, routename varchar ...

  6. MYSQL数据表损坏的原因分析和修复方法小结

    MYSQL数据表损坏的原因分析和修复方法小结 1.表损坏的原因分析 以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. ...

  7. 用Myisamchk让MySQL数据表更健康

    用Myisamchk让MySQL数据表更健康 2011-03-15 09:15 水太深 ITPUB 字号:T | T 为了让MySQL数据库中的数据表“更健康”,就需要对其进行定期体检.在这里笔者推荐 ...

  8. (转)MySQL数据表中带LIKE的字符匹配查询

    MySQL数据表中带LIKE的字符匹配查询 2014年07月15日09:56    百科369 MySQL数据表中带LIKE的字符匹配查询 LIKE关键字可以匹配字符串是否相等. 如果字段的值与指定的 ...

  9. 设置MySQL数据表主键

    设置MySQL数据表主键: 使用“primary key”关键字创建主键数据列.被设置为主键列不允许出现重复的值,很多情况下与“auto_increment”递增数字相结合.如下SQL语句所示: My ...

随机推荐

  1. 阿里 Linux服务器外网无法连接MySQL解决方法

    我的服务器买的是阿里云ECS linux系统.为了更好的操作数据库,我希望可以用navicat for mysql管理我的数据库. 当我按照正常的模式去链接mysql的时候, 报错提示: 2003-  ...

  2. element ui框架把el-select选中的value设置为对象

  3. c++ 智能指针的使用

    https://www.cnblogs.com/TenosDoIt/p/3456704.html #include <QCoreApplication> #include <stri ...

  4. nginx动静分离配置

    动静分离: 所谓动静分离指的是当访问静态资源时,路由到一台静态资源服务器,当访问是非静态资源时,路由到另外一台服务器 静态资源配置: 如配置如下location 表示url为  /static/*.x ...

  5. docker学习(五)

    一.实战案例介绍一些典型的应用场景和案例. 1.使用Supervisor来管理进程Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务.但我们经常 ...

  6. php数据类型之​浮点型

    所谓浮点类型,可以理解为:我们数学里面的小数. [注意]关于精度.取值范围和科学型声明不是学习的重点.因为此块在实际开发中用的特别少.我们将此块的知识点的学习标注为,了解级别.直线电机滑台 声明方式分 ...

  7. 将Eclipse,MyEclipse等编辑器的项目管理框颜色改为护眼豆沙绿的方法

    转载链接:https://blog.csdn.net/caibaoH/article/details/77005977

  8. Bzoj 1566: [NOI2009]管道取珠(DP)

    1566: [NOI2009]管道取珠 Time Limit: 20 Sec Memory Limit: 650 MB Submit: 1558 Solved: 890 [Submit][Status ...

  9. Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】

    转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...

  10. Python 学习随笔 - 1 - 基础数据类型、变量 及 基本运算

    仅有的C语言的基础都是大学时学的: 准备赶潮流,开始学习Python. 随笔记录学习过程中,靠一点点C语言基础难以去理解的地方,以及区别于C语言的地方,做些笔记作为以后参考. Python 解释器直接 ...