MySQL数据表操作详解

在对MySQL数据表进行操作之前,必须首先使用 use 语句选择数据库,才可在指定的数据库中对数据表进行操作。

下面详细说一下对数据表的操作方法。

(1)创建数据表 CREATE TABLE

使用 create table 语句创建数据表。语法如下

create [ TEMPORARY ] table [IF NOT EXISTS] 数据表名
[( create_definition,```)] [ table_options ] [select_statement]

create table语句的参数说明如下表

参数 说明
TEMPORARY 如果使用该关键字,表示创建一个临时表
IF NOT EXISTS 该关键字用于避免表存在时MySQL报告的错误
create_definition 这是表的列属性部分。MySQL要求在创建表时,表要至少包含一列
table_options 表的一些特性参数
select_statement SELECT语句描述部分,用它可以快速地创建表

下面介绍列属性create_definition部分,每一列定义的具体格式如下:

col_name type [NOT NULL INULL][DEFAULT default_value][AUTO_INCREMENT]
[PRIMARY KEY ][reference definition]

属性create_definition的参数说明如下表所示。

参数 说明
col_name 字段名
type 字段类型
NOT NULL l NULL 指出该列是否允许是空值,系统一般默认允许为空值,所以当不允许为空值时,必须使用NOT NULL
DEFAULT default_value 表示默认值
AUTO_INCREMENT 表示是否是自动编号,每个表只能有一个AUTO_INCREMENT列,并且必须被索引
PRIMARY KEY 表示是否为主键。一个表只能有一个PRIMARY KEY。如表中没有一个PRIMARYKEY,而某些应用程序需要PRIMARY KEY,MySQL将返回第一个没有任何NULL列的UNIQUE键,作为PRIMARY KEY
reference_definition 为字段添加注释

以上是创建一个数据表的一些基础知识,它看起来十分复杂,但在实际的应用中使用最基本的格式创建数据表即可,具体格式如下:

create table table_name(列名1属性,列名2属性…);

【例】使用CREATE TABLE语句在 MySQL 数据库 test 中创建一个名为 tb_admin 的数据表,该表包括iduserpasswordcreatetime等字段,如图所示。
MySQL数据表操作详解_第1张图片

(2)查看表结构 SHOW COLUMNS 或 DESCRIBE

①show columns 语句

show [FULL] columns from 数据表名 [from 数据库名]

或者:

show [FULL] columns from 数据库名.数据表名;

【例】使用 show columns 查看数据表 tb_admin 结构
MySQL数据表操作详解_第2张图片

②describe 语句

describe 数据表名;

其中 DESCRIBE 可以简写成DESC 。 在查看表结构时,也可以只列出某一列的信息。其语法格式如下:

describe 数据表名  列名;

【例】使用 describe 语句的简写形式查看数据表 tb_admin 中的某一列信息:
MySQL数据表操作详解_第3张图片

(3)修改表结构 ALTER TABLE

使用 alter table 语句修改表结构。修改表结构指增加或者删除字段、修改字段名称或者字段类型、设置取消主键外键、设置取消索引以及修改表的注释等。

alter [IGNORE] table 数据表名 alter_spec[, alter_spec]```

注意:当指定 IGNORE 时,如果出现重复关键的行,则只执行一行,其他重复的行被删除。

其中, alter_spec子句定义要修改的内容,其语法如下:

alter_specification:
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 index_name											//删除索引名称
RENAME [AS]new_tbl_name											//更改表名
table_options

alter table 语句允许指定多个动作,其动作间使用逗号分隔,每个动作表示对表的一个修改。

【例】添加一个新的字段email,类型为varchar(50)not null ,将字段user的类型由varchar(30)改为varchar(40),代码如下:

alter table 表名 add email varchar(50) not null, modify user varchar(40);

运行情况:
MySQL数据表操作详解_第4张图片

注意: 通过 alter 修改表列,其前提是必须将表中数据全部删除,然后才可以修改表列。

(4)重命名表 RENAME TABLE

语法如下:

rename table 数据表名1 to 数据表名2

注意: 该语句可以同时对多个数据表进行重命名,多个表之间以逗号“,”分隔。

【例】对数据表 tb_admin 进行重命名,更名后的数据表为 tb_user,如下图:
MySQL数据表操作详解_第5张图片

(5)删除表 DROP TABLE

类似删除数据库的操作

drop table 数据表名;

【例】删除数据表 tb_user:
在这里插入图片描述

注意:一旦删除了数据表,那么表中的数据将会全部清除,没有备份则无法恢复。

在删除数据表的过程中,删除一个不存在的表将会产生错误,如果在删除语句中加入 if exists 关键字就不会出错了:

drop table if exists 数据表名;

你可能感兴趣的:(MySQL,数据库,mysql)