数据表的操作
大约 3 分钟MySQL数据库
了解完 MySQL 中的数据类型之后,我们就可以对数据库中的表和数据进行操作了。在 MySQL 中,数据表操作是对数据库中数据表的管理和维护。常见的数据表操作包括创建表、修改表结构、删除表、备份表等。下面将介绍一些常用的数据表操作,并提供示例练习。
我们继续将上节课最后一个命令。
注意
在使用表操作的时候,我们需要先选择数据库。这里,我提前创建了名为 mysql_practice
的数据库。
- 创建表:使用
CREATE TABLE
命令可以创建新的数据表。语法如下:
CREATE TABLE table_name (
列名 数据类型 [约束],
列名 数据类型 [约束],
...
);
比如,我们可以创建一个名为 students
的表,包含学生的 ID。姓名。年龄和成绩。
CREATE TABLE students (
id INT,
name VARCHAR(50),
age INT,
score FLOAT
);
我们接着使用 show tables
命令,就可以看到当前数据库中多了一个 student
的表。
mysql> CREATE TABLE students (
-> id INT,
-> name varchar(50),
-> age int,
-> score FLOAT
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> show tables
-> ;
+----------------+
| Tables_in_test |
+----------------+
| students |
+----------------+
1 row in set (0.00 sec)
- 查看表的列信息:使用
DESCRIBE
或者SHOW COLUMNS FROM 表名
可以查看表结构信息的方法。它可以列出指定表中的所有列名、数据类型、键类型、默认值等详细信息,示例:
mysql> describe students;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score | float | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql> show columns from students;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score | float | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
- 修改表结构:使用
ALTER TABLE
命令可以修改现有的数据表结构,如添加列、修改列名、修改列数据类型等。语法如下:
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 [约束];
示例练习:向上述的 students
数据表中添加一个新的字段 gender
来记录学生的性别,使用布尔类型表示,男生是 TRUE,女生是 FALSE。
ALTER TABLE students ADD COLUMN gender BOOL;
接着查看表的列信息是否发生变化,
mysql> ALTER TABLE students ADD COLUMN gender BOOL;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> describe students;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score | float | YES | | NULL | |
| gender | tinyint(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
- 复制表:使用
CREATE TABLE ... AS
命令可以复制现有的数据表并创建一个新表。语法如下:
CREATE TABLE 新表名 AS SELECT * FROM 旧表名;
示例练习:复制 students 数据表并创建一个名为 students_copy 的新表。
CREATE TABLE students_copy AS SELECT * FROM students;
在命令行中查看表的信息。
mysql> CREATE TABLE students_copy AS SELECT * FROM students;
Query OK, 0 rows affected (0.25 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| students |
| students_copy |
+----------------+
2 rows in set (0.00 sec)
- 重命名表:使用
RENAME TABLE
命令可以修改数据表的名称。语法如下:
RENAME TABLE 旧表名 TO 新表名;
示例练习:将之前创建的 students
数据表重命名为 new_students
。
RENAME TABLE students_copy TO new_students;
在命令行中查看表的信息。
mysql> RENAME TABLE students_copy TO new_students;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| new_students |
| students |
+----------------+
2 rows in set (0.00 sec)
- 删除表:使用
DROP TABLE
命令可以删除已经存在的数据表。请小心使用此命令,删除表将丢失其中的所有数据。语法如下:
DROP TABLE 表名;
比如,我们可以删除掉之前复制并重命名的 new_students
数据表。
DROP TABLE new_students;
接着查看该数据库中的表信息,检查 new_students
表是否存在。
mysql> drop table new_students;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| students |
+----------------+
1 row in set (0.00 sec)