根据题目要求,我们需要创建一个名为 actor_name
的表,并将 actor
表中的 first_name
和 last_name
数据导入到 actor_name
表中。
代码实现步骤
-
创建表
actor_name
:- 使用
CREATE TABLE IF NOT EXISTS
确保表不存在时才创建,避免重复创建表。 - 表结构包含两个字段:
first_name
:类型为VARCHAR(45)
,不允许为空。last_name
:类型为VARCHAR(45)
,不允许为空。
- 使用
-
导入数据:
- 使用
INSERT INTO ... SELECT
语句将actor
表中的first_name
和last_name
数据导入到actor_name
表中。 - 这种方式可以直接从一个表中选择数据并插入到另一个表中,非常高效。
- 使用
本题解决方案
-- 创建 actor_name 表
CREATE TABLE IF NOT EXISTS actor_name (
first_name VARCHAR(45) NOT NULL,
last_name VARCHAR(45) NOT NULL
);
-- 从 actor 表中导入数据
INSERT INTO actor_name (first_name, last_name)
SELECT first_name, last_name
FROM actor;
拓展-MYSQL创建数据表的方法
1. 常规创建(直接定义表结构)
这是最常用的方法,通过直接定义表的结构来创建一个新的数据表。你可以指定列名、数据类型、约束等。
语法:
CREATE TABLE table_name (
column1 datatype1 [constraints],
column2 datatype2 [constraints],
...
);
2. 使用 CREATE TABLE IF NOT EXISTS
这种方法与常规创建类似,但增加了 IF NOT EXISTS
子句。如果表已经存在,则不会重复创建,避免了因表已存在而导致的错误。
语法:
CREATE TABLE IF NOT EXISTS table_name (
column1 datatype1 [constraints],
column2 datatype2 [constraints],
...
);
3. 使用 CREATE TABLE ... LIKE
复制表结构
这种方法用于复制一个已存在的表的结构(包括列定义和约束),但不会复制数据。新表将与原表具有相同的结构,但数据为空。
语法:
CREATE TABLE new_table LIKE existing_table;
4. 从一个表中选择部分数据创建另一个表
这种方法允许你从一个表中选择部分数据,并将其插入到一个新的表中。这不仅复制了表结构,还复制了数据。
语法:
CREATE TABLE new_table AS
SELECT columns
FROM existing_table
WHERE conditions;
示例:
假设有一个名为 employees
的表,现在需要创建一个表 active_employees
,只包含 status = 'active'
的员工数据。
CREATE TABLE active_employees AS
SELECT id, name, position
FROM employees
WHERE status = 'active';