Sie sind auf Seite 1von 6

INSERINDO DADOS O comando para incluso de dados o INSERT, que possui a seguinte estrutura: Listagem 1: Sintaxe do comando insert

t 1 2 3 4 INSERT INTO nome_tabela (lista-de-campos) VALUES (lista_dados) --OU INSERT INTO nome_tabela VALUES (lista_dados) Onde: Nome_tabela: nome da tabela no qual ser inserido os dados. Lista-de-campos: nome das colunas que recebero os valores. Lista-dados: valores que sero inseridos na tabela. Estes campos devem estar na me sma ordem descrita em lista-de-campos, todos separados por vrgula. Se for utiliza do um comando SELECT o mesmo deve retornar a mesma quantidade de colunas com os mesmos tipos de dados especificados em lista-de-campos. Exemplos: Listagem 2: Exemplos do comando insert 1 2 3 INSERT INTO EMPREGADOS(CODIGO, NOME, SALARIO, SECAO) VALUES(1, "HELBERT CARVALHO", 1.500, 1) INSERT INTO EMPREGADOS VALUES(1,"HELBERT CARVALHO",1500,1) Na segunda opo foi omitida a declarao dos campos. Essa sintaxe funciona somente se f or repassado valores para todas as colunas. Podemos tambm passar valores atravs de um comando SELECT, conforme abaixo: Listagem 3: Insert com valores provenientes de um select 1 2 3 4 INSERT INTO EMPREGADOS(CODIGO,NOME, SALARIO, SECAO) SELECT CODIGO,NOME,SALARIO, SECAO FROM EMPREGADOS_FILIAL WHERE DEPARTAMENTO = 2 Neste comando todos os empregados da tabela EMPREGADOS_FILIAL foram cadastrados na tabela EMPREGADOS. Se o nome dos campos no for citado no comando INSERT, o SEL ECT dever retornar valores compatveis para todos os campos disponveis na tabela de destino. ATUALIZANDO DADOS O comando para atualizar registros UPDATE, que tem a seguinte sintaxe: Listagem 4: Sintaxe do comando update 1 2 3 UPDATE nome_tabela SET CAMPO = "novo_valor" WHERE CONDIO Onde: Nome_tabela: nome da tabela que ser modificada Campo: campo que ter seu valor alterado Novo_valor: valor que substituir o antigo dado cadastrado em campo Where: Se no for informado, a tabela intera ser atualizada Condio: regra que impe condio para execuo do comando Exemplos: Listagem 5: Exemplos de uso do comando update 1

2 3 UPDATE DEPARTAMENTO SET SALARIO = 1000 WHERE CODIGODEP = 1 No trecho acima, todos os colaboradores que fazem parte do departamento 1 ter o s alrio alterado para 1000. Listagem 6: Update em mais de um campo 1 2 3 UPDATE DEPARTAMENTO SET NOME = "HELBERT CARVALHO",SALARIO = 1000 WHERE CODIGO = 1 Neste exemplo alteramos mais de um campo de uma vez. Podemos combinar o comando SELECT com UPDATE. No exemplo a seguir, os funcionrios de menor salrio recebero aumento de 10%. Listagem 7: Outro exemplo de uso do comando update 1 2 3 UPDATE EMPREGADOS SET SALARIO = salario * 1.1 WHERE SALARIO = (SELECT MIN(salario) FROM EMPREGADOS) O comando SELECT tambm pode ser utilizado na atribuio de valor ao campo: Listagem 8: Update passando select como valor 1 2 3 UPDATE EMPREGADOS SET SALARIO = (SELECT MAX(salario) FROM EMPREGADOS) WHERE DEPARTAMENTO = 5 REMOVENDO DADOS O comando utilizado para apagar dados o DELETE. Listagem 9: Sintaxe do comando delete 1 2 DELETE FROM nome_tabela WHERE condio Onde: Nome_tabela: nome da tabela que ser modificada Where: clusula que impe uma condio sobre a execuo do comando Exemplo: Listagem 9: Exemplo de uso do comando delete 1 2 DELETE FROM EMPREGADOS WHERE CODIGO = 125 Sub-consultas SQL Uma sub-consulta uma instruo SELECT aninhada dentro de outra instruo SELECT, INSERT, DELETE ou UPDATE. Veja abaixo alguns exemplos de sintaxe: Comparao [ANY|SOME|ALL] (instruo sql) Expresso [NOT] IN (instruo sql) Expresso [NOT] EXISTS (instruo sql) Os predicados ANY e SOME, sinnimos, so utilizados para recuperar registro na consu lta principal que satisfaam a comparao com qualquer registro da sub-consulta. Tabela A X Y 1 5 2 9

