treinamento de sql básico
Post on 17-Dec-2014
18.119 Views
Preview:
DESCRIPTION
TRANSCRIPT
SQL BásicoIgor Alves
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
O Que é SQL?
3
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
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
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
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
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
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
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
Estrutura de Consultas SQL
SELECT
CASE
WHEN STATUSLAN = 0 THEN ‘Em Aberto’
WHEN STATUSLAN = 1 THEN ‘Baixado’
ELSE ‘Cancelado’
END STATUSLAN
FROM TITULOS
11
Estrutura de Consultas SQL
NO LOCK
SELECT
COD
FROM EMPREGADOS WITH(NO LOCK)
12
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
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
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
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
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
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
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
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
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
Junções
22
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
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
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
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
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
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
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
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
Revoke
Revoke (exemplos)
Revoke delete On empregados From igor;
Revoke All On empregados From igor;
REVOKE {comando} ON {object} FROM {usuário}
31
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
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
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
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
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 = 'igor.alvez@gmail.com';36
Dúvidas
Contatos: E-Mail: igor.alvez@gmail.com
Linkedin: http://www.linkedin.com/in/igoralves
37
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
top related