Este tutoriald focaliza em como adicionar, modificar, e remover dados das tabelas na base de dados usando a língua de manipulação de dados do SQL. Sem este conhecimento, nós não teríamos realmente nenhum uso para uma base de dados; seria simplesmente uma entidade de estática com nenhuma finalidade.
Deixe-nos primeiramente criar uma base de dados e uma tabela para trabalhar com neste tutorial. Nossa base de dados será chamada dmlexample, assim que deixe-nos críam isso agora com a seguinte indicação:
o mysql > CRÍA o dmlexample da BASE DE DADOS;
Uma vez que criados, nós necessitamos especificar que nós desejamos usar a base de dados nova executando esta indicação:
mysql > dmlexample do USO;
O console deve agora informar-nos que a base de dados mudou;
|
|
Agora que nós mandamos nossa base de dados se ajustar acima, nos deixamos críe uma tabela para experimentar com chamado sampletable. Esta tabela conterá os seguintes campos: username, senha, idade, E-mail, e a data onde a entrada foi criada.
Nós podemos então criar nossa tabela com a seguinte indicação de DDL:
o mysql > CRÍA A TABELA sampletable (- > TEXTO do username, - > TEXTO da senha, - > idade INTERNA, - > TEXTO do email, - > datecreated o TIMESTAMP);
Agora que nós temos nossa tabela criada, nos deixamos olhar como nós vamos sobre a adição de fileiras (registros) da informação nela. Para adicionar fileiras na tabela, nós necessitamos usar o comando da INSERÇÃO. É aqui como nós adicionaríamos uma única fileira ao nosso sampletable.
mysql > INSERÇÃO no ->('andrew sampletable ', ' qwerty
', 20 dos VALORES, ' andrew@dreamcircle.co.uk ', ZERO)
Observação como o gabarito do console nos diz que uma fileira estêve afetada. Daqui, nós adicionamos uma fileira a nossa tabela sampletable.
Nós podemos então usar um comando chamado SELETO para ver os dados na tabela. Nós entraremos em mais detalhe sobre este comando mais tarde neste tutotial, porque é muito importante, mas para agora nós usá-lo-emos apenas cega. Deixe-nos ver que dados estão em nossa tabela do dmlexample:
o mysql > SELECIONA * de sampletable;
| Nota | A observação como datecreated o campo reflete a hora e a data em que nós adicionamos a fileira na tabela. Isto é porque nós especificamos o ZERO quando nós adicionamos a fileira, e fazer isto fará um campo do TIMESTAMP agarrar a data atual e a hora do sistema pelo defeito. |
É também possível adicionar diversas fileiras dos dados em um único comando. Deixe-nos tentar agora isto adicionando outras três fileiras a nossa tabela em um único comando da INSERÇÃO. Isto é feito como segue:
mysql > INSERÇÃO EM VALORES sampletable - > (' glenn ',
' gimboid ', 21, ' glenn@chopsewage.com ', ZERO), - > (' jim ', '
letmein ', 23, ' jim@email.net ', ZERO), - > (' wes', ' opensesame ',
31, ' wes@email.net ', ZERO);
Como você pode ver, esta vez o gabarito do console sugere que três fileiras estiveram afetadas; daqui, nós adicionamos três fileiras a nossa tabela. Nós podemos verificar este outra vez usando o comando SELETO:
o mysql > SELECIONA * de sampletable;
Quando isto é executado, você verá agora que a tabela contem quatro fileiras (ou registros, se você gostar) da informação.
Agora que nós sabemos adicionar dados a uma tabela, nos deixamos olhar como nós vamos sobre dados existentes modificando da tabela.
Para modificar dados em uma tabela, nós requeremos o uso do comando do UPDATE. Deixe-nos primeiramente tentar mudar todas as senhas em todas as fileiras na tabela ao "changeme." Isto pode ser realizado com a seguinte indicação:
senha sampletable do JOGO do mysql > do UPDATE = ' changeme ';
| Cuidado | O comando do UPDATE (as.well.as todos os comandos do SQL) é completamente poderoso. Com uso reckless você pode destruir muitos dos dados com um erro simples. Quase cada pergunta deve ter ao menos um onde circunstância. |
Quando nós executamos esta indicação, o console informar-nos-á que quatro fileiras estiveram afetadas, porque nós mudamos a senha para cada fileira nessa tabela.
Agora nós podemos ver o efeito na tabela usando o comando SELETO, como segue:
o myql > SELECIONA * de sampletable;
Uma pergunta óbvia é agora, o que se eu quiser somente atualizar uma única fileira? Deixe-nos dizer que nós desejamos mudar a senha de Glenn da parte traseira do changeme ao gimboid. Nós usaríamos a seguinte indicação fazer este:
senha sampletable do JOGO do mysql > do UPDATE = ' gimboid ' ONDE username = ' glenn ';
Quando nós executamos este comando no console, informa-nos que uma fileira estêve afetada. Isto é porque atualizará somente o campo da senha se o campo do username for igual ao glenn. Se nós usarmos o comando SELETO na tabela agora, nós podemos ver que somente a senha de Glenn mudou.
Nós podemos também aplicar esta técnica para permitir-nos de atualizar somente determinados campos. Para o exemplo, nós poderíamos mudar todas as senhas dos povos que são a idade 30 ou mais novo. Está aqui o comando que nós requereríamos para fazer este:
senha sampletable do JOGO do mysql > do UPDATE = ' jovens ' ONDE idade <= 30
Quando nós executamos este comando, informar-nos-á que três fileiras estiveram afetadas, porque três dos quatro registros em nossa tabela têm uma idade igual a ou menos de 30.
| Ponta | Uma idéia útil é atualizar um campo do timestamp com ZERO. Isto recuperará o tempo o mais atrasado do sistema que a base de dados está funcionando sobre (isto é, um uso prático deveria anotar a última vez um jogador entrado). |
Remover os dados de uma tabela é feito em uma maneira muito similar a atualizar dados. Primeiramente nós olharemos como suprimir uma única fileira dos dados. Deixe-nos agora suprimir o glenn da base de dados usando a seguinte indicação:
mysql > SUPRESSÃO de sampletable ONDE username = ' glenn ';
Quando nós executamos este comando, o cliente do console de MySQL informar-nos-á que uma fileira estêve afetada (isto é, suprimido).
Outra vez, como com as indicações do UPDATE, nós podemos especificar circunstâncias para permitir que nós suprimam, para o exemplo, todos com uma idade menos de 30. Deixe-nos fazer agora isto com a seguinte indicação:
mysql > SUPRESSÃO de sampletable ONDE idade < 30;
Quando nós executamos esta indicação, o cliente informar-nos-á que duas fileiras estiveram afetadas, ou neste caso, suprimido. Se nós usarmos agora o comando SELETO em nossa tabela, nós veremos que somente uma fileira está deixada na tabela.
Finalmente, é também possível suprimir todas as fileiras de uma tabela em uma única indicação. Tudo que nós necessitamos fazer não deve especificar nenhuma circunstância, como nós quando nós atualizamos todos os campos da senha ao changeme. Está aqui a indicação para suprimir todas as fileiras em uma tabela (isto é, esvazíe a tabela).
mysql > SUPRESSÃO de sampletable;
Como você pode ver, a tabela não contem agora nenhuma informação.
Até agora, nós usamos simplesmente o seguinte comando mostrar todos os dados em nossa tabela sampletable:
o mysql > SELECIONA * de sampletable;
Isto realmente está buscando todos os campos da tabela sampletable e está retornando-os. * é um wildcard, que os meios bàsicamente ele representem qualquer coisa (ou neste caso, em algum campo).
Antes que nós entremos na indicação SELETA mais mais, deixe-nos adicionam primeiramente alguns dados à experiência com em nossa tabela sampletable. Use a seguinte indicação introduzir alguns dados:
mysql > INSERÇÃO EM VALORES sampletable - > (' andrew ',
' qwerty ', 20, ' andrew@dreamcircle.co.uk ', ZERO), - > (' andrew ',
' letmein ', 27, ' andrew@email.net ', ZERO), - > (' george ', ' papel
', 19, ' george@email.net ', ZERO), - > (' jenny ', ' jen999 ', 27, '
jen@email.net ', ZERO), - > (' sandra ', ' sdra2 ', 27, '
sandra@email.net ', ZERO);
Agora que nós adicionamos nossos dados na tabela, se nós usarmos a indicação SELETA com o wildcard (*), como nós estávamos fazendo antes, ele recuperarmos e indicarmos toda a informação da tabela no console. Deixe-nos tentar agora isto com a seguinte indicação.
o mysql > SELECIONA * de sampletable;
Como você pode ver, a indicação recuperou toda a informação da tabela (isto é, todas as fileiras e tudo das colunas contidas em cada uma das fileiras).
Deixe-nos dizer que tudo que nós queremos recuperar é o campo da senha. Para começar todas as senhas da tabela sampletable, nós usaríamos a seguinte indicação:
mysql > senha SELETA de sampletable;
Observação como nós substituímos simplesmente o wildcard (*) com a coluna nós desejamos recuperar. Nós podemos também recuperar colunas múltiplas usando uma vírgula limitá-las. Deixe-nos tentar selecionar a coluna do username e a coluna da senha somente. Está aqui a indicação que nós requeremos para este:
mysql > username SELETO, senha de sampletable;
Quando nós executamos esta indicação, nós podemos ver no console que os campos somente do username e da senha estiveram selecionados da tabela.
Agora que nós sabemos recuperar campos individuais das tabelas, como nós recuperamos uma única fileira? Nós podemos fàcilmente aplicar uma circunstância a uma indicação SELETA, apenas como nós quando nós atualizávamos a tabela e a suprimíamos da tabela. Usando uma indicação SELETA condicional, deixe-nos somente indicar a informação do jenny da base de dados. Está aqui a indicação que nós requeremos para este:
o mysql > SELECIONA * de sampletable ONDE username = ' jenny ';
Quando nós executarmos esta indicação, only os detalhes do jenny estarão indicados no console do cliente de MySQL.
Nós podemos também incorporar a idéia de selecionar campos especificados. Um exemplo prático deste deveria encontrar a senha que se relaciona a um username. É aqui como nós começaríamos a senha que pertenceu a George:
mysql > senha SELETA de sampletable ONDE username = ' george ';
Quando nós executamos esta indicação, nós podemos ver que somente um único campo está indicado, que aconteça ser senha de George.
| Nota | Quando nós especificamos campos específicos, como neste exemplo, nós não estamos limitados aos campos que nós estamos selecionando para o uso no ONDE cláusula. |
Em nossos dados da amostra, há duas fileiras com o username andrew. Se nós tentarmos usar uma indicação condicional começar a senha para andrew, nós vontade no fato começamos duas senhas, uma para cada entrada de andrew na base de dados. Deixe-nos tentar agora isto apenas para a prova. Está aqui a indicação que nós necessitamos:
mysql > senha SELETA de sampletable ONDE username = ' andrew ';
Quando nós executamos esta indicação, nós podemos ver que nós temos duas senhas mostrar no console.
| Nota | As duplicatas podem ser removidas do resultado usando a opção DISTINTA. Para o exemplo: SELECIONE o username DISTINTO de sampletable. |
Deixe-nos ter um olhar em como o comando SEMELHANTE pode nos ajudar encontrar a informação que nós requeremos. Usar-se COMO é ideal para encontrar cordas nas bases de dados, especial se você tem somente uma parte da corda completa (isto é, para um Search Engine). Para o exemplo, deixe-nos dizer que nós desejamos encontrar alguém na base de dados cujo o nome começa com a letra j. Para realizar esta, nós requereríamos a seguinte indicação:
o mysql > SELECIONA * de sampletable ONDE o username GOSTA ' de j% ';
Observe aqui como o jenny foi recuperado, como seu username era único a começar com um j. O % representa um wildcard quando usado com COMO, assim que se nós usarmos a seguinte indicação preferivelmente:
o mysql > SELECIONA * de sampletable ONDE o username GOSTA ' de %j% ';
... a letra j podia aparecer em qualquer lugar na corda. Também, anote que você pode ter mais do que um único caráter:
o mysql > SELECIONA * de sampletable ONDE o username GOSTA ' de %nny ';
Isto recuperaria todos os povos que têm os nomes que terminam com o texto "nny." Finalmente, se nós usarmos a seguinte indicação:
selecione * de sampletable onde o username gosta ' de %nny%a ';
... recuperaria todo o conter das fileiras "nny" em seus nomes, mas o nome teria que terminar com o "a".
Online: 618 users browsing the articles directory
|
|