3 10 4 6 Tabela B X Y 10 4 20 3 30 11 40 9 Exemplo: Listagem 11: Exemplo de subconsulta 1 2 SELECT * FROM A WHERE Y > ANY (SELECT Y FROM B WHERE X>20) Resultado: X Y 3 10 Os registros da tabela A que forem maior do que qualquer registro do resultado d a sub-consulta sero selecionados. Repare que nenhum registro da tabela A maior do que 11, no entanto, o terceiro registro maior do que 9. Vamos a outro exemplo: Listagem 12: Exemplo de subconsulta com o operador ANY 1 SELECT * FROM A WHERE Y > ANY (SELECT Y FROM B WHERE X < 40) Resultado: X Y 1 5 2 9 3 10 4 6 Todos os registros foram selecionados porque o valor de y no resultado da sub-co nsulta assume 3, que menor do que todos os valores de y da tabela A. Se utilizar mos o ANY com sinal de igualdade teremos o mesmo resultado da clusula IN. Exemplo : Listagem 13: Exemplo com o operador ANY e sinal de igualdade 1 SELECT * FROM A WHERE Y = ANY (SELECT Y FROM B) Resultado: X Y 2 9 O predicado ANY tambm pode ser utilizado em conjunto com os comandos UPDATE e DEL ETE. Veja o exemplo: Listagaem 14: Update usando o operador ANY 1 2 3 UPDATE A SET X = X * 10 WHERE Y > ANY (SELECT Y FROM B WHERE X < 40) Listagem 15: Delete usando o operador ANY 1 2 DELETE FROM A WHERE Y > ANY (SELECT Y FROM B WHERE X < 40) O predicado ALL utilizado para recuperar os registros da consulta principal que satisfaam a comparao com todos os registros recuperados na sub-consulta. Observe os exemplos: Listagem 16: Exemplo de select com operador ANY 1 SELECT * FROM A WHERE Y > ALL (SELECT Y FROM B) Resultado: X Y Listagem 17: Outro exemplo de select com operador ANY 1

SELECT * FROM A WHERE Y > ALL (SELECT Y FROM B WHERE X > 30) Resultado: X Y 3 10 O uso de != ALL equivale a NOT IN. Listagem 18: Subconsulta com operador ALL 1 SELECT * FROM A WHERE Y != ALL (SELECT Y FROM B) Resultado: X Y 1 5 3 10 4 6 O predicado IN utilizado para recuperar apenas os registros na consulta principa l que contm equivalncia na sub-consulta. o mesmo que =ANY. Listagem 19: Consulta com operador IN 1 SELECT * FROM A WHERE Y IN(SELECT Y FROM B) Resultado: X Y 2 9 No cdigo a seguir retornamos os empregados que venderam um montante maior que R$ 50.000,00. Listagem 20: Select com operador IN utilizando HAVING 1 2 3 4 SELECT * FROM EMPREGADO WHERE CODIGO IN (SELECT CODEMPREGADO FROM VENDAS GROUPY BY CODEMPREGADO HAVING MAX(VALORTOTAL) > 50000) De maneira contrria, NOT IN pode ser utilizado para recuperar apenas os registros na consulta principal para os quais no exista equivalncia na sub-consulta. Listagem 21: Select com operador NOT IN 1 SELECT * FROM A WHERE Y NOT IN(SELECT Y FROM B) Resultado: X Y 1 5 3 10 4 6 O predicado EXISTS determina se a sub-consulta retorna algum registro. Esta clusu la produz resultados semelhantes ao uso de IN. Veja exemplo: Listagem 22: Consulta com operador EXISTS 1 2 3 4 5 SELECT * FROM EMPREGADO WHERE EXISTS (SELECT * FROM PEDIDOS WHERE EMPREGADO.CODIGO = PEDIDOS.CODEMPREGADO GROUP BY PEDIDOS.CODEMPREGADO HAVING MAX(PEDIDOS.VALOR_TOTAL) > 50000) Neste comando so retornados o nome e o departamento dos funcionrios cuja soma de v endas ultrapassaram R$ 50.000,00. O predicado NOT EXISTS tambm pode ser utilizado produzindo o efeito contrrio: Listagem 23: Consulta com operador NOT EXISTS 1

