SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
O que é SQL?
• Structured Query Language;
• Desenvolvido no início dos anos setenta;
• Usado para a comunicação com base de dados;
• Padrão para a administração de base de dados
relacional;
• Três subconjuntos: DML, DDL e DCL;
DML
• Data Manipulation Language;
• Manipulação de Dados;
• SELECT;
• INSERT;
• UPDATE;
• DELETE;
SELECT
• Principal comando da DML;
• Permite ao usuário especificar uma consulta com uma
descrição do resultado desejado;
• Composto por várias cláusulas e opções;
• Sintaxe:
SELECT [ALL | DISTINCT ] - Seleciona colunas
{* | [[user.].table.column | expression,...]}
FROM table_name ,[table2] - Define tabelas
[WHERE] condition - Restringe linhas
[GROUP BY] ..... - Agrupamento
[HAVING] ..... - Restringe linhas de grupo
[ORDER BY] ..... - Ordena o resultado
• SELECT * FROM empregado;
• SELECT dt_nasc AS “Data de Nascimento” FROM pessoa;
• SELECT cod_emp, salario, salario * 1.30 AS "Novo Salário"
FROM empregado;
Exemplo de consulta SQL, mostrando cálculos matemáticos
sobre colunas.
Cod_Emp Salario Novo Salário
5200 1200 1560
4600 1500 1950
5100 5000 6500
Cláusulas
As cláusulas são condições de modificação utilizadas para definir os dados
que deseja selecionar ou modificar em uma consulta.
Cláusulas e seus significados.
Palavra Significado
DISTINCT Seleciona os dados sem repetição.
FROM Especifica a(s) tabela(s) que vão selecionar os registros.
WHERE Especifica as condições que devem reunir os registros que serão
selecionados.
GROUP BY Separa os registros selecionados por grupos específicos.
HAVING Expressa a condição que deve satisfazer cada grupo.
ORDER BY Ordena os registros selecionados com uma ordem especifica. Por
padrão o default é ASC.
UNION Combina os resultados de duas consultas SQL em uma única
tabela para todas as linhas correspondentes.
WHERE - Condições de Busca
Operador Significado
AND E
OR OU
NOT Negação
Operadores Lógicos
Operador Significado
< Menor
> Maior
<= Menor ou igual
>= Maior ou igual
= Igual
<> Diferente
Operadores Relacionais
Palavra Significado
IS NULL Verificar se o valor é nulo, isto é, (NULL).
BETWEEN Verifica o valor dentro de um intervalo.
IN Verifica se o valor procurado está dentro de uma lista.
LIKE Verifica colunas baseando-se em uma combinação de caracteres.
WHERE exemplos (1/4)
• SELECT nome_emp, salario FROM empregado WHERE
cod_dept = 5100;
• SELECT nome_emp, salario FROM empregado WHERE salario
> 5000;
• SELECT nome_emp, salario FROM empregado WHERE salario
>= 5000;
• SELECT nome_emp, salario FROM empregado WHERE salario
<= 5000;
• SELECT nome_emp, salario FROM empregado WHERE NOT
salario = 5000 (ou salario <> 5000);
WHERE exemplos (2/4)
• SELECT nome_emp, salario FROM empregado WHERE salario
IS NULL;
• SELECT nome_emp, salario FROM empregado WHERE salario
IS NOT NULL;
• SELECT nome_emp, salario FROM empregado WHERE salario
BETWEEN 5000 AND 6000;
• SELECT nome_emp, salario FROM empregado WHERE salario
NOT BETWEEN 5000 and 6000;
• SELECT nome_emp, salario FROM empregado WHERE salario
IN (1200, 1500);
WHERE exemplos (3/4)
• SELECT nome_emp FROM empregado WHERE nome_emp IN
('JOÃO','MARIA');
• SELECT nome_emp FROM empregado WHERE nome_emp LIKE
'J%';
• SELECT nome_emp FROM empregado WHERE nome_emp LIKE
'%O';
• SELECT nome_emp FROM empregado WHERE nome_emp LIKE
'%O%';
• SELECT nome_emp FROM empregado WHERE nome_emp LIKE
'_A%';
• SELECT nome_emp FROM empregados WHERE NOT LIKE 'J%';
WHERE exemplos (4/4)
• SELECT nome_emp, salario FROM empregado WHERE salario
* 1.30 > 1800;
• SELECT nome_emp FROM empregado WHERE salario > 1000
AND cod_dept = 5100;
• SELECT nome_emp FROM empregado WHERE salario > 1000
OR cod_dept = 5100;
• SELECT nome_emp FROM empregado WHERE salario > 1000
AND cod_dept = 5100 OR nome_emp = 'MARIA';
Funções de Agregação
As funções de agregação são usadas dentro de uma
cláusula SELECT em grupos de registros para devolver
um único valor que se aplica a um grupo de registros.
Função Significado
AVG Retorna a média dos valores de uma coluna determinada.
COUNT Retorna o número de registros de uma seleção.
SUM Retorna a soma de todos os valores de uma coluna determinada.
MAX Retorna o valor mais alto de uma coluna determinada.
MIM Retorna o valor mais baixo de uma coluna determinada.
WHERE + Função de Agregação
• SELECT MIN (salario) AS "Menor salário“ FROM empregados
WHERE cod_dept = 5100;
• SELECT COUNT(telefone) AS "Empregados com Telefone”
FROM empregados WHERE cod_dept = 5100;
• OBS.: Se você especificar um nome de coluna no COUNT,
unicamente linhas contendo valores (NOT NULL) serão
contadas. Quando você usa COUNT(*), todas as linhas serão
contadas.
GROUP BY / HAVING
• Para sumarizar informações de um grupo em linhas, use a cláusula GROUP BY
seguida da coluna que contém valores para ser agrupados juntos.
• Ex.: SELECT cod_dept, count(*) as "total” FROM empregados GROUP BY
cod_dept;
• HAVING permite adicionar uma condição para cada grupo;
• Tem o mesmo comportamento do WHERE;
• Esta cláusula é usada para eliminar grupos do resultado, assim como usa o
WHERE para eliminar linhas.
• Ex.: SELECT cod_dept, count(*) AS "total” FROM empregados GROUP BY
cod_dept HAVING COUNT(*) > 1;
Cod_Dept Total
4600 1
5100 2
5200 1
Acessando múltiplas tabelas (JOIN)
• Para ligar duas tabelas, você precisa associar uma ou mais colunas da
tabela com uma ou mais colunas da segunda tabela;
• Exemplo:
SELECT cod_emp, nome_emp, cod_dept, nome_dept
FROM empregados, departamentos
WHERE empregados.cod_dept = departamentos.cod_dept;
Cod_emp Nome_emp Cod_dept Nome_dept
2898 PEDRO 5100 INFORMÁTICA
2899 MARIA 5100 INFORMÁTICA
2096 JOÃO 5200 MARKETING
2437 CARLOS 4600 MANUTENÇÃO
UNION
• Usado para unir o resultado de duas ou mais consultas;
• O total de colunas e o tipo das colunas envolvidas nas
consultas devem ser iguais.
• Ex.:
SELECT emp.cod_emp, emp.nome_emp FROM empregados
emp WHERE emp.cod_emp = 2898
UNION
SELECT emp.cod_emp, emp.nome_emp FROM empregados
emp WHERE emp.cod_emp = 2899;
INSERT
• Inserir uma tupla em uma tabela existente no banco de dados.
• Sintaxe:
INSERT INTO [tabela] ([valor],[valores]) VALUES
([valor],[valores]);
• Exemplos:
INSERT INTO Departamento VALUES (200, ‘Financeiro’);
INSERT INTO Departamento (id_departamento, descricao)
VALUES (300, ‘RH’);
Inserindo linhas através de um
SUBQUERY
• Podemos inserir linhas oriundas de um resultado de um
SUBQUERY .
• Sintaxe:
INSERT INTO table_name [(column,column...)]
SUBQUERY
• Exemplo:
INSERT INTO departamento_copia (cod_dept, nome_dept )
(SELECT cod_dept,nome_dept FROM departamento);
UPDATE
• Usado para alterar os valores de dados em uma ou mais
linhas da tabela existente;
• Modifica linhas específicas, se a cláusula WHERE for
especificada.
• Sintaxe:
UPDATE [tabela] SET [atributo] = [novo valor], [atributo] =
[novo valor] WHERE {Condição [atributo] = [valor]};
• Exemplo:
UPDATE Pessoa SET nome = ’beltrano’ WHERE id_pessoa = 1;
UPDATE Empregados SET salario = salario * 1.30 WHERE
salario < 1300;
DELETE
• Usado para remover linhas de uma tabela existente.
• Sintaxe:
DELETE FROM [tabela] WHERE {Condição [atributo] =
[valor]};
• Exemplo:
DELETE FROM pessoa WHERE id_pessoa = 2;
DELETE FROM empregados WHERE salario < 1300;
Controles de Transação
• COMMIT
• Finaliza a transação;
• Libera o bloqueio de transações;
• Sintaxe: COMMIT;
• ROLLBACK
• Cancela todas as alterações efetuadas na corrente sessão;
• Cancela mudanças completadas, mas não submetidas ao BD,
deixando assim o BD como se tais mudanças nunca tivessem
sido feitas;
• Sintaxe: ROLLBACK;
DDL
• Data Definition Language;
• Definição de novas tabelas e elementos
associados às mesmas;
• CREATE, ALTER e DROP;
• Chaves primárias e chaves estrangeiras podem
ser inseridas, alteradas ou removidas de uma
tabela.
CREATE
• Sintaxe:
• CREATE TABLE [nome da tabela] ({ [nome da coluna] [tipo de
dado] [NOT] [NULL] [DEFAULT expressão]});
• DEFAULT expressão - define que quando não for atribuído um
valor para a coluna no INSERT, o campo assumirá o valor da
expressão.
• Exemplo:
CREATE TABLE Empregados (
id_empregado NUMBER(4),
id_departamento NUMBER(4),
cidade VARCHAR2(30));
• Para assegurar que linhas duplicadas não sejam armazenadas, uma coluna ou a
combinação de colunas é identificada como PRIMARY KEY de uma tabela quando
definida. Cada entrada na coluna PRIMARY KEY precisa ser única.
• Exemplo:
• CREATE TABLE Empregados (
id_empregado NUMBER(4) NOT NULL CONSTRAINT EMP_PK PRIMARY KEY
(id_empregado),
id_departamento NUMBER(4),
cidade VARCHAR2(30));
• O relacionamento entre tabelas é feito pela definição de FOREIGN KEYS. Uma
FOREIGN KEY é um valor ou combinação de valores em uma tabela que existe como
uma PRIMARY KEY em outra tabela.
• Exemplo:
• CREATE TABLE Empregados (
id_empregado NUMBER(4) NOT NULL CONSTRAINT EMP_PK PRIMATY KEY
(id_empregado),
id_departamento NUMBER(4) CONSTRAINT DEP_FK REFERENCES [tabela](nome do
campo),
cidade VARCHAR2(30));
ALTER
• Sintaxe:
ALTER TABLE [tabela]
[ADD {([nome da coluna] [tipo de dado] [NOT] [NULL] [DEFAULT
expressão])}] ;
[MODIFY {([nome da coluna] [tipo de dado] [NOT] [NULL]
[DEFAULT expressão])}] ;
[DROP COLUMN nome da coluna] ;
• Exemplos:
ALTER TABLE Empregados ADD (idade NUMBER (2) NOT NULL);
ALTER TABLE Empregados MODIFY (cidade VARCHAR2(50));
ALTER TABLE Empregados DROP COLUMN cidade;
• Caso uma tabela seja criada sem nela terem sido
especificadas a chave primária e/ou a(s) chave(s)
estrangeira(s), o comando ALTER permite que seja
feita a inclusão, alteração ou remoção;
• Ex.: Adicionando e removendo a chave primária
na tabela Empregados:
• ALTER TABLE Empregados ADD CONSTRAINT
EMP_PK PRIMARY KEY (id_empregado);
• ALTER TABLE Empregados DROP CONSTRAINT
EMP_PK;
• Ex.: Adicionando e removendo a chave
estrangeira na tabela Empregados,
respectivamente:
• ALTER TABLE Empregados ADD CONSTRAINT
DEPT_FK FOREIGN KEY (id_departamento)
REFERENCES Departamento
(id_departamento);
• ALTER TABLE Empregados DROP CONSTRAINT
DEPT_FK;
DROP
• Sintaxe:
• DROP TABLE [tabela];
• Exemplo:
• DROP TABLE Empregados;
DCL
• Data Control Language;
• Controla os aspectos de autorização de dados
e licenças de usuários para controlar quem
tem acesso para ver ou manipular dados
dentro do banco de dados;
• GRANT e REVOKE.
Permissão de Acesso - GRANT
• Autoriza o usuário executar ou setar operações
tais como: SELECT, INSERT, UPDATE e DELETE.
• Sintaxe:
GRANT [role] ON [table] TO [user];
• Exemplo:
GRANT select, insert ON Empregados TO system;
Revogar/Negar Acesso - REVOKE
• O comando REVOKE remove ou restringe a
capacidade de um usuário de executar operações.
• Sintaxe:
REVOKE [role] ON [table] FROM [user];
• Exemplo:
REVOKE select, insert ON Empregados FROM
system;
Informações Autor
Autor: Ricardo Kovalski Cruz
E-mail: ricardokovalskicruz@gmail.com
LinkedIn: https://www.linkedin.com/in/ricardo-kovalski-cruz

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Thyago Maia
 
