在MySQL中创建表并插入记录,如果表不存在

在MySQL中创建表并插入记录,如果表不存在

在MySQL中,表的创建和记录的插入是非常基本且重要的操作。但是,如果你是一个新手,你可能会遇到一些问题,比如如何在不存在的情况下创建一个表并插入记录。本文将向你展示如何创建表并插入记录,还将介绍防止重复操作的方法。

阅读更多:MySQL 教程

创建表

如果你想创建一个新的表并在其中插入记录,首先你需要知道 MySQL CREATE TABLE 语句的语法。创建表的基本语法如下:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
);

例如,我们要创建一个名为 user 的表,它具有 4 个列: id(整型, 主键, 自增长), name(字符串), email(字符串), phone(字符串)。则我们可以创建如下的 SQL 语句:

CREATE TABLE IF NOT EXISTS user (
   id INT PRIMARY KEY AUTO_INCREMENT,
   name VARCHAR(255) NOT NULL,
   email VARCHAR(255),
   phone VARCHAR(20)
);

运行以上 SQL 命令后,你将创建一个名为 user 的表,这个表有 4 个列和一个自增长的主键。

如果表已存在怎么办?

在使用 CREATE TABLE 语句时,如果表已经存在,则会出现错误。为了避免这种情况,我们可以在 CREATE TABLE 语句中使用条件语句 IF NOT EXISTS。这个条件语句只在表不存在的情况下才会创建表。

CREATE TABLE IF NOT EXISTS user (
     ...
);

插入记录

如果你已经创建了表,下一步就是插入数据。MySQL 中插入记录的语法如下:

INSERT INTO table_name (column1, column2, column3, ..., columnN) VALUES (value1, value2, value3, ..., valueN);

例如,要插入一条记录:

INSERT INTO user (name, email, phone) VALUES ('Alice', 'alice@test.com', '123456789');

在上面的 SQL 语句中,你将插入一条记录,这个记录的 name 值为 Aliceemail 值为 alice@test.comphone 值为 123456789

你也可以一次性插入多条记录,方法如下:

INSERT INTO user (name, email, phone) VALUES
  ('Alice', 'alice@test.com', '123456789'),
  ('Bob', 'bob@test.com', '987654321'),
  ('Charlie', 'charlie@test.com', '135798642');

这将插入 3 条记录。

防止重复插入

在多次运行同一 INSERT 语句时,可能会因为主键或唯一索引等原因导致记录重复插入。如果你不想插入重复的记录,可以使用 MySQL 中的 INSERT IGNORE 语句或 REPLACE 语句。

INSERT IGNORE

INSERT IGNORE 语句类似于 INSERT INTO 语句,但如果主键或唯一索引值已经存在,将忽略插入操作并不会抛出错误。

INSERT IGNORE INTO user (id, name) VALUES (2, 'Bob');

如果表中已经存在 id 为 2 的记录,执行 INSERT IGNORE 语句后这条记录将被忽略。如果表中不存在 id 为 2 的记录,则将插入一个新的记录。

REPLACE

REPLACE 语句也类似于 INSERT INTO 语句,但如果主键或唯一索引值已经存在,将更新记录的值而不是插入新记录。

REPLACE INTO user (id, name) VALUES (2, 'Charlie');

如果表中已经存在 id 为 2 的记录,执行 REPLACE 语句后这条记录将被更新为 name 为 Charlie 的记录。如果表中不存在 id 为 2 的记录,则将插入一个新的记录。

REPLACE 语句起到了 INSERT INTO 和 UPDATE 的作用,如果记录已经存在则进行更新,如果不存在则进行插入操作。

完整的创建表并插入记录示例

下面是一个完整的创建表并插入记录的示例,这个例子中我们将从一个名为 userinfo.csv 的 CSV 文件中导入数据到 MySQL 表中。在导入之前,我们将创建一个名为 userinfo 的表。

  1. 首先,我们需要创建一个 CSV 文件 userinfo.csv。打开任意编辑器,复制以下内容并保存为 CSV 格式:
    name,email,phone
    Alice,alice@test.com,123456789
    Bob,bob@test.com,987654321
    Charlie,charlie@test.com,135798642
    

    保存成 CSV 文件格式,并将文件保存到你的电脑上,比如保存为 C:\userinfo.csv

  2. 接下来,我们需要创建 MySQL 表 userinfo,表结构如下:

    CREATE TABLE IF NOT EXISTS userinfo (
     id INT PRIMARY KEY AUTO_INCREMENT,
     name VARCHAR(255) NOT NULL,
     email VARCHAR(255),
     phone VARCHAR(20)
    );
    

    运行以上 SQL 命令后,你就创建了一个名为 userinfo 的表,这个表中有 4 个列和一个自增长的主键。

  3. 下一步就是将 CSV 文件中的数据导入到 MySQL 表中。在 MySQL 中,你可以使用 LOAD DATA INFILE 语句从 CSV 文件中导入数据。语法如下:

    LOAD DATA INFILE 'file_name.csv' INTO TABLE table_name
    FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;
    

    将 userinfo.csv 文件导入 userinfo 表的 MySQL 命令语法如下:

    LOAD DATA INFILE 'C:/userinfo.csv' INTO TABLE userinfo
    FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;
    

    运行以上 SQL 命令后,会将 userinfo.csv 文件中的数据导入到 userinfo 表中。现在你可以运行 SELECT 语句来查看 userinfo 表中的数据了。

结论

在本文中,我们学习了如何在 MySQL 中创建一个新表,并在其中插入记录。我们还了解了如何使用 IF NOT EXISTS 避免创建已存在的表,以及如何避免插入重复的记录。

总之,表的创建和记录的插入是 MySQL 数据库中的基本操作,灵活运用,在实际开发中可以大大提高效率。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

MySQL 教程