MySQL数据表的创建、查看、修改和删除(新手必看)
本节将详细介绍 MySQL 数据表的基本操作,主要包括创建数据表、查看数据表结构、修改数据表、删除数据表。
创建数据表的语句为 CREATE TABLE,语法规则如下:
使用 CREATE TABLE 创建表时,必须指定以下信息:
例如创建员工表 tb_emp1,结构如下表所示。
首先创建数据库,SQL 语句如下:
然后创建 tb_emp1 表,SQL 语句为:
在 MySQL 中,查看表结构可以使用 DESCRIBE 和 SHOW CREATE TABLE 语句。
DESCRIBE/DESC 语句可以查看表的字段信息,其中包括字段名、字段数据类型、是否为主键、是否有默认值等。语法规则如下:
例如,使用 DESC 查看表 tb_emp1 的表结构:

图 1 查看数据表tb_emp1的结构
其中,各个字段的含义分别解释如下:
例如,将数据表 tb_emp1 中 name 字段的数据类型由 VARCHAR(22) 修改成 VARCHAR(30)。输入如下 SQL 语句并执行:
注意,在删除表的同时,表的定义和表中所有的数据均会被删除。因此,在进行删除操作前,最好对表中的数据进行备份,以免造成无法挽回的后果。
在 MySQL 中,使用 DROP TABLE 可以一次删除一个或多个没有被其他表关联的数据表,语法格式如下:
例如,删除数据表 tb_emp1 的 SQL 语句如下:
创建MySQL数据表
数据表属于数据库,在创建数据表之前,应该使用语句“USE <数据库名>”指定操作是在哪个数据库中进行,如果没有选择数据库,就会抛出“No database selected”的错误。创建数据表的语句为 CREATE TABLE,语法规则如下:
CREATE TABLE <表名> ( 字段名1,数据类型 [列级别约束条件] [默认值], 字段名2,数据类型 [列级别约束条件] [默认值], …… [表级别约束条件] );
使用 CREATE TABLE 创建表时,必须指定以下信息:
- 要创建的表的名称,不区分大小写,不能使用 SQL 语言中的关键字,如 DROP、ALTER、INSERT 等;
- 数据表中每一列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。
例如创建员工表 tb_emp1,结构如下表所示。
字段名称 | 数据类型 | 备注 |
---|---|---|
id | INT | 员工编号 |
name | VARCHAR(25) | 员工名称 |
deptId | INT | 所在部门编号 |
salary | FLOAT | 工资 |
首先创建数据库,SQL 语句如下:
CREATE DATABASE test_db;
然后创建 tb_emp1 表,SQL 语句为:
CREATE TABLE tb_emp1 ( id INT, name VARCHAR(25), deptId INT, salary FLOAT );语句执行后,即可创建数据表 tb_emp1。
查看MySQL数据表
使用 SQL 语句创建好数据表之后,可以查看表结构的定义,以确认表的定义是否正确。在 MySQL 中,查看表结构可以使用 DESCRIBE 和 SHOW CREATE TABLE 语句。
DESCRIBE/DESC 语句可以查看表的字段信息,其中包括字段名、字段数据类型、是否为主键、是否有默认值等。语法规则如下:
DESCRIBE 表名;或者简写为:
DESC 表名;
例如,使用 DESC 查看表 tb_emp1 的表结构:
DESC tb_emp1;执行结果如下图所示:

图 1 查看数据表tb_emp1的结构
其中,各个字段的含义分别解释如下:
- Field:表示该列字段的名称;
- Type:表示该列的数据类型;
- Null:表示该列是否可以存储 NULL 值;
- Key:表示该列是否已编制索引。PRI 表示该列是表主键的一部分;UNI 表示该列是 UNIQUE 索引的一部分;MUL 表示在列中某个给定值允许出现多次。
- Default:表示该列是否有默认值,如果有的话,则值是多少。
- Extra:表示可以获取的与给定列有关的附加信息,例如 AUTO_INCREMENT 等。
修改MySQL数据表
MySQL 通过 ALTER TABLE 语句来修改表结构,具体的语法规则如下:ALTER[IGNORE] TABLE数据表名alter_spec[,alter_spec]…其中,alter_spec 子句定义要修改的内容,语法如下:
slter_spercification: ADD [COLUMN] create_definition [FIRST|AFTER column_name] //添加新字段 | ADD INDEX [index_name](index_col_name,…) //添加索引名称 | ADD PRIMARY KEY (index_col_name,…) //添加主键名称 | ADD UNIQUE[index_name](index_col_name,…) //添加唯一索引 | ALTER [COLUMN] col_name{SET DEFAULT literal |DROP DEFAULT}//修改字段名称 | CHANGE [COLUMN] old_col_name create_definition //修改字段类型 | MODIFY [COLUMN] create_definition //添加子句定义类型 | DROP [COLUMN] col_name //删除字段名称 | DROP PRIMARY KEY //删除主键名称 | DROP INDEX idex_name //删除索引名称 | RENAME [AS] new_tbl_name //更改表名 | table_options
例如,将数据表 tb_emp1 中 name 字段的数据类型由 VARCHAR(22) 修改成 VARCHAR(30)。输入如下 SQL 语句并执行:
ALTER TABLE tb_emp1 MODIFY name VARCHAR(30);
删除MySQL数据表
删除数据表就是将数据库中已经存在的表从数据库中删除。注意,在删除表的同时,表的定义和表中所有的数据均会被删除。因此,在进行删除操作前,最好对表中的数据进行备份,以免造成无法挽回的后果。
在 MySQL 中,使用 DROP TABLE 可以一次删除一个或多个没有被其他表关联的数据表,语法格式如下:
DROP TABLE [IF EXISTS]表1, 表2,…表n;
- “表n”指要删除的表的名称,后面可以同时删除多个表,只需将要删除的表名依次写在后面,相互之间用逗号隔开即可。如果要删除的数据表不存在,则 MySQL 会提示一条错误信息:“ERROR 1051 (42S02): Unknown table '表名'”。
- 参数“IF EXISTS”用于在删除前判断删除的表是否存在,加上该参数后,再删除表的时候,如果表不存在,SQL 语句可以顺利执行,但是会发出警告(warning)。
例如,删除数据表 tb_emp1 的 SQL 语句如下:
DROP TABLE IF EXISTS tb_emp1;