• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 将数据加载到数据表(insert)

    创建表后,需要填充它。该LOAD DATAINSERT语句是这个有用的。

    假设您的宠物记录可以如下所示。(请注意,MySQL需要使用格式的日期;这可能与您习惯的日期有所不同。)'YYYY-MM-DD'

    名称所有者种类性别出生死亡
    蓬松哈罗德F1993-02-04
    爪子格温1994-03-17
    巴菲哈罗德F1989-05-13
    ng本尼1990-08-27
    鲍泽黛安1979-08-311995-07-29
    格温F1998-09-11
    惠斯勒格温1997-12-09
    本尼1996-04-29

    因为您是从一个空表开始的,所以填充它的一种简单方法是为每个动物创建一个包含一行的文本文件,然后使用单个语句将文件的内容加载到表中。

    您可以创建一个文本文件pet.txt,每行包含一个记录,其值由制表符分隔,并按CREATE TABLE语句中列出列的顺序给出。对于缺少的值(例如未知的性别或仍在生活中的动物的死亡日期),可以使用NULL值。要在文本文件中表示这些字符,请使用\N(反斜杠,大写N)。例如,惠斯勒小鸟的记录应如下所示(其中值之间的空格是单个制表符):

    Whistler        Gwen    bird    \N      1997-12-09      \N
    

    要将文本文件加载pet.txtpet表中,请使用以下语句:

    mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
    

    如果在Windows上使用\r\n用作行终止符的编辑器创建了文件,则应改用以下语句:

    mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
    LINES TERMINATED BY '\r\n';
    

    (在运行macOS的Apple机器上,您可能想使用LINES TERMINATED BY '\r'。)

    您可以根据需要在LOAD DATA语句中显式指定列值分隔符和行尾标记,但是默认值为制表符和换行符。这些足以使语句pet.txt正确读取文件。

    如果该语句失败,则可能是默认情况下您的MySQL安装未启用本地文件功能。有关如何更改此设置的信息,请参见“ LOAD DATA LOCAL的安全性问题”。

    当您想一次添加一个新记录时,该INSERT语句很有用。以最简单的形式,您可以按CREATE TABLE语句中列出列的顺序为每一列提供值。假设Diane有了一只名为“ Puffball ”的新仓鼠。”您可以使用如下INSERT语句添加新记录:

    mysql> INSERT INTO pet
    VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
    

    字符串和日期值在此处指定为带引号的字符串。另外,使用INSERT,您可以NULL直接插入以表示缺失值。您不会\N像使用那样使用LOAD DATA

    从该示例中,您应该能够看到,最初使用多个INSERT语句而不是单个LOAD DATA语句来加载记录时会涉及更多类型的输入。