Padronização de Nomenclatura para Banco de Dados
Padronização de Nomenclatura para Banco de DadosPadronização de Nomenclatura para Banco de Dados
Padronização de Nomenclatura para Banco de DadosSamuelson Brito
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoHelder Lopes
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controleProfessor Samuel Ribeiro
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
PBD Select e restrições para Select
PBD Select e restrições para SelectPBD Select e restrições para Select
PBD Select e restrições para SelectElaine Cecília Gatto
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Leinylson Fontinele
 

Mais procurados (20)

Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Estruturas de dados
Estruturas de dadosEstruturas de dados
Estruturas de dados
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1
 
Padronização de Nomenclatura para Banco de Dados
Padronização de Nomenclatura para Banco de DadosPadronização de Nomenclatura para Banco de Dados
Padronização de Nomenclatura para Banco de Dados
 
Modelação de Dados
Modelação de DadosModelação de Dados
Modelação de Dados
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
PBD Select e restrições para Select
PBD Select e restrições para SelectPBD Select e restrições para Select
PBD Select e restrições para Select
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Curso MySQL #03 - Criando um Banco de Dados MySQL
Curso MySQL #03 - Criando um Banco de Dados MySQLCurso MySQL #03 - Criando um Banco de Dados MySQL
Curso MySQL #03 - Criando um Banco de Dados MySQL
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Aula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCLAula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCL
 

