sexta-feira, 3 de junho de 2011

SQL - Inserir, alterar e excluir

Inserir, alterar e excluir dados com insert into, update e delete

Em SQL as instruções DML (Data Manipulation Language) são usadas para manipulação de dados e consiste nas operações de inserir dados (insert into), alterar dados (update) e excluir dados (delete). Inserir, alterar e excluir dados são consideradas operações essenciais e de grande aplicação nas operações com banco de dados.

insert into, update e delete são comandos da linguagem SQL e não dos bancos de dados, como o Oracle, SQL Server, Access ou MySQL. Isto significa que o aprendizado destes comandos tem enorme abrangência, pois você poderá usá-los em qulaquer banco de dados relacional, como os bancos acima citados.

Inserir dados com insert into

Para inserir linhas em uma tabela usamos o comando INSERT. Este comando faz parte das instruções DML (Data Manipulation Language) ou Linguagem de manipulação 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 formato de data que ele opera é diferente do SQL Server. Veja como fica o mesmo exemplo 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 nós não podemos usar o insert para tentar inserir um valor nesta coluna, pois a mesma foi criada com o argumento Identity, que faz a geração automática 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 apóstrofo), porém, na coluna numérica (salário) o valor foi passado sem o uso de aspas simples.

No caso do MySQL a data tem o formado de ano, mês e dia.

Exemplo 2: SQL Server e Access

INSERT INTO empregados(nome, data_nascimento)
VALUES('João','12/15/1960')

Lembrando que o MySQL trata a data no formato ano-mes-dia, portanto devemos fazer esta alteração. Veja o mesmo exemplo para MySQL.

INSERT INTO empregados(nome, data_nascimento)
VALUES('João','1960-12-15')

Observe que não usamos todas as colunas da tabela empregados criada anteriormente, ou seja, você pode fazer um insert em apenas algumas colunas. Neste caso as demais colunas irão 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 vírgula e isto fez com que o banco de dados entendesse como sendo dois valores. Neste caso a vírgula deverá ser substituido por ponto, ao invés de usar 1420,52, use 1420.52.

Alterar dados com update

Para alterar linhas em uma tabela usamos o comando UPDATE. Este comando faz parte das instruções DML (Data Manipulation Language) ou Linguagem de manipulação de dados.

UPDATE empregados set nome='João da Silva',cidade='São Paulo' where codigo_empregado=2

No exemplo acima, alteramos o nome para João e a cidade para São Paulo, mas é importante observar que esta alteração só irá ocorrer onde o código do empregado for igual a 2.

A cláusula where é usada para criar um filtro, ou seja, para determinar quais as linhas serão afetadas.

CUIDADO: Se você não especificar a cláusula where as modificações serão aplicadas em todas as linhas da tabela.

Excluir dados com delete

Para excluir linhas em uma tabela usamos o comando DELETE. Este comando faz parte das instruções DML (Data Manipulation Language) ou Linguagem de manipulação de dados.

DELETE FROM empregados where codigo_empregado=1

CUIDADO: Se você não especificar a cláusula where todas as linhas da tabela serão excluídas.

No exemplo acima, será excluído a linha em que o código do empregado for igual a 1

A cláusula where é usada para criar um filtro, ou seja, para determinar quais as linhas serão afetadas.

Para excluir todas as linhas de uma tabela use o comando Delete como no exemplo a seguir:

DELETE FROM empregados
_________________________
Créditos deste artigo para: http://www.luis.blog.br