mysql表的创建、查看、修改、删除
一、创建表
创建表前先使用use 数据库名
进入某一个数据库,创建表语句的格式如下:
create table 表名称 (
列名1 列的数据类型 [约束],
列名2 列的数据类型 [约束],
列名2 列的数据类型 [约束],
...
列名N 列的数据类型 [约束]
);
#注意:最后一个末尾没有逗号
比如创建一个表名称为students
,有name和age两列的表的命令为:
create table students (
name varchar(20),
age INTEGER
);
创建完之后通过show tables
命令,就可以看到刚创建的表了,如下所示:
mysql> create table students (
-> name varchar(20) ,
-> age INTEGER
-> );
Query OK, 0 rows affected (0.60 sec)
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students |
+----------------+
1 row in set (0.00 sec)
mysql>
注意:所有mysql语句都是使用的英文的符号!
二、查看表
-
查看数据库中所有表,使用
show tables
命令,例如:mysql> show tables; +----------------+ | Tables_in_mydb | +----------------+ | students | +----------------+ 1 row in set (0.00 sec)
-
查看表字段信息,使用
desc 表名称
,例如查看上面创建的students表的字段,可以使用desc students
命令,执行结果如下:mysql> show tables; +----------------+ | Tables_in_mydb | +----------------+ | students | +----------------+ 1 row in set (0.00 sec)
-
查看表的创建细节,使用命令
show create table 表名称
,例如查看上面创建的students表创建细节,可以使用show create table students
命令,显示了创建表的完整sql语句。执行结果如下:mysql> show create table students; +----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ | students | CREATE TABLE `students` ( `name` varchar(20) DEFAULT NULL, `age` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>
三、修改表
数据库表创建完成后,我们还可以根据需要对表结构进行修改,比如增加字段,删除字段,重命名字段,修改字段的数据类型和修改表的字符集等。
-
增加字段,使用命令
alter table 表名称 add 字段名称 数据类型
,比如在上面创建的students表中增加一列score
的命令为alter table students add score INTEGER
,执行结果如下:#增加前查看表结构 mysql> desc students; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | age | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) #增加一列 mysql> alter table students add score INTEGER; Query OK, 0 rows affected (0.80 sec) Records: 0 Duplicates: 0 Warnings: 0 #增加后再查看表结构,score已经增加了 mysql> desc students; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | age | int(11) | YES | | NULL | | | score | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 3 rows in set (0.05 sec) mysql>
-
修改字段名称,使用命令
alter table 表名称 change 原字段名称 新字段名称 数据类型
,比如将students表中score
字段重命名为socre1
,使用的命令为alter table students change score score1 INTEGER
,执行结果如下:mysql> desc students; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | age | int(11) | YES | | NULL | | | score | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 3 rows in set (0.05 sec) # 重命名字段 mysql> alter table students change score score1 INTEGER; Query OK, 0 rows affected (0.33 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc students; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | age | int(11) | YES | | NULL | | | score1 | int(11) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) mysql>
-
删除字段,使用命令
alter table 表名称 drop 字段名称
来删除字段,比如将students表中score1
字段删除的命令为alter table students drop score1
-
修改表名称,使用命令
rename table 原表名称 to 新表名称
,比如将students表名称修改为studentstab的命令为rename table students to studentstab
-
修改表的字符集,使用命令
alter table 表名称 character set 字符集
,比如将students表字符集修改为utf8的命令为alter table students character set utf8
四、删除表
删除表的命令很简单,格式为drop table 表名称
,比如删除上面创建的students表的sql语句为drop table students
,执行结果如下,表已经被删除了:
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students |
+----------------+
1 row in set (0.00 sec)
mysql> drop table students;
Query OK, 0 rows affected (0.50 sec)
mysql> show tables;
Empty set (0.00 sec)
mysql>