Loading Data into a Table

在创建好表后,你需要直充它。LOAD DATA和INSERT语句在干这件事情上很有用。

假设你的宠物记录可以描述成以下形式(显而易见的MySQL期望日期以'YYYY-MM-DD'的格式出现;这可能与你使用的不同)

name owner species sex birth death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29

因为你以一个空表开妈,一种容易的方法来填充它是创建一个文本文件(一行代表你的一个动物),然后加载你的文件到表中使用一个简单的语句。

你可以创建一个文本文件pet.txt包含每行一条记录,value值用tab分割,以CREATE TABLE语句定义的列顺序。对于缺失的值(例如未知的性别或仍活的动物的死亡日期),你可以使用NULL值。在文本文件里代表这些值,使用\N。例如Whistler的bird的记录看起来像这样(值之间的空白是一个单一的tab字符):

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

加载文本文件pet.txt到pet表中,使用下面的语句:

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';

(在一个运行OS X的台苹果机器,你将会想使用LINES TERMINATED BY '\r')

你可以显式的指定列分割符和换行符在LOAD DATA语句中如果你希望的话,但默认的是tab和换行符。这些对于正确的读取pet.txt信息就已经足够了。

如果语句失败了,可能是你的MySQL安装默认没有读取本地文件的能力。参阅Section 6.1.6 "Security Issues with LOAD DATA LOCAL",获取改变此项的信息。

当你想添加新的记录时,INSERT语句是很有用的。用其最简单的形式,你提供每列的值,以创建表时列的顺序。假设Diane获得一个新的hamster名字叫"Puffball",你可以使用INSERT语句添加一个新的记录像下面这样:

INSERT INTO pet
    -> values ("Puffball", "Diane", "hamster", "f", "1993-03-30", null);

字符串和日期值用引号包围的字符串来表示。用INSERT,你可以插入NULL值直接的来代表缺失的值。你不用使用\N像在LOAD DATA中那样。

在此例中,在使用INSERT语句比LOAD DATA更多的录入涉及加载您的记录开始

results matching ""

    No results matching ""