Carregando dados em uma tabela
Depois de criar sua tabela, você precisará povoá-la. As instruções LOAD DATA
e INSERT
são úteis para isto.
Suponha que seu registro de animais possa ser descrito como é abaixo: (Observe que o MariaDB espera datas no formato AAAA-MM-DD
; isto pode ser diferente do que você está acostumado.)
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 |
Como você está começando com uma tabela vazia, uma forma simples de povoá-la é criar um arquivo texto contendo uma linha para cada um de seus animais, e depois carregar o conteúdo do arquivo para a tabela com uma simples instrução.
Você pode criar um arquivo texto pet.txt
contendo um registro por linha, com valores separado por tabulações e na mesma ordem em que as colunas foram listadas na instrução CREATE TABLE
. Para valores em falta (como sexo desconhecido ou data da morte para animais que ainda estão vivos), você pode usar valores NULL
. Para representá-lo em seu arquivo texto, use \N
(barra invertidam N maíusculo). Por exemplo, o registro para Whistler the bird podem parecer com isto (onde o espaço em branco entre os valores é um simples caractere de tabulação):
name | owner | species | sex | birth | death |
Whistler
| Gwen
| bird
| \N
| 1997-12-09
| \N |
Para carregar o arquivo texto pet.txt
na tabela pet
, use este comando:
mysql> LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;
Você pode especificar o valor do separador de colunas e o marcador de final de linha explicitamente na instrução LOAD DATA
se você desejar. Mas os valores omitidos são suficientes para a instrução ler o arquivo pet.txt
corretamente.
Se a instrução falhar, é desejável que a sua instalação do MariaDB não tenha a capacidade do arquivo local habilitada por padrão. Veja "Detalhes de Segurança com LOAD DATA LOCAL
" para informações sobre como alterar isto.
Quando você desejar adicionar novos registros um a um, a instrução INSERT
é usada. Na sua forma mais simples, você fornece valores para cada coluna, na ordem em que as colunas foram listadas na instrução CREATE TABLE
. Suponha que Diane tenha um novo hamster chamado Puffball. Você pode adicionar um registro utilizando uma instrução INSERT
desta forma:
mysql>INSERT INTO pet
->VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
Perceba que os valores de string e datas são especificados aqui como strings com aspas. Com o INSERT
você também pode inserir NULL
diretamente para representar um valor em falta. Não pode ser usado \N
como você fez com LOAD DATA
.
A partir deste exemplo, você deverá perceber que existem várias outras formas envolvidas para carregar seus registros inicialmente utilizando diversas instruções INSERT
do que uma simples instrução LOAD DATA
.