Comandos DML

1,220 views 34 slides Aug 15, 2017
Slide 1
Slide 1 of 34
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34

About This Presentation

Esta Slide possui praticamente tos os comandos basicos e importantes do MYSQL e SQL,


Slide Content

B
ANCO DE
D
ADOS
-I
NTRODUÇÃO AO
SQL
Prof. Angelo Augusto Frozza, M.Sc.
[email protected]

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Os comandos SQL podem ser agrupados em 3 classes:
y
DDL –Data Definition Language
|
Comandos para a Definição de Dados
y
DML –Data Manipulation Language
|
Comandos para a Manipulação de Dados
y
DCL –Data Control Language
|
Comandos para o Controle do Gerenciador, Conexão e Usuário

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Objetos manipuláveis em um Banco de Dados:
y
Database(Base de Dados)
y
Table(Tabelas)
y
Index(Indíces)
y
View(Visões)
y
Stored Procedures(Procedimentos)
y
Triggers(Gatilhos)
y
Domain(Domínios)
y
Generator(Variáveis Globais)
y
Exception(Excecões)
y
User(Usuários)
y
Role(Grupos de Usuários)

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Comandos básicos da Linguagem de Manipulação dos Dados
(DML):
y
INSERT
y
SELECT
y
UPDATE
y
DELETE

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
PostgreSQL
y
Documentação
http://pgdocptbr.sourceforge.net/pg82/reference.html

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Inserir registro em uma tabela
INSERT INTO tabela
[ ( coluna [, ...] ) ]
{ DEFAULT VALUES | VALUES (
{ expressão | DEFAULT } [, ...] )
[, ...] | consulta }
[ RETURNING * | expressão_de_saída
[ AS nome_de_saída ] [, ...] ]

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Inserir registro em uma tabela
INSERT INTO paises(pais, nacionalidade)
VALUES ('Brasil', 'Brasileiro');
INSERT INTO paises(id_pais, pais, nacionalidade)
VALUES (DEFAULT, 'Mexico', 'Mexicano');
INSERT INTO paises
VALUES (DEFAULT, 'Venezuela', 'Venezuelano');

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Inserir registro em uma tabela
INSERT INTO paises(pais, nacionalidade)
VALUES ('Uruguai', 'Uruguaio')
RETURNING *;
INSERT INTO paises
VALUES (DEFAULT, 'Guiana Francesa', 'Guianense')
RETURNING id_pais;
INSERT INTO paises
VALUES (DEFAULT, 'Guiana (República
Cooperativa da Guiana)', 'Guianês')
RETURNING id_pais;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Inserir registro em uma tabela
y
Vários registros na mesma linha
INSERT INTO paises(pais, nacionalidade)
VALUES ('Canadá', 'Canadense'),
('Estados Unidos', 'Americano') ,
('Bolívia', 'Boliviano');
INSERT INTO paises(pais, nacionalidade)
VALUES ('Franca', 'Frances'),
('Alemanha', 'Alemao') ,
('Italia', 'Italiano')
RETURNING id_pais;

