12th Dec 2022 7 minutos de leitura Como atualizar apenas as 10 primeiras linhas em SQL Kateryna Koidan sql aprender sql Índice O que é a atualização SQL? Como atualizar apenas uma linha em SQL Como Atualizar um Número Específico de Linhas MySQL Servidor SQL PostgreSQL e Oracle Hora de Praticar com Cursos SQL Online! Os bancos de dados do mundo real requerem atualização contínua. Muitas vezes, você precisa atualizar registros específicos; você pode até querer atualizar apenas a primeira linha, ou as primeiras 10, 100, ou 1000 linhas. Vamos explorar como atualizar linhas para uma quantidade específica a partir do topo em SQL. O que é a atualização SQL? Em SQL, uma instrução UPDATE modifica os registros existentes de uma tabela. Você pode optar por atualizar colunas inteiras ou atualizar linhas filtradas com uma instrução WHERE. Como veremos neste artigo, você também pode atualizar as linhas para uma quantidade específica a partir do topo de sua tabela. Manter as bases de dados atualizadas é uma das principais responsabilidades dos engenheiros de dados, administradores de dados e de todos que trabalham com bases de dados. Confira este guia detalhado para explicações e exemplos de atualização de SQL para iniciantes. Para aprender todos os conceitos básicos de modificação de bancos de dados, confira nosso curso interativo Usando Comandos INSERT, UPDATE e DELETE em SQL. Com 52 exercícios SQL interativos, você aprende como recuperar, armazenar, modificar, apagar, inserir e atualizar dados com a linguagem de manipulação de dados SQL (DML). Se você é muito novo em SQL, eu recomendo tomar a SQL para Iniciantes curso interativo antes de passar à linguagem de manipulação de dados. Como atualizar apenas uma linha em SQL A melhor maneira de entender como funciona o SQL UPDATE é vê-lo em ação. Então, vamos começar com um exemplo. Temos uma tabela de nossos fornecedores, com a identificação da empresa, nome da empresa, nome da pessoa de contato e volume de produtos e serviços fornecidos em 2021 (em USD). suppliers idcompany_namecontact_namevolume_2021 1Dunder MifflinMichael Scott456388.40 2Eco FocusRobert California203459.30 3Max EnergyRoy Anderson1403958.80 4Apples and OrangesTodd Packer2303479.50 5Top SecurityJo Bennett105000.10 6InnovatorsAndy Bernard567980.00 7Big Data CorpOscar Martinez345678.90 8Miami and partnersStanley Hudson1205978.80 9Lots of FunPhyllis Vance490345.40 10Repair IncDarryl Philbin53673.30 11Best AccountantsKevin Malone534512.20 12Time & MoneyMeredith Palmer78905.20 13Two BossesJim Halpert250350.10 14Epic AdventureRyan Howard87078.00 15Schrute MarketingDwight Schrute3450250.50 Vamos manter as coisas simples e começar com a atualização de apenas uma linha da tabela. Especificamente, digamos que acabamos de saber que a pessoa de contato do "Lots of Fun" mudou de Phyllis Vance para Pam Beesly. Queremos atualizar o nome do contato para a empresa com o ID 9. Aqui está uma consulta que podemos usar: UPDATE suppliers SET contact_name = 'Pam Beesly' WHERE id = 9; A sintaxe é simples. Após a palavra-chave UPDATE, especificamos o nome da tabela que desejamos atualizar. Depois, com a palavra-chave SET, definimos qual coluna (ou seja, contact_name) deve ser atualizada com qual valor (ou seja, Pam Beesley). Finalmente, usamos a palavra-chave WHERE para especificar que somente o registro com o ID 9 da empresa deve ser atualizado. Aqui está a tabela atualizada. Como você vê, agora temos uma nova pessoa de contato para "Lots of Fun": idcompany_namecontact_namevolume_2021 1Dunder MifflinMichael Scott456388.40 2Eco FocusRobert California203459.30 3Max EnergyRoy Anderson1403958.80 4Apples and OrangesTodd Packer2303479.50 5Top SecurityJo Bennett105000.10 6InnovatorsAndy Bernard567980.00 7Big Data CorpOscar Martinez345678.90 8Miami and partnersStanley Hudson1205978.80 9Lots of FunPam Beesley490345.40 10Repair IncDarryl Philbin53673.30 11Best AccountantsKevin Malone534512.20 12Time & MoneyMeredith Palmer78905.20 13Two BossesJim Halpert250350.10 14Epic AdventureRyan Howard87078.00 15Schrute MarketingDwight Schrute3450250.50 Agora, passemos a um caso mais complexo no qual atualizamos várias fileiras. Como Atualizar um Número Específico de Linhas Há muitos cenários diferentes nos quais você precisa atualizar várias linhas. Na maioria das vezes, você seleciona as linhas que deseja atualizar usando as condições de filtragem em uma declaração WHERE. Aqui, porém, focalizamos o caso em que você deseja atualizar as linhas para uma quantidade especificada do topo, por exemplo, os primeiros 10 registros. Continuamos com nosso primeiro exemplo, mas com algumas atualizações. Digamos que queremos acrescentar outra coluna, top_supplier, ao nosso suppliers mesa. Nesta coluna, queremos ver: "Sim" se o fornecedor for um dos 10 primeiros pelo valor que pagamos à empresa no ano passado, ou "Não" para todos os outros fornecedores. Sugiro fazer isto em três etapas: Acrescentar uma nova coluna top_supplier. Defina o valor desta coluna para "Não" para todos os registros. Atualizar o valor desta coluna para "Sim" para os 10 principais fornecedores. Eis como podemos realizar os dois primeiros passos: ALTER TABLE suppliers ADD top_supplier varchar(32); UPDATE suppliers SET top_supplier = 'No'; E aqui está a tabela resultante: suppliers< idcompany_namecontact_namevolume_2021top_supplier 1Dunder MifflinMichael Scott456388.40No 2Eco FocusRobert California203459.30No 3Max EnergyRoy Anderson1403958.80No 4Apples and OrangesTodd Packer2303479.50No 5Top SecurityJo Bennett105000.10No 6InnovatorsAndy Bernard567980.00No 7Big Data CorpOscar Martinez345678.90No 8Miami and partnersStanley Hudson1205978.80No 9Lots of FunPhyllis Vance490345.40No 10Repair IncDarryl Philbin53673.30No 11Best AccountantsKevin Malone534512.20No 12Time & MoneyMeredith Palmer78905.20No 13Two BossesJim Halpert250350.10No 14Epic AdventureRyan Howard87078.00No 15Schrute MarketingDwight Schrute3450250.50No Agora vem a parte mais interessante: atualizar a coluna top_supplier para as primeiras 10 linhas depois de encomendarmos a tabela pela coluna volume_2021. A sintaxe da consulta para realizar este terceiro passo depende do sistema de gerenciamento do banco de dados (por exemplo, MySQL, SQL Server, Oracle, ou PostgreSQL). Por enquanto, vou mostrar as consultas de trabalho para alguns dos sistemas de gerenciamento de banco de dados mais populares. MySQL No MySQL, podemos aproveitar a palavra-chave LIMIT que limita o número de registros a sair ou a atualizar: UPDATE suppliers SET top_supplier = 'Yes' ORDER BY volume_2021 DESC LIMIT 10; Com esta consulta, atualizamos a suppliers definindo o valor da coluna top_supplier como "Sim". Entretanto, queremos estas atualizações apenas para os 10 principais fornecedores. Assim, pedimos a tabela com base na coluna volume_2021 (em ordem decrescente), e depois limitamos o número de linhas a serem atualizadas a 10. Se você precisar atualizar seus conhecimentos sobre ORDER BY, confira este artigo detalhado. Aqui está a tabela atualizada ordenada por volume_2021. Como você vê, apenas os 10 principais fornecedores têm "Sim" na última coluna. Use a mesma sintaxe para atualizar apenas a primeira linha, ou as primeiras 5, 20, 100, ou qualquer número de linhas simplesmente mudando o número após a palavra-chave LIMIT. idcompany_namecontact_namevolume_2021top_supplier 15Schrute MarketingDwight Schrute3450250.50Yes 4Apples and OrangesTodd Packer2303479.50Yes 3Max EnergyRoy Anderson1403958.80Yes 8Miami and partnersStanley Hudson1205978.80Yes 6InnovatorsAndy Bernard567980.00Yes 11Best AccountantsKevin Malone534512.20Yes 9Lots of FunPhyllis Vance490345.40Yes 1Dunder MifflinMichael Scott456388.40Yes 7Big Data CorpOscar Martinez345678.90Yes 13Two BossesJim Halpert250350.10Yes 2Eco FocusRobert California203459.30No 5Top SecurityJo Bennett105000.10No 14Epic AdventureRyan Howard87078.00No 12Time & MoneyMeredith Palmer78905.20No 10Repair IncDarryl Philbin53673.30No Servidor SQL Ao contrário do MySQL, o SQL Server não tem a palavra-chave LIMIT. Ao invés disso, ele tem TOP. Use esta palavra-chave em uma subconsulta para obter as IDs dos 10 maiores fornecedores: UPDATE suppliers SET top_supplier = 'Yes' WHERE id IN( SELECT TOP (10) id FROM suppliers ORDER BY volume_2021 DESC); Em seguida, atualizamos a coluna top_supplier para os registros cujas IDs correspondentes são encontradas na lista criada pela subconsulta. PostgreSQL e Oracle Finalmente, PostgreSQL e Oracle fornecem uma maneira diferente de limitar o número de linhas a serem atualizadas. Semelhante à consulta anterior, usamos uma subconsulta. Com esta subconsulta, encomendamos a suppliers tabela pelo valor pago e depois limitar a saída a 10 registros, usando as palavras-chave FETCH FIRST 10 ROWS ONLY: UPDATE suppliers SET top_supplier = 'Yes' WHERE id IN( SELECT id FROM suppliers ORDER BY volume_2021 DESC FETCH FIRST 10 ROWS ONLY); Como você vê, atualizamos apenas os registros correspondentes na consulta principal. Obtenha mais exemplos de subconsultas para a declaração UPDATE neste artigo detalhado. Veja também mais exemplos com INSERT, UPDATE, e DELETE aqui. Hora de Praticar com Cursos SQL Online! SQL é uma poderosa ferramenta analítica que normalmente supera o Excel em eficácia e eficiência. É também uma das modernas linguagens de programação que estão aqui para ficar. SQL não é difícil de aprender, mas muitas vezes existem várias maneiras diferentes de se realizar a mesma tarefa. Além disso, existem certas diferenças de sintaxe entre os sistemas de gerenciamento de banco de dados. A abordagem mais eficaz para obter uma compreensão abrangente de SQL é fazer cursos online de SQL. Se você não tem experiência com SQL, eu recomendo começar com o SQL para Iniciantes curso. Inclui 129 exercícios SQL interativos para cobrir todas as bases necessárias para a recuperação de dados de um banco de dados. Se você também quiser saber como modificar seu banco de dados, verifique o curso Usando Comandos INSERT, UPDATE e DELETE em SQL. Este curso interativo cobre os fundamentos da linguagem de manipulação de dados para ajudá-lo a ampliar e atualizar seu banco de dados conforme a necessidade. Quando você estiver pronto para ir além dos cursos individuais e obter um conhecimento abrangente das capacidades SQL, vá para nossas pistas de aprendizagem: SQL de A a Z para ficar confortável com conceitos SQL básicos e avançados, tais como funções de janela, consultas recursivas, e GROUP BY Criar estrutura de banco de dados para aprender como criar e gerenciar tabelas, visualizações e índices em sistemas de gerenciamento de bancos de dados relacionais populares como MySQL, SQL Server, Oracle e PostgreSQL. Obrigado pela leitura, e feliz aprendizado! Tags: sql aprender sql