Treinamento de SQL Básico
-
Upload
igor-alves -
Category
Documents
-
view
18.119 -
download
6
description
Transcript of Treinamento de SQL Básico
![Page 1: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/1.jpg)
SQL BásicoIgor Alves
![Page 2: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/2.jpg)
Agenda
• O que é SQL• Tipos de Consultas SQL• Manipulando Tabelas• Estrutura de uma Consulta SQL• Condição no Where• Funções de Agregações• Funções de Agrupamento• Junções• Subconsultas• View• Comando Insert, Update e Delete• Commit e Rollback• Grant e Rovoke• Triggers• Stored Procedure
2
![Page 3: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/3.jpg)
O Que é SQL?
3
![Page 4: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/4.jpg)
Tipos de Consultas SQL
Data Definition Language
DDL
Data Control Language
DCL
Data Manipulation
LanguageDML
SQL – Structured Query Language
Define o Esquema
Manipula o Esquema
Assegura o Esquema
4
![Page 5: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/5.jpg)
Manipulando Tabelas
Para a manipulação de tabelas existem alguns comandos específicos.
• Create Table– Constraint
• Chave Primária• Chave Estrangeira
• Alter Table• Drop Table• Truncate Table
5
![Page 6: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/6.jpg)
Manipulando Tabelas
O comando Create Table é utilizado para criar uma tabela no banco de dados.
Exemplo:
Create Table Departamento
(Cod Interger Not Null,
Nome Varchar(20) Not Null,
Constraint pkdepart Primary Key (Cod)
)
6
![Page 7: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/7.jpg)
Manipulando Tabelas
Exemplo:
Create Table Empregados
(Cod Interger Not Null,
Nome Varchar(20) Not Null,
Endereco Varchar (30),
Funcao Varchar (30) Not Null,
Coddepart Int Not Null,
Salario Decimal(10,2) Not Null,
Constraint pkempregado Primary Key (Cod), Constraint fkdepart Foreign Key (Coddepart) References departamento(Cod)
)
7
![Page 8: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/8.jpg)
Manipulando Tabelas
O comando Alter Table é utilizado para alterar a estrutura de uma tabela no banco de dados.
Exemplo:
• Alter Table Empregados Add Column (DTNasc Datetime Not Null);
• Alter Table Empregados Modify Column (Endereco Varchar(40));
• Alter Table Empregados Drop Endereco Cascade;• Alter Table Empregados Drop Endereco Restrict;• Alter Table Empregados Drop Column Endereco;
8
![Page 9: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/9.jpg)
Manipulando Tabelas
O Comando Drop Table apaga a tabela do banco de dados.
Exemplo:
Drop Table Empregados;
O Comando Truncate apaga os dados da tabela.
Exemplo:
Truncate Table Empregados;
9
![Page 10: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/10.jpg)
Estrutura de Consultas SQL
Para se consultar uma informação em um banco de dados é utlizado o comando SELECT da linguagem SQL. Esse comando tem uma estrurura bem definida.
SELECT <lista de atributos e funções>FROM <lista de tabelas>WHERE <condições>GROUP BY <atributos de agrupamento> HAVING <condição de agrupamento>ORDER BY <list de atributos>;
OBS: A clausula Order By pode ser utilizada para uma ordenação crescente (ASC) ou decrescente(DESC).
10
![Page 11: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/11.jpg)
Estrutura de Consultas SQL
SELECT
CASE
WHEN STATUSLAN = 0 THEN ‘Em Aberto’
WHEN STATUSLAN = 1 THEN ‘Baixado’
ELSE ‘Cancelado’
END STATUSLAN
FROM TITULOS
11
![Page 12: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/12.jpg)
Estrutura de Consultas SQL
NO LOCK
SELECT
COD
FROM EMPREGADOS WITH(NO LOCK)
12
![Page 13: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/13.jpg)
Condições no Where
A clausula WHERE das consultas sql tem uma serie de operadores que facilitam a definição das condições do comando SELECT a ser executado, São elas:
• Operadores de Comparação (=,<,>)• Between• Like / Not Like• IN / Not IN• IS Null / IS Not Null• And e Or
13
![Page 14: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/14.jpg)
Condições no Where
Operadores de Comparação:
= igual a
> maior que
< menor que
>= maior que ou igual a
<= menor que ou igual a
<> diferente
Exemplos:
1. Select * From Empregados Where salario > 1000;
2. Select * From Empregados Where salario = 720;
3. Select * From Empregados Where salario <> 720;
14
![Page 15: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/15.jpg)
Condições no Where
Os comandos Between e Not Between são utilizados na clausula Where quando é necessario utilizar uma faixa de valores para uma restrição, como demonstrado abaixo:
1. Select * From Empregados Where salario Between 600 and 720;
2. Select * From Empregados Where salario Not Between 600 and 720;
OBS: Os valores extremos da faixa de valores estão inclusos no resultado.
15
![Page 16: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/16.jpg)
Condições no Where
Os comandos Like e Not Like são utilizados na clausula Where quando é necessario utilizar uma faixa de valores para campos dos tipos caracter e datatime para uma restrição, como demonstrado abaixo:
1. Select * From Empregados Where nome like ‘%E%’;
2. Select * From Empregados Where nome like ‘E%’;
3. Select * From Empregados Where nome like ‘%E’;
16
![Page 17: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/17.jpg)
Condições no Where
Os comandos IN e Not IN são utilizados na clausula Where quando é necessario utilizar uma faixa de valores definida pelo usuário, como demonstrado abaixo:
1. Select * From Empregados Where salario In (600,650,720);
2. Select * From Empregados Where salario Not In (600,650,720);
17
![Page 18: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/18.jpg)
Condições no Where
Os comandos IS Null e IS Not Null são utilizados quando deseja-se determinar se a condição é nula ou não, como demonstrado abaixo:
1. Select * From Empregados Where salario IS Null;
2. Select * From Empregados Where salario IS Not Null;
18
![Page 19: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/19.jpg)
Condições no Where
Os comandos AND(Todas as restrições são validas) e OR(Pelo menos uma das restrições é valida) são utilizado para definir mais de uma restrição ou caso queira que a restrição varie conforme um determinado valor, como demonstrado abaixo:
1. Select * From Empregados Where salario IS Null and funcao = ‘Trainee’;
2. Select * From Empregados Where salario IS Null and (funcao = ‘Trainee’ or funcao = ‘Estagiário’);
19
![Page 20: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/20.jpg)
Função de Agregamento
Essas funções tem a finalidade de agregar os dados a serem retornados numa consulta SQL, São elas:
• Count– Exemplo: Select count(*) From Empregados;– Exemplo: Select count(salario) From Empregados;
• Max / Min– Exemplo: Select max(salario) From Empregados;– Exemplo: Select min(salario) From Empregados;
• Sum/Avg– Exemplo: Select sum(Salario) From Empregados;– Exemplo: Select avg(Salario) From Empregados;
20
![Page 21: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/21.jpg)
Função de Agrupamento
Essa função tem a finalidade de agrupar os dados a serem retornados numa consulta SQL, Como demonstrado abaixo:
Select Distinct Funcao,Sum(Salario)
From Empregados
Where Cidade = ‘Salvador’
Group By Funcao
Having SUM(Salario) > 600
21
![Page 22: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/22.jpg)
Junções
22
![Page 23: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/23.jpg)
Junções
Exemplos:Select Empregados.nome, Empregados.funcao From (Empregados Inner Join departamento On
Empregados.coddepart = departamento.cod )
Where departamento.nome = ‘Consultoria’;
Equivalente a :
Select Empregados.nome, Empregados.funcao From Empregados,departamento
Where Empregados.coddepart = departamento.cod ) And departamento.nome = ‘Consultoria’;
23
![Page 24: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/24.jpg)
SubConsultas
O uso de subconsultas se faz quando é necessaria a utilização de uma consulta como restrição da consulta resultado.
Exemplo:
Select
Nome
From Empregados
Where
Salario = (Select max(salario) From Empregados);
24
![Page 25: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/25.jpg)
VIEW
Por Que o uso de View?
Create View Consultor_Trainee (Nome,Salario,Departamento) As
Select Empregados.Nome, Empregados.Salario,
Departamento.NomeFrom
Empregados Inner Join Departamento On (Empregados.Coddepart = Departamento.Cod)
Where
Empregados.Funcao IN (‘Trainee’,’Consultor’);
25
![Page 26: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/26.jpg)
Insert
O comando Insert é utilizado para inserir dados nas tabelas do banco utilizado.
Estrutura:Insert Into tabela (atributo1, atributo2, ..., atributon) Values (valor1, valor2, ..., valorn)
Exemplos:• Insert Into
Empregados(Cod,Nome,Funcao,Salario,Coddepart)
Values (1,’Nelson’,’Estagiário’,600,1);
• Insert Into Empregados(Cod,Nome,Funcao,Salario,Coddepart)
Values(1,’Nelson’,’Estagiário’,600,(Select min(cod) From
Departamento);26
![Page 27: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/27.jpg)
Update
O comando Update é utilizado para alterar os dados de uma tabela do banco utilizado.
Estrutura:Update tabela Set <atribuições> Where <Condição>
Exemplos:
Update Empregados
Set Funcao = ‘Consultor’
Where Funcao = ‘Trainee’
Update Empregados
Set Funcao = ‘Consultor’, Salario = Salario + 500
Where Funcao = ‘Trainee’
27
![Page 28: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/28.jpg)
Delete
O comando Delete é utilizado para apagar dados de uma tabela do banco utilizado.
Estrutura:Delete From tabela Where <Condição>
Exemplo:
Delete From Empregados
Where Funcao = ‘Trainee’;
28
![Page 29: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/29.jpg)
Commit e Rollback
Commit: Usado para confirmar uma transação.
RollBack: Usado para desfazer uma transação.
OBS: No SQL Server para se utilizar os comandos Commit e RollBack é necessário a abertura de transação com o comando Begin Tran.
Exemplo:Begin Tran
Delete From EmpregadosWhere Funcao = ‘Trainee’;
Rollback
29
![Page 30: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/30.jpg)
Grant
GRANT (exemplos)
Grant Alter tables To igor;
Grant select, insert, update, delete On empregados To igor;
Grant All On empregados To igor;
Permissão de comandos DDL
GRANT {comando} TO {usuário}
Permissão de objeto
GRANT {comando} ON {object} TO {usuário} [ WITH GRANT OPTION]
30
![Page 31: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/31.jpg)
Revoke
Revoke (exemplos)
Revoke delete On empregados From igor;
Revoke All On empregados From igor;
REVOKE {comando} ON {object} FROM {usuário}
31
![Page 32: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/32.jpg)
Triggers
Triggers ou Gatilhos são procedimentos disparados através do uso dos comandos: Insert,Update ou Delete.
No SQL Server Existem algumas condições que determinam o momento que a triggers será executada, são elas:
• After – Executa a trigger caso o comando executado tenha sido realizado com sucesso.
• For – Executa a triggers em conjunto com o comando.
• Instead Of – Executa a triggers no lugar do comando.
32
![Page 33: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/33.jpg)
Triggers
Estrutura de uma trigger:
Create Trigger Nome_da_TriggerOn Tabela
For | Alter | Instead Of { insert,update, delete} As instruções SQL;
Para se alterar o código de uma Trigger utiliza-se o comando:
Alter Trigger.
Para excluir uma Trigger utiliza-se o comando Drop Trigger.
33
![Page 34: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/34.jpg)
TriggersExemplo:
Create Trigger Tg_Empregados On Empregados Instead Of Insert As
Declare @Nome Varchar(20), @Endereco Varchar(30),
@Funcao Varchar(30), @Coddepart Int,@Salario
Decimal(10,2)
Select @Nome = Nome,@Endereco = Endereco,
@Funcao = Funcao,@Coddepart = Coddepart,
@Salario = Salario
From inserted
Insert Into Empregados(Cod,Nome,Endereco,Funcao,Coddepart,Salario) values ((Select max(Cod)+1 From Empregados),
@Nome,@Endereco,@Funcao,@Coddepart,@Salario)34
![Page 35: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/35.jpg)
Stored Procedure
A Stored Procedure é Um procedimento armazenado (Stored Procedure), é uma coleção de instruções implementadas com linguagem T-SQL (Transact-Sql, no SQL Server 2000/2005), que, uma vez armazenadas ou salvas, ficam dentro do servidor de forma pré-compilada, aguardando que um usuário do banco de dados faça sua execução.(SQL Magazine – Introdução a Stored Procedure)
35
![Page 36: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/36.jpg)
Stored Procedure
Exemplo:
Criando uma Stored Procedure:
Create Procedure sp_insereUsuario
@CPF DECIMAL(11,0),
@NOME VARCHAR(30),
@EMAIL VARCHAR(30)
As
INSERT INTO USUARIO
(CPF,NOME,EMAIL,DT_CADASTRO)
VALUES (@CPF,@NOME,@EMAIL, GETDATE());
Executando uma Stored Procedure:
EXEC sp_insereUsuario
@CPF = '03478956212', @NOME = 'Igor',
@EMAIL = '[email protected]';36
![Page 38: Treinamento de SQL Básico](https://reader034.fdocuments.in/reader034/viewer/2022050804/54913d7ab47959771c8b492d/html5/thumbnails/38.jpg)
Referencias
SQL Magazine – Introdução a Stored Procedure:http://www.devmedia.com.br/post-2213-Introducao-as-Stored-Procedure-com-SQL-Server-2000-2005.html
38