Semelhante a O que é SQL? Uma introdução completa ao SQL

Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_paganacri
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sqlCharleston Anjos
 
Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018Elaine Cecília Gatto
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdfAula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdfAngeloOliveira60
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sqlNilson Augustini
 
Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosGustavo Sávio
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsRodrigo Kiyoshi Saito
 

Semelhante a O que é SQL? Uma introdução completa ao SQL (20)

Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_pag
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
Aula 12 banco de dados
Aula 12   banco de dadosAula 12   banco de dados
Aula 12 banco de dados
 
Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdfAula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - Filtros
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
06 Trabalhando com registros
06 Trabalhando com registros06 Trabalhando com registros
06 Trabalhando com registros
 
Sql junções
Sql junçõesSql junções
Sql junções
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
BD I - Aula 10 A - Introducao a SQL
BD I - Aula 10 A - Introducao a SQLBD I - Aula 10 A - Introducao a SQL
BD I - Aula 10 A - Introducao a SQL
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
 
apostila-de-sql
apostila-de-sqlapostila-de-sql
apostila-de-sql
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 

O que é SQL? Uma introdução completa ao SQL

  • 1.
  • 2. O que é SQL? • Structured Query Language; • Desenvolvido no início dos anos setenta; • Usado para a comunicação com base de dados; • Padrão para a administração de base de dados relacional; • Três subconjuntos: DML, DDL e DCL;
  • 3. DML • Data Manipulation Language; • Manipulação de Dados; • SELECT; • INSERT; • UPDATE; • DELETE;
  • 4. SELECT • Principal comando da DML; • Permite ao usuário especificar uma consulta com uma descrição do resultado desejado; • Composto por várias cláusulas e opções; • Sintaxe: SELECT [ALL | DISTINCT ] - Seleciona colunas {* | [[user.].table.column | expression,...]} FROM table_name ,[table2] - Define tabelas [WHERE] condition - Restringe linhas [GROUP BY] ..... - Agrupamento [HAVING] ..... - Restringe linhas de grupo [ORDER BY] ..... - Ordena o resultado
  • 5. • SELECT * FROM empregado; • SELECT dt_nasc AS “Data de Nascimento” FROM pessoa; • SELECT cod_emp, salario, salario * 1.30 AS "Novo Salário" FROM empregado; Exemplo de consulta SQL, mostrando cálculos matemáticos sobre colunas. Cod_Emp Salario Novo Salário 5200 1200 1560 4600 1500 1950 5100 5000 6500
  • 6. Cláusulas As cláusulas são condições de modificação utilizadas para definir os dados que deseja selecionar ou modificar em uma consulta. Cláusulas e seus significados. Palavra Significado DISTINCT Seleciona os dados sem repetição. FROM Especifica a(s) tabela(s) que vão selecionar os registros. WHERE Especifica as condições que devem reunir os registros que serão selecionados. GROUP BY Separa os registros selecionados por grupos específicos. HAVING Expressa a condição que deve satisfazer cada grupo. ORDER BY Ordena os registros selecionados com uma ordem especifica. Por padrão o default é ASC. UNION Combina os resultados de duas consultas SQL em uma única tabela para todas as linhas correspondentes.
  • 7. WHERE - Condições de Busca Operador Significado AND E OR OU NOT Negação Operadores Lógicos Operador Significado < Menor > Maior <= Menor ou igual >= Maior ou igual = Igual <> Diferente Operadores Relacionais Palavra Significado IS NULL Verificar se o valor é nulo, isto é, (NULL). BETWEEN Verifica o valor dentro de um intervalo. IN Verifica se o valor procurado está dentro de uma lista. LIKE Verifica colunas baseando-se em uma combinação de caracteres.
  • 8. WHERE exemplos (1/4) • SELECT nome_emp, salario FROM empregado WHERE cod_dept = 5100; • SELECT nome_emp, salario FROM empregado WHERE salario > 5000; • SELECT nome_emp, salario FROM empregado WHERE salario >= 5000; • SELECT nome_emp, salario FROM empregado WHERE salario <= 5000; • SELECT nome_emp, salario FROM empregado WHERE NOT salario = 5000 (ou salario <> 5000);
  • 9. WHERE exemplos (2/4) • SELECT nome_emp, salario FROM empregado WHERE salario IS NULL; • SELECT nome_emp, salario FROM empregado WHERE salario IS NOT NULL; • SELECT nome_emp, salario FROM empregado WHERE salario BETWEEN 5000 AND 6000; • SELECT nome_emp, salario FROM empregado WHERE salario NOT BETWEEN 5000 and 6000; • SELECT nome_emp, salario FROM empregado WHERE salario IN (1200, 1500);
  • 10. WHERE exemplos (3/4) • SELECT nome_emp FROM empregado WHERE nome_emp IN ('JOÃO','MARIA'); • SELECT nome_emp FROM empregado WHERE nome_emp LIKE 'J%'; • SELECT nome_emp FROM empregado WHERE nome_emp LIKE '%O'; • SELECT nome_emp FROM empregado WHERE nome_emp LIKE '%O%'; • SELECT nome_emp FROM empregado WHERE nome_emp LIKE '_A%'; • SELECT nome_emp FROM empregados WHERE NOT LIKE 'J%';
  • 11. WHERE exemplos (4/4) • SELECT nome_emp, salario FROM empregado WHERE salario * 1.30 > 1800; • SELECT nome_emp FROM empregado WHERE salario > 1000 AND cod_dept = 5100; • SELECT nome_emp FROM empregado WHERE salario > 1000 OR cod_dept = 5100; • SELECT nome_emp FROM empregado WHERE salario > 1000 AND cod_dept = 5100 OR nome_emp = 'MARIA';
  • 12. Funções de Agregação As funções de agregação são usadas dentro de uma cláusula SELECT em grupos de registros para devolver um único valor que se aplica a um grupo de registros. Função Significado AVG Retorna a média dos valores de uma coluna determinada. COUNT Retorna o número de registros de uma seleção. SUM Retorna a soma de todos os valores de uma coluna determinada. MAX Retorna o valor mais alto de uma coluna determinada. MIM Retorna o valor mais baixo de uma coluna determinada.
  • 13. WHERE + Função de Agregação • SELECT MIN (salario) AS "Menor salário“ FROM empregados WHERE cod_dept = 5100; • SELECT COUNT(telefone) AS "Empregados com Telefone” FROM empregados WHERE cod_dept = 5100; • OBS.: Se você especificar um nome de coluna no COUNT, unicamente linhas contendo valores (NOT NULL) serão contadas. Quando você usa COUNT(*), todas as linhas serão contadas.
  • 14. GROUP BY / HAVING • Para sumarizar informações de um grupo em linhas, use a cláusula GROUP BY seguida da coluna que contém valores para ser agrupados juntos. • Ex.: SELECT cod_dept, count(*) as "total” FROM empregados GROUP BY cod_dept; • HAVING permite adicionar uma condição para cada grupo; • Tem o mesmo comportamento do WHERE; • Esta cláusula é usada para eliminar grupos do resultado, assim como usa o WHERE para eliminar linhas. • Ex.: SELECT cod_dept, count(*) AS "total” FROM empregados GROUP BY cod_dept HAVING COUNT(*) > 1; Cod_Dept Total 4600 1 5100 2 5200 1
  • 15. Acessando múltiplas tabelas (JOIN) • Para ligar duas tabelas, você precisa associar uma ou mais colunas da tabela com uma ou mais colunas da segunda tabela; • Exemplo: SELECT cod_emp, nome_emp, cod_dept, nome_dept FROM empregados, departamentos WHERE empregados.cod_dept = departamentos.cod_dept; Cod_emp Nome_emp Cod_dept Nome_dept 2898 PEDRO 5100 INFORMÁTICA 2899 MARIA 5100 INFORMÁTICA 2096 JOÃO 5200 MARKETING 2437 CARLOS 4600 MANUTENÇÃO
  • 16. UNION • Usado para unir o resultado de duas ou mais consultas; • O total de colunas e o tipo das colunas envolvidas nas consultas devem ser iguais. • Ex.: SELECT emp.cod_emp, emp.nome_emp FROM empregados emp WHERE emp.cod_emp = 2898 UNION SELECT emp.cod_emp, emp.nome_emp FROM empregados emp WHERE emp.cod_emp = 2899;
  • 17. INSERT • Inserir uma tupla em uma tabela existente no banco de dados. • Sintaxe: INSERT INTO [tabela] ([valor],[valores]) VALUES ([valor],[valores]); • Exemplos: INSERT INTO Departamento VALUES (200, ‘Financeiro’); INSERT INTO Departamento (id_departamento, descricao) VALUES (300, ‘RH’);
  • 18. Inserindo linhas através de um SUBQUERY • Podemos inserir linhas oriundas de um resultado de um SUBQUERY . • Sintaxe: INSERT INTO table_name [(column,column...)] SUBQUERY • Exemplo: INSERT INTO departamento_copia (cod_dept, nome_dept ) (SELECT cod_dept,nome_dept FROM departamento);
  • 19. UPDATE • Usado para alterar os valores de dados em uma ou mais linhas da tabela existente; • Modifica linhas específicas, se a cláusula WHERE for especificada. • Sintaxe: UPDATE [tabela] SET [atributo] = [novo valor], [atributo] = [novo valor] WHERE {Condição [atributo] = [valor]}; • Exemplo: UPDATE Pessoa SET nome = ’beltrano’ WHERE id_pessoa = 1; UPDATE Empregados SET salario = salario * 1.30 WHERE salario < 1300;
  • 20. DELETE • Usado para remover linhas de uma tabela existente. • Sintaxe: DELETE FROM [tabela] WHERE {Condição [atributo] = [valor]}; • Exemplo: DELETE FROM pessoa WHERE id_pessoa = 2; DELETE FROM empregados WHERE salario < 1300;
  • 21. Controles de Transação • COMMIT • Finaliza a transação; • Libera o bloqueio de transações; • Sintaxe: COMMIT; • ROLLBACK • Cancela todas as alterações efetuadas na corrente sessão; • Cancela mudanças completadas, mas não submetidas ao BD, deixando assim o BD como se tais mudanças nunca tivessem sido feitas; • Sintaxe: ROLLBACK;
  • 22. DDL • Data Definition Language; • Definição de novas tabelas e elementos associados às mesmas; • CREATE, ALTER e DROP; • Chaves primárias e chaves estrangeiras podem ser inseridas, alteradas ou removidas de uma tabela.
  • 23. CREATE • Sintaxe: • CREATE TABLE [nome da tabela] ({ [nome da coluna] [tipo de dado] [NOT] [NULL] [DEFAULT expressão]}); • DEFAULT expressão - define que quando não for atribuído um valor para a coluna no INSERT, o campo assumirá o valor da expressão. • Exemplo: CREATE TABLE Empregados ( id_empregado NUMBER(4), id_departamento NUMBER(4), cidade VARCHAR2(30));
  • 24. • Para assegurar que linhas duplicadas não sejam armazenadas, uma coluna ou a combinação de colunas é identificada como PRIMARY KEY de uma tabela quando definida. Cada entrada na coluna PRIMARY KEY precisa ser única. • Exemplo: • CREATE TABLE Empregados ( id_empregado NUMBER(4) NOT NULL CONSTRAINT EMP_PK PRIMARY KEY (id_empregado), id_departamento NUMBER(4), cidade VARCHAR2(30)); • O relacionamento entre tabelas é feito pela definição de FOREIGN KEYS. Uma FOREIGN KEY é um valor ou combinação de valores em uma tabela que existe como uma PRIMARY KEY em outra tabela. • Exemplo: • CREATE TABLE Empregados ( id_empregado NUMBER(4) NOT NULL CONSTRAINT EMP_PK PRIMATY KEY (id_empregado), id_departamento NUMBER(4) CONSTRAINT DEP_FK REFERENCES [tabela](nome do campo), cidade VARCHAR2(30));
  • 25. ALTER • Sintaxe: ALTER TABLE [tabela] [ADD {([nome da coluna] [tipo de dado] [NOT] [NULL] [DEFAULT expressão])}] ; [MODIFY {([nome da coluna] [tipo de dado] [NOT] [NULL] [DEFAULT expressão])}] ; [DROP COLUMN nome da coluna] ; • Exemplos: ALTER TABLE Empregados ADD (idade NUMBER (2) NOT NULL); ALTER TABLE Empregados MODIFY (cidade VARCHAR2(50)); ALTER TABLE Empregados DROP COLUMN cidade;
  • 26. • Caso uma tabela seja criada sem nela terem sido especificadas a chave primária e/ou a(s) chave(s) estrangeira(s), o comando ALTER permite que seja feita a inclusão, alteração ou remoção; • Ex.: Adicionando e removendo a chave primária na tabela Empregados: • ALTER TABLE Empregados ADD CONSTRAINT EMP_PK PRIMARY KEY (id_empregado); • ALTER TABLE Empregados DROP CONSTRAINT EMP_PK;
  • 27. • Ex.: Adicionando e removendo a chave estrangeira na tabela Empregados, respectivamente: • ALTER TABLE Empregados ADD CONSTRAINT DEPT_FK FOREIGN KEY (id_departamento) REFERENCES Departamento (id_departamento); • ALTER TABLE Empregados DROP CONSTRAINT DEPT_FK;
  • 28. DROP • Sintaxe: • DROP TABLE [tabela]; • Exemplo: • DROP TABLE Empregados;
  • 29. DCL • Data Control Language; • Controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados; • GRANT e REVOKE.
  • 30. Permissão de Acesso - GRANT • Autoriza o usuário executar ou setar operações tais como: SELECT, INSERT, UPDATE e DELETE. • Sintaxe: GRANT [role] ON [table] TO [user]; • Exemplo: GRANT select, insert ON Empregados TO system;
  • 31. Revogar/Negar Acesso - REVOKE • O comando REVOKE remove ou restringe a capacidade de um usuário de executar operações. • Sintaxe: REVOKE [role] ON [table] FROM [user]; • Exemplo: REVOKE select, insert ON Empregados FROM system;
  • 32. Informações Autor Autor: Ricardo Kovalski Cruz E-mail: ricardokovalskicruz@gmail.com LinkedIn: https://www.linkedin.com/in/ricardo-kovalski-cruz