Esta Slide possui praticamente tos os comandos basicos e importantes do MYSQL e SQL,
Size: 201.22 KB
Language: pt
Added: Aug 15, 2017
Slides: 34 pages
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;