E
XERCÍCIO DE FIXAÇÃO
|
INSERT
y
Como exercício de fixação, crie registros para as
tabelas do banco de dados modelo, conforme as
instruções repassadas pelo professor.

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta todos os registros e campos de uma tabela:
SELECT *FROM tabela;
select * from paises;
Consulta apenas alguns campos da tabela:
SELECT campo1, campo2, ..., campoNFROM tabela;
select id_filme, titulo, genero from filmes;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta com ordenação:
SELECT *FROM tabelaORDER BY campo;
SELECT camposFROM tabelaORDER BY campo;
SELECT * FROM filmes ORDER BY titulo;
SELECT id_filme, titulo, genero FROM filmes ORDER
BY genero;
SELECT id_filme, titulo, genero FROM filmes ORDER
BY genero, titulo;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta com ordenação crescente ou decrescente:
SELECT *FROM tabelaORDER BY campo ASC | DESC;
SELECT id_filme, titulo, genero FROM filmes ORDER
BY genero, titulo DESC;
SELECT id_filme, titulo, genero FROM filmes ORDER
BY id_filme DESC;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta com filtro de valores:
SELECT *FROM tabela WHEREcampo = ?;
SELECT id_filme, titulo, genero FROM filmes WHERE
genero = 3;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta com filtro de valores:
SELECT *FROM tabela
WHEREcampo1 = ? AND campo2 = ?;
SELECT *FROM tabela
WHEREcampo1 <> ? OR campo2 = ?;
SELECT id_filme, titulo, genero FROM filmes WHERE
genero = 3 AND id_filme > 15;
SELECT id_filme, titulo, genero FROM filmes WHERE
genero <> 3 OR id_filme > 15;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta com filtro de texto aproximados:
SELECT *FROM tabela
WHEREcampo1 like ‘...%...’;
SELECT id_filme, titulo, generoFROM filmes
WHEREtitulo like'a%’;
SELECT id_filme, titulo, generoFROM filmes
WHEREtitulo like'a%’ OR titulo like‘A%’ ;
SELECT id_filme, titulo, generoFROM filmes
WHEREtitulo like‘%o’;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta com filtro de texto aproximados:
SELECT *FROM tabela
WHEREcampo1 like ‘_...’;
O SQL substitui o ‘_’ (underline) por qualquer
caracter.
SELECT id_filme, titulo, generoFROM filmes
WHEREtitulo = ‘_caro%’;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta com limite de registros:
SELECT *FROM tabela LIMIT n;
SELECT id_filme, titulo, generoFROM filmes
LIMIT 5;
SELECT id_filme, titulo, genero
FROM filmes
ORDER BY titulo LIMIT 5;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta agrupando os valores:
SELECT *FROM tabela GROUP BY campo;
SELECT generoFROM filmes
GROUP BY genero;
SELECT ano_lancamentoFROM filmes
GROUP BY ano_lancamento;
SELECT genero, ano_lancamentoFROM filmes
GROUP BY genero, ano_lancamento;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta agrupando os valores e contando registros:
SELECT COUNT(*)FROM tabela GROUP BY campo;
SELECT COUNT(*), generoFROM filmes
GROUP BY genero ORDER BY COUNT(*);
SELECT COUNT(*), ano_lancamentoFROM filmes
GROUP BY ano_lancamento;
SELECT COUNT(*), genero, ano_lancamentoFROM filmes
GROUP BY genero, ano_lancamento;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta alterando o nome dos campos:
SELECT campoAS apelido FROM tabela GROUP BY campo;
SELECT COUNT(*) AS qtde, generoFROM filmes
GROUP BY genero ORDER BY COUNT(*);
SELECT COUNT(*) AS qtde, ano_lancamentoFROM filmes
GROUP BY ano_lancamento;
SELECT COUNT(*) AS qtde, genero,
ano_lancamento AS lancamentoFROM filmes
GROUP BY genero, ano_lancamento;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta somando valores:
SELECT SUM(campo)FROM tabela;
SELECT SUM(campo)AS apelido FROM tabela;
SELECT SUM(valor)AS total_locacao FROM locacao;
SELECT codigo AS cliente,
SUM(valor)AS total_locacao
FROM locacao
WHERE codigo = 1
GROUP BY codigo;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consultar dados de mais de uma tabela:
SELECT * FROM tabela_A, tabela_B;
SELECT a.*, b.* FROM tabela_A a, tabela_B b;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Consulta registros em um intervalo de datas:
SELECT campos
FROM tabela
WHERE campo_data
BETWEEN data_inicioAND data_fim;
SELECT count(*)
FROM locacao
WHEREdata_hora_locacao
BETWEEN’01-04-2011’ AND’09-04-2011’;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Outras cláusulas interessantes:
|
union
|
intersect
|
except
|
join
|
left join
|
right join
|
full join
|
cross join
|
having
|
distinct

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Operador UNION (união):
|
Dados dois conjuntos: A (1, 2, 3, 4, 5)e B (1, 4, 9)
SELECT * FROM A
UNION
SELECT * FROM B;
|
O operador UNIONretorna os registros selecionados em ambas as
consultas, eliminando os registros duplicados:

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Operador UNION ALL:
|
Dados dois conjuntos: A (1, 2, 3, 4, 5)e B (1, 4, 9)
SELECT * FROM A
UNION ALL
SELECT * FROM B;
|
O operador UNIONALL retorna TODOS os registros selecionados em
ambas as consultas, SEM REMOVER os registros duplicados:

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Operador INTERSECT (intersecção):
|
Dados dois conjuntos: A (1, 2, 3, 4, 5)e B (1, 4, 9)
SELECT * FROM A
INTERSECT
SELECT * FROM B;
|
O operador INTERSECTretorna APENAS os registros comuns em ambas
as consultas:

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Consultar dados em uma tabela
y
Operador EXCEPT (exceto):
|
Dados dois conjuntos: A (1, 2, 3, 4, 5)e B (1, 4, 9)
SELECT * FROM A
EXCEPT
SELECT * FROM B;
|
O operador EXCEPT retorna os registros presentes no primeiro conjunto,
MENOS os registros presentes no segundo conjunto:

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Atualizar dados
UPDATE[ ONLY ] tabela[ [ AS ] aliás ]
SET{ coluna= { expressão| DEFAULT } |
( coluna[, ...] ) =
( { expressão| DEFAULT } [, ...] ) }
[, ...]
[ FROM lista_do_from]
[ WHEREcondição]
[ RETURNING * |
expressão_de_saída[ AS nome_de_saída] [, ...] ]

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Atualizar dados
y
Alterar dados em uma tabela
UPDATEfilmes
SETano_lancamento= 2011,
faixa_etaria= 1,
titulo= 'Rio',
observacoes= 'Filme brasileiro',
genero= 1,
id_tipo= 1
WHEREid_filme=1;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Atualizar dados
y
Alterar dados em uma tabela retornando um campo
UPDATEfilmes
SETano_lancamento= 2011,
faixa_etaria= 1,
titulo= 'Rio',
observacoes= 'Filme brasileiro',
genero= 1,
id_tipo= 1
WHEREid_filme=1
RETURNING id_filme;

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Exclusão de registros
DELETE FROM [ ONLY ] tabela[ [ AS ] aliás]
[ USING lista_do_using]
[ WHEREcondição]
[ RETURNING * | expressão_de_saída[ AS
nome_de_saída] [, ...] ]

SQL –S
TRUTURED
Q
UERY
L
ANGUAGE
|
Exclusão de registros
y
Exemplo:
DELETE FROM filmes
WHEREid_filme= 2;