根据题目要求,我们需要创建一个名为 actor_name 的表,并将 actor 表中的 first_namelast_name 数据导入到 actor_name 表中。

代码实现步骤

  1. 创建表 actor_name

    • 使用 CREATE TABLE IF NOT EXISTS 确保表不存在时才创建,避免重复创建表。
    • 表结构包含两个字段:
      • first_name:类型为 VARCHAR(45),不允许为空。
      • last_name:类型为 VARCHAR(45),不允许为空。
  2. 导入数据

    • 使用 INSERT INTO ... SELECT 语句将 actor 表中的 first_namelast_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';