2 3 SELECT * FROM EMPREGADO WHERE NOT EXISTS (SELECT * FROM PEDIDOS WHERE EMPREGADO.CODIGO = PEDIDOS.EMPREGADO) Tutorial que mostra vrios exemplos de como inserir dados com insert into, alterar dados com update e excluir dados com delete. Exemplos para SQL Server e MySQL Home SQL e Banco de Dados Em SQL as instrues DML (Data Manipulation Language) so usadas para manipulao de dados e consiste nas operaes de inserir dados (insert into), alterar dados (update) e e xcluir dados (delete). Inserir, alterar e excluir dados so consideradas operaes es senciais e de grande aplicao nas operaes com banco de dados. insert into, update e delete so comandos da linguagem SQL e no dos bancos de dados , como o Oracle, SQL Server, Access ou MySQL. Isto significa que o aprendizado d estes comandos tem enorme abrangncia, pois voc poder us-los em qulaquer banco de dad os relacional, como os bancos acima citados. Inserir dados com insert into Para inserir linhas em uma tabela usamos o comando INSERT. Este comando faz part e das instrues DML (Data Manipulation Language) ou Linguagem de manipulao de dados. Exemplo 1: Insert into em SQL Server e Access INSERT INTO empregados(nome, data_nascimento, salario, cidade, estado) VALUES('Jos','05/14/1965',1000,'Brasilia','DF') Este mesmo exemplo deve ser tratado de forma diferente para o MySQL, pois o form ato de data que ele opera diferente do SQL Server. Veja como fica o mesmo exempl o para o banco MySQL. Exemplo 1: Insert into em MySQL INSERT INTO empregados(nome, data_nascimento, salario, cidade, estado) VALUES('Jos','1965-15-14',1000,'Brasilia','DF') No caso da coluna codigo_empregado ns no podemos usar o insert para tentar inserir um valor nesta coluna, pois a mesma foi criada com o argumento Identity, que fa z a gerao automtica dos valores desta coluna. Observe que as colunas do tipo texto (nome, cidade e estado) e a coluna do tipo data (data_nascimento) recebem os valores entre (aspas simples ou apstrofo), porm, na coluna numrica (salrio) o valor foi passado sem o uso de aspas simples. No caso do MySQL a data tem o formado de ano, ms e dia. Exemplo 2: SQL Server e Access INSERT INTO empregados(nome, data_nascimento) VALUES('Joo','12/15/1960') Lembrando que o MySQL trata a data no formato ano-mes-dia, portanto devemos faze r esta alterao. Veja o mesmo exemplo para MySQL. INSERT INTO empregados(nome, data_nascimento) VALUES('Joo','1960-12-15') Observe que no usamos todas as colunas da tabela empregados criada anteriormente, ou seja, voc pode fazer um insert em apenas algumas colunas. Neste caso as demai s colunas iro receber valores nulos.

Exemplo 3: SQL Server INSERT INTO empregados(nome, data_nascimento, salario) VALUES('Maria','22/06/1954',1420,52) Em MySQL o exemplo fica assim: INSERT INTO empregados(nome, data_nascimento, salario) VALUES('Maria','1954-06-22',1420,52) O exemplo acima causou um erro porque houve excesso de valores, ou seja, perceba que o valor 1420,52 tem uma vrgula e isto fez com que o banco de dados entendess e como sendo dois valores. Neste caso a vrgula dever ser substituido por ponto, ao invs de usar 1420,52, use 1420.52. Alterar dados com update Para alterar linhas em uma tabela usamos o comando UPDATE. Este comando faz part e das instrues DML (Data Manipulation Language) ou Linguagem de manipulao de dados. UPDATE empregados set nome='Joo da Silva',cidade='So Paulo' where codigo_empregado =2 No exemplo acima, alteramos o nome para Joo e a cidade para So Paulo, mas importan te observar que esta alterao s ir ocorrer onde o cdigo do empregado for igual a 2. A clusula where usada para criar um filtro, ou seja, para determinar quais as lin has sero afetadas. CUIDADO: Se voc no especificar a clusula where as modificaes sero aplicadas em todas a s linhas da tabela. Excluir dados com delete Para excluir linhas em uma tabela usamos o comando DELETE. Este comando faz part e das instrues DML (Data Manipulation Language) ou Linguagem de manipulao de dados. DELETE FROM empregados where codigo_empregado=1 CUIDADO: Se voc no especificar a clusula where todas as linhas da tabela sero excluda s. No exemplo acima, ser excludo a linha em que o cdigo do empregado for igual a 1 A clusula where usada para criar um filtro, ou seja, para determinar quais as lin has sero afetadas. Para excluir todas as linhas de uma tabela use o comando Delete como no exemplo a seguir: DELETE FROM empregados

Das könnte Ihnen auch gefallen