MySQL(4)——数据表的基本操作(2)
在数据库中,数据表是数据库中最重要/最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的,每一行代表一条唯一的记录,每一列代表记录的一个域
查看数据表结构
有两种方式,
show
语法结构:
SHOW [FULL] COLUMNS FROM 数据表名 [FROM 数据库名];
或者
SHOW [FULL] COLUMNS FROM 数据库名.数据表名;
示例:
mysql> show columns from user from test;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| userID | int | NO | PRI | NULL | auto_increment |
| userName | varchar(128) | NO | | NULL | |
| userPassword | varchar(128) | NO | | NULL | |
| userPhone | varchar(128) | NO | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
describe
语法结构:
DESCRIBE 数据表名;
示例:
mysql> describe user ;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| userID | int | NO | PRI | NULL | auto_increment |
| userName | varchar(128) | NO | | NULL | |
| userPassword | varchar(128) | NO | | NULL | |
| userPhone | varchar(128) | NO | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
也可以通过简写
mysql> desc user;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| userID | int | NO | PRI | NULL | auto_increment |
| userName | varchar(128) | NO | | NULL | |
| userPassword | varchar(128) | NO | | NULL | |
| userPhone | varchar(128) | NO | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
删除数据表
基础语法:
DROP TABLE 表名;
示例
mysql> drop table user;
Query OK, 0 rows affected (0.01 sec)
修改数据表
基础语法:
ALTER TABLE <表名> [修改选项]
{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名> }
添加字段
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名];
新字段名
为需要添加的字段的名称;FIRST
为可选参数,其作用是将新添加的字段设置为表的第一个字段;AFTER
为可选参数,其作用是将新添加的字段添加到指定的已存在的字段名的后面。
示例:
mysql> alter table user
-> add column testadd int first;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| testadd | int | YES | | NULL | |
| userID | int | NO | PRI | NULL | auto_increment |
| userName | varchar(128) | NO | | NULL | |
| userPassword | varchar(128) | NO | | NULL | |
| userPhone | varchar(128) | NO | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
修改字段数据类型
基础语法:
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
其中,表名指要修改数据类型的字段所在表的名称,字段名指需要修改的字段,数据类型指修改后字段的新数据类型。
示例:
mysql> alter table user
-> modify testadd varchar(100);
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> desc user;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| testadd | varchar(100) | YES | | NULL | |
| userID | int | NO | PRI | NULL | auto_increment |
| userName | varchar(128) | NO | | NULL | |
| userPassword | varchar(128) | NO | | NULL | |
| userPhone | varchar(128) | NO | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
删除字段
基础语法:
ALTER TABLE <表名> DROP <字段名>;
示例:
mysql> alter table user
-> drop testadd;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| userID | int | NO | PRI | NULL | auto_increment |
| userName | varchar(128) | NO | | NULL | |
| userPassword | varchar(128) | NO | | NULL | |
| userPhone | varchar(128) | NO | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
修改字段名称
基础语法:
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
修改表名
基础语法:
ALTER TABLE <旧表名> RENAME [TO] <新表名>;