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

Tutorial que mostra vários exemplos de como inserir dados com insert into, alterar dados com update e excluir dados com delete. Exemplos para SQL Server e MySQL Quando devo usar apostrofe ou aspas simples em SQL e banco de dados?

Home » Tecnologia

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.

Veja observação logo abaixo sobre a data no SQL Server.

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 substituído por ponto, ao invés de usar 1420,52, use 1420.52.

Observação importante: Este artigo foi escrito a vários anos atrás e na época o uso da data em SQL Server era assim mesmo. Mas hoje o correto é aplicar mesmo em SQL Server o mesmo padrão já adotado no MySQL, ou seja, ano-mes-dia. Aliás, este padrão deve ser adotado para todos os bancos de dados.

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

Quando devo usar apostrofe ou aspas simples em SQL e banco de dados?

Veja a explicação do porquê do seu uso e quando ele é obrigatório em banco de dados.

O uso do apostrofe é necessário no INSERT INTO, UPDATE e alguns casos de SELECT. Sua finalidade é delimitar os valores que serão inseridos no banco de dados e evitar possíveis confusões na "cabeça do banco de dados" na hora de executar esses comendos. Isto pode acontecer especialmente nos campos que armazenam valores do tipo texto, como o char, varchar, text e também os tipos data, como date, datetime e outros.

Na instrução SQL cada coisa tem seu significado e você já deve saber disso, como a vírgula que é o separador entre o nome de uma campo e outro ou de um valor e outro. No caso do INSERT, por exemplo, os valores que estão entre vírgulas devem ser únicos e para garantir que isso seja verdade, os campos do tipo texto devem ter o apostrofe como delimitadores, instruindo o banco onde cmeça e onde termina o valor.

Para os campos numéricos como o INT, Real, decimal, numeric e outros isto não é necessário, pois os valores que serão inseridos já devem estar no formato correto, ou seja, precisam ser numéricos. Um campo texto poderá receber caracteres especiais e espaços em branco, por exemplo, mas os campos numéricos não recebem esse tipo de valor e portanto já são únicos por natureza.

Apostrole ou aspas simples?

Aproveitando, só queria ressaltar que o termo correto é mesmo o apostrole e não as aspas simples como é comum ouvirmos e inclusive lermos em livros técnicos de programação. Aspas simples não existe no português, isto é uma importação e adapatação do inglês.


VEJA TAMBÉM:

CANAL NO YOUTUBE

INSCREVA-SE:



Sistemas Web

Playlist de SQL

Youtube Youtube Youtube
© 2021 - Utilidade Pública: Tecnologia, Educação e Cidadania.