Upload
leonardomoreira
View
32
Download
3
Embed Size (px)
Citation preview
23/03/2015 Comandos básicos em SQL insert, update, delete e select
http://www.linhadecodigo.com.br/artigo/2975/comandosbasicosemsqlinsertupdatedeleteeselect.aspx 1/6
Log In / Cadastrese
Desenvolvimento SQL
Comandos básicos em SQL insert, update, delete eselectEste artigo visa auxiliar iniciantes que pretendem iniciar no universo de Banco de Dados utilizando os principaiscomandos: INSERT, UPDATE, DELETE e SELECT.por Helbert Carvalho Tiago
Nesse artigo veremos como incluir, excluir e atualizar registros em um banco de dados. No final doartigo descreverei uma introdução sobre subconsultas.
INSERINDO DADOSO comando para inclusão de dados é o INSERT, que possui a seguinte estrutura:
Listagem 1: Sintaxe do comando insert
Onde:
Nome_tabela: nome da tabela no qual será inserido os dados.Listadecampos: nome das colunas que receberão os valores.Listadados: valores que serão inseridos na tabela. Estes campos devem estar na mesma
ordem descrita em listadecampos, todos separados por vírgula. Se for utilizado um comandoSELECT o mesmo deve retornar a mesma quantidade de colunas com os mesmos tipos dedados especificados em listadecampos.
Exemplos:
Listagem 2: Exemplos do comando insert
Na segunda opção foi omitida a declaração dos campos. Essa sintaxe funciona somente se forrepassado valores para todas as colunas.
Podemos também passar valores através de um comando SELECT, conforme abaixo:
Listagem 3: Insert com valores provenientes de um select
Neste comando todos os empregados da tabela EMPREGADOS_FILIAL foram cadastrados na tabelaEMPREGADOS. Se o nome dos campos não for citado no comando INSERT, o SELECT deveráretornar valores compatíveis para todos os campos disponíveis na tabela de destino.
ATUALIZANDO DADOSO comando para atualizar registros é UPDATE, que tem a seguinte sintaxe:
Publicidade
Seguir @linhadecodigo 3.164 seguidores 2.468
Pesquisar
HOME DESENVOLVIMENTO FRONTEND BANCO DE DADOS EM DESTAQUE TODOS PUBLIQUE
16 291Like
1234
INSERT INTO nome_tabela (lista‐de‐campos)VALUES (lista_dados)‐‐OUINSERT INTO nome_tabela VALUES (lista_dados)
123
INSERT INTO EMPREGADOS(CODIGO, NOME, SALARIO, SECAO)VALUES(1, "HELBERT CARVALHO", 1.500, 1)INSERT INTO EMPREGADOS VALUES(1,"HELBERT CARVALHO",1500,1)
1234
INSERT INTO EMPREGADOS(CODIGO,NOME, SALARIO, SECAO) SELECT CODIGO,NOME,SALARIO, SECAO FROM EMPREGADOS_FILIAL WHERE DEPARTAMENTO = 2
.net Mag 121 Easy .net mag 39
ASSINEVER TODAS
REVISTAS DEVMEDIA
1 Comandos básicos em SQL insert,update, delete e select
2 HTML Básico
3 Menu em CSS Menu dropdown horizontalcom HTML5 e CSS3
4 Criando um sistema de cadastro e logincom PHP e MySql
5 Excel: Como verificar se existe valoresduplicados
6 Código para background HTML e CSS
7 Criando um Menu Vertical DropDown comCSS e HTML
8 Copiando dados com o Robocopy
9 Trabalhando com Div em HTML
10 Excel: Comparando Listas
VER TODOS
TOP 10 ARTIGOS TOP 10 AUTORES
871 139 39 132
23/03/2015 Comandos básicos em SQL insert, update, delete e select
http://www.linhadecodigo.com.br/artigo/2975/comandosbasicosemsqlinsertupdatedeleteeselect.aspx 2/6
Listagem 4: Sintaxe do comando update
Onde:
Nome_tabela: nome da tabela que será modificadaCampo: campo que terá seu valor alteradoNovo_valor: valor que substituirá o antigo dado cadastrado em campoWhere: Se não for informado, a tabela intera será atualizadaCondição: regra que impõe condição para execução do comando
Exemplos:
Listagem 5: Exemplos de uso do comando update
No trecho acima, todos os colaboradores que fazem parte do departamento 1 terá o salário alteradopara 1000.
Listagem 6: Update em mais de um campo
Neste exemplo alteramos mais de um campo de uma vez.
Podemos combinar o comando SELECT com UPDATE. No exemplo a seguir, os funcionários de menorsalário receberão aumento de 10%.
Listagem 7: Outro exemplo de uso do comando update
O comando SELECT também pode ser utilizado na atribuição de valor ao campo:
Listagem 8: Update passando select como valor
REMOVENDO DADOSO comando utilizado para apagar dados é o DELETE.
Listagem 9: Sintaxe do comando delete
Onde:
Nome_tabela: nome da tabela que será modificadaWhere: cláusula que impõe uma condição sobre a execução do comando
Exemplo:
Listagem 9: Exemplo de uso do comando delete
123
UPDATE nome_tabelaSET CAMPO = "novo_valor"WHERE CONDIÇÃO
123
UPDATE DEPARTAMENTOSET SALARIO = 1000WHERE CODIGODEP = 1
123
UPDATE DEPARTAMENTOSET NOME = "HELBERT CARVALHO",SALARIO = 1000WHERE CODIGO = 1
123
UPDATE EMPREGADOSSET SALARIO = salario * 1.1WHERE SALARIO = (SELECT MIN(salario) FROM EMPREGADOS)
123
UPDATE EMPREGADOSSET SALARIO = (SELECT MAX(salario) FROM EMPREGADOS)WHERE DEPARTAMENTO = 5
12
DELETE FROM nome_tabelaWHERE condição
12
DELETE FROM EMPREGADOSWHERE CODIGO = 125
23/03/2015 Comandos básicos em SQL insert, update, delete e select
http://www.linhadecodigo.com.br/artigo/2975/comandosbasicosemsqlinsertupdatedeleteeselect.aspx 3/6
Subconsultas SQLUma subconsulta é uma instrução SELECT aninhada dentro de outra instrução SELECT, INSERT,DELETE ou UPDATE. Veja abaixo alguns exemplos de sintaxe:
Comparação [ANY|SOME|ALL] (instrução sql)Expressão [NOT] IN (instrução sql)Expressão [NOT] EXISTS (instrução sql)
Os predicados ANY e SOME, sinônimos, são utilizados para recuperar registro na consulta principalque satisfaçam a comparação com qualquer registro da subconsulta.
Tabela A
X Y
1 5
2 9
3 10
4 6
Tabela B
X Y 10 4 20 3 30 11 40 9Exemplo:
Listagem 11: Exemplo de subconsulta
Resultado:
X Y
3 10
Os registros da tabela A que forem maior do que qualquer registro do resultado da subconsulta serãoselecionados. Repare que nenhum registro da tabela A é maior do que 11, no entanto, o terceiroregistro é maior do que 9.
Vamos a outro exemplo:
Listagem 12: Exemplo de subconsulta com o operador ANY
Resultado:
X Y
1 5
2 9
3 10
4 6
Todos os registros foram selecionados porque o valor de y no resultado da subconsulta assume 3,que é menor do que todos os valores de y da tabela A. Se utilizarmos o ANY com sinal de igualdadeteremos o mesmo resultado da cláusula IN. Exemplo:
Listagem 13: Exemplo com o operador ANY e sinal de igualdade
Resultado:
X Y
2 9
O predicado ANY também pode ser utilizado em conjunto com os comandos UPDATE e DELETE. Vejao exemplo:
Listagaem 14: Update usando o operador ANY
12
SELECT * FROM AWHERE Y > ANY (SELECT Y FROM B WHERE X>20)
1 SELECT * FROM A WHERE Y > ANY (SELECT Y FROM B WHERE X < 40)
1 SELECT * FROM A WHERE Y = ANY (SELECT Y FROM B)
23/03/2015 Comandos básicos em SQL insert, update, delete e select
http://www.linhadecodigo.com.br/artigo/2975/comandosbasicosemsqlinsertupdatedeleteeselect.aspx 4/6
Listagem 15: Delete usando o operador ANY
O predicado ALL é utilizado para recuperar os registros da consulta principal que satisfaçam acomparação com todos os registros recuperados na subconsulta. Observe os exemplos:
Listagem 16: Exemplo de select com operador ANY
Resultado:
X Y
Listagem 17: Outro exemplo de select com operador ANY
Resultado:
X Y
3 10
O uso de != ALL equivale a NOT IN.
Listagem 18: Subconsulta com operador ALL
Resultado:
X Y
1 5
3 10
4 6
O predicado IN é utilizado para recuperar apenas os registros na consulta principal que contémequivalência na subconsulta. É o mesmo que =ANY.
Listagem 19: Consulta com operador IN
Resultado:
X Y
2 9
No código a seguir retornamos os empregados que venderam um montante maior que R$ 50.000,00.
Listagem 20: Select com operador IN utilizando HAVING
De maneira contrária, NOT IN pode ser utilizado para recuperar apenas os registros na consultaprincipal para os quais não exista equivalência na subconsulta.
Listagem 21: Select com operador NOT IN
Resultado:
123
UPDATE ASET X = X * 10WHERE Y > ANY (SELECT Y FROM B WHERE X < 40)
12
DELETE FROM AWHERE Y > ANY (SELECT Y FROM B WHERE X < 40)
1 SELECT * FROM A WHERE Y > ALL (SELECT Y FROM B)
1 SELECT * FROM A WHERE Y > ALL (SELECT Y FROM B WHERE X > 30)
1 SELECT * FROM A WHERE Y != ALL (SELECT Y FROM B)
1 SELECT * FROM A WHERE Y IN(SELECT Y FROM B)
1234
SELECT * FROM EMPREGADO WHERE CODIGO IN(SELECT CODEMPREGADO FROM VENDASGROUPY BY CODEMPREGADOHAVING MAX(VALORTOTAL) > 50000)
1 SELECT * FROM A WHERE Y NOT IN(SELECT Y FROM B)
23/03/2015 Comandos básicos em SQL insert, update, delete e select
http://www.linhadecodigo.com.br/artigo/2975/comandosbasicosemsqlinsertupdatedeleteeselect.aspx 5/6
X Y
1 5
3 10
4 6
O predicado EXISTS determina se a subconsulta retorna algum registro. Esta cláusula produzresultados semelhantes ao uso de IN. Veja exemplo:
Listagem 22: Consulta com operador EXISTS
Neste comando são retornados o nome e o departamento dos funcionários cuja soma de vendasultrapassaram R$ 50.000,00.
O predicado NOT EXISTS também pode ser utilizado produzindo o efeito contrário:
Listagem 23: Consulta com operador NOT EXISTS
ConclusãoOs comandos SQL fornecem uma linguagem simples para manipulação de dados em um SGBD. Comoo SQL se tornou um padrão, os comandos apresentados funcionarão na maioria dos bancos de dadosrelacionais. Consulte o help do seu banco de dados para possíveis alterações ou particularidades.
Referências
Slides do professor Daniel Wildt da Universidade Federal do Rio Grande do SulBATTISTI, Julio. SQL SERVER 2005 ADMINISTRAÇÃO E DESENVOLVIMENTO
Helbert Carvalho Tiago Analista de sistemas, com ênfase em sistemas de gestão ERP e bancode dados SQL Server, pode ser contactado através do email [email protected] ouhttp://twitter.com/helbertc
Leia tambémDiferenças entre SEQUENCES x IDENTITY no Microsoft SQL Server 2012SQL
Utilizando FILETABLE no SQL Server 2012SQL Server
Utilizando SEQUENCES no Microsoft SQL Server 2012SQL
Exportação de dados do SQL Server para o Oracle com assistente de importação do SQL ServerSQL
Tunning Index com o DTASQL
12345
SELECT * FROM EMPREGADO WHERE EXISTS(SELECT * FROM PEDIDOS WHERE EMPREGADO.CODIGO = PEDIDOS.CODEMPREGADO GROUP BY PEDIDOS.CODEMPREGADO HAVING MAX(PEDIDOS.VALOR_TOTAL) > 50000)
123
SELECT * FROM EMPREGADO WHERE NOT EXISTS(SELECT * FROM PEDIDOSWHERE EMPREGADO.CODIGO = PEDIDOS.EMPREGADO)
16 291Like
Estamos aqui:
871 139 39 132
23/03/2015 Comandos básicos em SQL insert, update, delete e select
http://www.linhadecodigo.com.br/artigo/2975/comandosbasicosemsqlinsertupdatedeleteeselect.aspx 6/6
Linha de Código faz parte do grupo Web03 Política de privacidade e de uso | Anuncie | Cadastrese | Fale conosco
Linha de Código
12.172 pessoas curtiram Linha de Código.
Plugin social do Facebook
Curtir
© 2015 Linha de Código. Todos os direitos reservados