Como atualizar seu Dados Existentes SQL
Porque o mundo está em constante mudança, os bancos de dados SQL usados para modelar os aspectos do mundo também precisa mudar. Um cliente pode mudar de endereço. A quantidade de um produto em estoque podem mudar. estatísticas de desempenho temporada de um jogador de basquete mudar cada vez que ele joga em outro jogo. Se o seu banco de dados contém tais itens, você tem que atualizá-lo periodicamente.
SQL proporciona a ATUALIZAR declaração para modificar dados em uma tabela. Ao utilizar uma única ATUALIZAR declaração, você pode alterar um, alguns ou todas as linhas em uma tabela. o ATUALIZAR instrução usa a seguinte sintaxe:
ATUALIZAÇÃO table_nameSET column_1 = expressão_1, COLUMN_2 = expressão_2, ..., column_n = expression_n [WHERE predicados] -
o ONDE cláusula é opcional. Esta cláusula especifica as linhas que você está atualizando. Se você não usar um ONDE cláusula, todas as linhas da tabela são atualizados. o CONJUNTO cláusula especifica os novos valores para as colunas que você está mudando.
Considere esta tabela CLIENTE.
Nome | Cidade | Código de área | telefone fixo |
---|---|---|---|
Abe Abelson | Springfield | (714) | 555-1111 |
Bill Bailey | Decatur | (714) | 555-2222 |
Chuck Madeira | Philo | (714) | 555-3333 |
Don Stetson | Philo | (714) | 555-4444 |
Dolph Stetson | Philo | (714) | 555-5555 |
listas de clientes mudar de vez em quando - como as pessoas se movem, mudar seus números de telefone, e assim por diante. Suponha que Abe Abelson move de Springfield para Kankakee. Você pode atualizar seu registro na tabela usando o seguinte ATUALIZAR declaração:
ATUALIZAÇÃO CUSTOMERSET Cidade = 'Kankakee', Telefone = '666-6666'WHERE Name = "Abe Abelson' -
Esta declaração faz com que as alterações apresentadas na Tabela 6-2.
Nome | Cidade | Código de área | telefone fixo |
---|---|---|---|
Abe Abelson | Kankakee | (714) | 666-6666 |
Bill Bailey | Decatur | (714) | 555-2222 |
Chuck Madeira | Philo | (714) | 555-3333 |
Don Stetson | Philo | (714) | 555-4444 |
Dolph Stetson | Philo | (714) | 555-5555 |
Você pode usar uma declaração semelhante para atualizar várias linhas. Suponha que Philo está experimentando um crescimento populacional explosivo e agora requer o seu próprio código de área. Você pode alterar todas as linhas para os clientes que vivem em Philo usando uma única ATUALIZAR instrução, como segue:
ATUALIZAÇÃO CUSTOMERSET AreaCode = '(619)' WHERE cidade = 'Philo' -
A tabela agora se parece com o mostrado na Tabela 6-3.
Nome | Cidade | Código de área | telefone fixo |
---|---|---|---|
Abe Abelson | Kankakee | (714) | 666-6666 |
Bill Bailey | Decatur | (714) | 555-2222 |
Chuck Madeira | Philo | (619) | 555-3333 |
Don Stetson | Philo | (619) | 555-4444 |
Dolph Stetson | Philo | (619) | 555-5555 |
Atualizando todas as linhas de uma tabela é mais fácil do que a actualização apenas algumas das linhas. Você não precisa usar um ONDE cláusula para restringir o comunicado. Imagine que a cidade de Rantoul adquiriu grande influência política e agora anexado não só Kankakee, Decatur, e Philo, mas também todas as cidades e vilas no banco de dados. Você pode atualizar todas as linhas usando uma única instrução:
ATUALIZAÇÃO CUSTOMERSET Cidade = 'Rantoul' -
A Tabela 6.4 mostra o resultado.
Nome | Cidade | Código de área | telefone fixo |
---|---|---|---|
Abe Abelson | Rantoul | (714) | 666-6666 |
Bill Bailey | Rantoul | (714) | 555-2222 |
Chuck Madeira | Rantoul | (619) | 555-3333 |
Don Stetson | Rantoul | (619) | 555-4444 |
Dolph Stetson | Rantoul | (619) | 555-5555 |
Quando você usa o ONDE cláusula com o ATUALIZAR declaração para restringir quais registros são atualizados, o conteúdo do ONDE cláusula pode ser um subselect - uma SELECIONAR instrução, o resultado de que é usado como entrada por uma outra SELECIONAR declaração.
Suponha que você é um atacadista e seu banco de dados inclui uma tabela FORNECEDOR contendo os nomes de todos os fabricantes de quem você comprar produtos. Você também tem uma tabela de produtos contendo os nomes de todos os produtos que você vende e os preços que cobram para eles. A tabela fornecedor tem colunas VendorID, Nome do vendedor, Rua, Cidade, Estado, e Fecho eclair. A tabela produto tem ID do produto, Nome do Produto, VendorID, e Preço de venda.
O fornecedor, Cumulonimbus Corporation, decide aumentar os preços de todos os seus produtos em 10 por cento. Para manter a sua margem de lucro, você deve aumentar seus preços sobre os produtos que você obtém de Cumulonimbus em 10 por cento. Você pode fazer isso usando o seguinte ATUALIZAR declaração:
ATUALIZAÇÃO PRODUCTSET SalePrice = (SalePrice * 1.1) ONDE VendorID IN (SELECT VendorID DE VENDORWHERE VendorName = 'Cumulonimbus Corporação ") -
O subseleccionar encontra o VendorID que corresponde ao Cumulonimbus. Em seguida, você pode usar o VendorID campo na tabela de produtos para encontrar os registros que você deseja atualizar. Os preços de todos os produtos Cumulonimbus aumento de 10 percentual dos preços em todos os outros produtos permanecer o mesmo.