•SQL – DML
• Insert
• Update
• Delete
INF - Banco de Dados
Prof. Pedro Borges.
Introdução ao SQL
SQL - Structured Query Language
SQL é dividida em 3 subconjuntos (principais):
1º DDL - Data Definition Language (Linguagem de Definição de Dados).
• 2º DML - Data Manipulation Language (Linguagem de Manipulação de
Dados).
• 3º DQL - Data Query Language (Linguagem de Consulta de Dados).
Disciplina: Banco de Dados
2
Introdução ao SQL
SQL - Structured Query Language
SQL é dividida em 3 subconjuntos (principais):
1º DDL - Data Definition Language (Linguagem de Definição de Dados).
• 2º DML - Data Manipulation Language (Linguagem de Manipulação de
Dados).
• 3º DQL - Data Query Language (Linguagem de Consulta de Dados).
Disciplina: Banco de Dados
3
DML
Linguagem de Manipulação de Dados
A Linguagem de Manipulação de Dados (ou DML, de Data
Manipulation Language) é usada para a inclusão, remoção e
modificação de dados.
No caso de SQL, inclui os seguintes comandos:
• INSERT
• UPDATE
• DELETE
Disciplina: Banco de Dados
4
DML
Linguagem de Manipulação de Dados
Para fins de entendimento, o seguinte banco de dados será utilizado
no decorrer da aula (BD_ACADEMICO):
Disciplina: Banco de Dados
5
DML
Comando INSERT
Utilizado para inserir dados em uma
tabela.
INSERT INTO tabela
(coluna1, coluna2, ..., colunaN)
VALUES
(valor1, valor2, ..., valorN);
Disciplina: Banco de Dados
6
DML
Comando INSERT
Tipos e exemplos de
valores.
Tipo Valor
varchar “Banco de Dados” / ‘Banco de Dados’
char “Charqueadas” / ‘Charqueadas’
date “2020-11-10” / ‘2020-11-10’
time “09:12:45” / ‘09:12:45’
int 45
float 12.56
Disciplina: Banco de Dados
7
DML
Comando INSERT (exemplo)
Utilizado para inserir dados em uma
tabela.
INSERT INTO Disciplinas
(codigo, nome, sigla, cargaHoraria)
VALUES
(1, “Banco de Dados”, “BD”, 90);
Disciplina: Banco de Dados
8
DML
Comando INSERT - Forma abreviada
Na forma abreviada, omitimos o nome das colunas. Neste caso, o valor
de todas as colunas tem que ser informado.
INSERT INTO tabela VALUES
(valor1, valor2, ..., valorN);
Disciplina: Banco de Dados
9
DML
Comando INSERT - Forma abreviada
(exemplo)
Utilizado para inserir dados em uma tabela.
INSERT INTO Disciplinas VALUES
(1, “Banco de Dados”, “BD”, 90);
Disciplina: Banco de Dados
10
DML
Comando INSERT - Campos AUTO_INCREMENT
Utilizado para inserir dados em uma tabela com chave auto
incrementável, a chave não precisa ser inserida.
INSERT INTO Disciplinas
(nome, sigla, cargaHoraria)
VALUES
(“Banco de Dados”, “BD”, 90);
INSERT INTO Disciplinas VALUES
(null, “Banco de Dados”, “BD”, 90);
AUTO_INCREMENT
Disciplina: Banco de Dados
11
DML
Comando INSERT - Vários registros
É possível inserir várias tuplas (conjunto de valores) no mesmo
comando SQL.
INSERT INTO Disciplinas
(nome, sigla, cargaHoraria)
VALUES
(“Banco de Dados”, “BD”, 90),
(“Programação Web I”, “PWI”, 60),
(“Sistemas Operacionais”, “SO”, 45);
Disciplina: Banco de Dados
12
DML
Comando INSERT - Evitando ERROS
Cuidar para não gerar um erro de integridade referencial nos seguintes casos:
Ao inserir uma chave primária: Deve ser única;
Deixar o SQL gerenciar (AUTO_INCREMENT).
Ao inserir uma chave estrangeira:
A chave deverá existir na tabela que referencia.
Disciplina: Banco de Dados
13
DML
Comando UPDATE
Utilizado para atualizar dados que já existem em uma
determinada tabela.
UPDATE tabela SET campo
= valor WHERE condição;
Disciplina: Banco de Dados
14
DML
Comando UPDATE (exemplo 1)
Atualizar a carga horária da disciplina de código 1 para 90 horas
na tabela Disciplinas.
UPDATE Disciplinas
SET
cargaHoraria = 90
WHERE
codigo = 1;
Disciplina: Banco de Dados
15
DML
Comando UPDATE (exemplo 2)
É possível atualizar vários campos no mesmo
comando.
UPDATE Disciplinas
SET
nome = “Português”, sigla =
“PT”, cargaHoraria = 90
WHERE
codigo = 1;
Disciplina: Banco de Dados
16
DML
Comando UPDATE - Evitando ERROS
Cuidar para não colocar valores repetidos em chaves primárias;
• Não colocar valores nulos (NULL) em campos obrigatórios (NOT
NULL);
• Não esqueça que o UPDATE pode provocar problemas de
integridade referencial caso uma chave estrangeira faça
referência a uma chave primária inexistente.
Disciplina: Banco de Dados
17
DML
Comando DELETE
Utilizado para remover dados que já existem em uma
determinada tabela.
DELETE FROM tabela
WHERE condição;
Disciplina: Banco de Dados
18
DML
Comando DELETE (exemplo 1)
Remover o registro de código 1 da tabela
Notas.
DELETE FROM Notas
WHERE codigo = 1;
Disciplina: Banco de Dados
19
DML
Comando DELETE - Deletar vários registros
É possível deletar vários registros de uma só vez, basta
especificar isso na condição.
DELETE FROM Notas
WHERE codigo > 5;
DELETE FROM Notas
WHERE matAluno IN (2, 3, 5,
9);
Disciplina: Banco de Dados
20
DML
Comando DELETE - Deletar TODOS os registros
É possível limpar todos os registros de uma tabela apenas omitindo a
clausula WHERE.
DELETE FROM Notas;
MySQL implementa um safe mode!
Disciplina: Banco de Dados
21
DML
Desabilitar o safe mode no
Workbench
1° - Acessar as Preferências:
Edit – Preferences
2º - Acessar guia SQL Editor; 3° - Desabilitar a
opção “Safe mode”.
Disciplina: Banco de Dados
22
DML
Comando DELETE - Evitando ERROS
Não esqueça que o DELETE também pode provocar problemas
de integridade referencial caso uma chave primária, que é
referenciada por uma chave estrangeira, seja removida;
• Sempre remover antes as chaves estrangeiras nas tabelas para
depois remover os registros que elas referenciam.
Disciplina: Banco de Dados
23
DQL
Comando para mostrar todo o conteúdo de uma
tabela
SELECT * FROM tabela;
SELECT * FROM agencias;
Disciplina: Banco de Dados
24