MySQL:: MySQL 5.7 manual de referência:: 3.3.3 carregar dados numa tabela
3.3.3 carregar dados numa tabela
Depois de criar a sua tabela, terá de a povoar. As declaraçõesLOAD DATA
e INSERT
são úteis para isso.
suponha que seus registros pet podem ser descritos como mostrado aqui. (Observe que MySQL espera datas no formato'
; isso pode diferir do que você está acostumado.)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 | cão | m | 1979-08-31 | 1995-07-29 |
Alegre | Gwen | aves | f | 1998-09-11 | |
Whistler | Gwen | aves | 1997-12-09 | ||
Slim | Benny | cobra | m | 1996-04-29 |
como você está começando com uma tabela vazia, uma forma fácil para preenchê-la é criar um arquivo texto contendo uma linha para cada um de seus animais, em seguida, carregar o conteúdo do arquivo na tabela com uma única declaração.
Você pode criar um arquivo de texto pet.txt
contendo um registro por linha, com valores separados por tabulações e na ordem em que as colunas foram listadas na CREATE TABLE
instrução. Para valores em falta (tais como sexo desconhecido ou datas de morte para animais que ainda estão vivos), você pode usar valores NULL
. Para representá-los em seu arquivo de texto, use \N
(backslash, capital-N). Por exemplo, o registro para Whistler o pássaro teria esta aparência (onde o espaço em branco entre os valores é um único caractere de tabulação):
Whistler Gwen bird \N 1997-12-09 \N
Para carregar o arquivo texto pet.txt
o pet
tabela, use esta instrução:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
Se você criou o arquivo no Windows com um editor que usa \r\n
como um terminador de linha, você deve utilizar esta instrução:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';
(Em um Apple máquina executando macOS, provavelmente você vai querer usar LINES TERMINATED BY '\r'
.)
pode indicar o separador do valor da coluna e o marcador de fim de linha explicitamente na declaraçãoLOAD DATA
se o desejar, mas os valores por omissão são o tab e o linefeed. Estes são suficientes para que a declaração leia o ficheiro pet.txt
adequadamente.
Se a declaração falhar, é provável que a sua instalação MySQL não tenha capacidade de ficheiro local activada por omissão. Ver secção 6.1.6, “considerações de segurança para dados de carga locais”, para informações sobre como alterar esta situação.
Quando você quer adicionar novos registros um de cada vez, a declaração INSERT
é útil. Em sua forma mais simples, você fornece valores para cada coluna, na ordem em que as colunas foram listadas na declaração CREATE TABLE
. Supõe que a Diane recebe um novo hamster chamado “Puffball”.”Você poderia adicionar um novo registro usando umINSERT
declaração como esta:
mysql> INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
String e os valores de data são indicados como strings citadas aqui. Além disso, com INSERT
, você pode inserir diretamente para representar um valor em falta. Você não usa \N
como você faz com LOAD DATA
.
a Partir deste exemplo, você deve ser capaz de ver que haveria muito mais a escrever envolvidos para carregar seus registros inicialmente usando vários INSERT
declarações em vez de uma única LOAD DATA
instrução.