3.2修改数据表
添加列
/*ALTER TABLE <表名>
ADD <新列名><数据类型>
[约束条件][FIRST | AFTER已存在列名];*/
alter table reader add email varchar(30); /*reader表新增email列 类型varchar*/
desc reader; /*查看表机构*/
------+-----------------+------+-----+---------+-------+/*返回结果*/
| Field | Type | Null | Key | Default | Extra |
+---------+-----------------+------+-----+---------+-------+
| card_id | char(18) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| sex | enum('男','女') | YES | | NULL | |
| age | tinyint | YES | | NULL | |
| tel | char(11) | YES | | NULL | |
| balance | decimal(7,3) | YES | | NULL | |
| email | varchar(30) | YES | | NULL | |/*看到新增列*/
+---------+-----------------+------+-----+---------+-------+
7 rows in set (0.00 sec)
/*指定位置添加列*/
alter table reader add email2 varchar(30) after tel;/*新增列email放在tel后面*/
修改列名
/*语法
ALTER TABLE <表名>
CHANGE <旧列名><新列名><新数据类型>;*/
alter table reader change email2 email_bak varchar (30);/*email2修改为Email_bak*/
desc reader;/*查看表结构*/
---------+-----------------+------+-----+---------+-------+/*返回结果*/
| Field | Type | Null | Key | Default | Extra |
+-----------+-----------------+------+-----+---------+-------+
| card_id | char(18) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| sex | enum('男','女') | YES | | NULL | |
| age | tinyint | YES | | NULL | |
| tel | char(11) | YES | | NULL | |
| email_bak | varchar(30) | YES | | NULL | |/*看到已修改*/
| balance | decimal(7,3) | YES | | NULL | |
| email | varchar(30) | YES | | NULL | |
+-----------+-----------------+-
修改列的数据类型
/*就是把列的数据类型转换成另一种数据类型
ALTER TABLE <表名> MODIFY <列名><数据类型>*/
alter table reader modify email varchar(25); /*更改Email的字符长度为25*/
desc reader;
-----------------------------/*返回结果*/
| balance | decimal(7,3) | YES | | NULL | |
| email | varchar(25) | YES | | NULL | |/*已经更改为25字符*/
+-----------+-----------------+------+-----+---------+----
修改列的排列位置
/*语法格式
ALTER TABLE <表名>
MODIFY <列1> <数据类型> FIRST|AFTER <列2>; FIRST放在前面,AFTER放在后面*/
alter table reader modify balance decimal(7,3) after email; /*把余额balance列放到email后面*/
desc reader;/*查看数据表结构*/
--------------/*返回结果*/
删除列
/*语法格式
ALTER TABLE <表名> DROP <列名>; */
alter table reader drop email_bak; /*删除Email_bak列*/
desc reader;
修改表名
/*语法格式
ALTER TABLE <旧表名> RENAME [TO] <新表名>;*/
alter table reader rename to readerinfo;
show tables; /*查看表*/
+----------------+/*返回结果*/
| Tables_in_book |
+----------------+
| readerinfo |
+----------------+
1 row in set (0.00 sec)
3.3删除数据库表
/*语法格式:
DROP TABLE [IF EXISTS] 表1,表2,.....表n;
可以删除一个或多个数据表,删除没有的表格会报错,if exists隐藏报错*/
use book;
show tables;
drop tables t1;