SlideShare uma empresa Scribd logo
1 de 38
SQL Básico Igor 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 SQL – Structured Query Language Data Definition  Language DDL Data Control  Language DCL Data  Manipulation Language DML 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 TableDepartamento 		(Cod		Interger Not Null,           	 Nome 	                Varchar(20) NotNull, ConstraintpkdepartPrimary Key (Cod) ) 6
Manipulando Tabelas Exemplo: Create TableEmpregados 		(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, ConstraintpkempregadoPrimary Key (Cod), ConstraintfkdepartForeign 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 DropEnderecoCascade; Alter Table Empregados DropEnderecoRestrict; Alter Table Empregados Drop Column Endereco; 8
Manipulando Tabelas O Comando DropTable 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 OrderBy 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’ ENDSTATUSLAN 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: Select * From Empregados Where salario > 1000; Select * From Empregados Where salario = 720; 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: Select * From Empregados Where salario Between 600 and 720; 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: Select * From Empregados Where nome like ‘%E%’; Select * From Empregados Where nome like ‘E%’; 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: Select * From Empregados Where salario In (600,650,720); 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: Select * From Empregados Where salario IS Null; 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: Select * From Empregados Where salario IS Null and funcao = ‘Trainee’; 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 = (Selectmax(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.Nome From   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 Intotabela (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: UpdatetabelaSet <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 FromtabelaWhere <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 Empregados 		Where Funcao = ‘Trainee’; Rollback 29
Grant Permissão de comandos DDL GRANT {comando} TO {usuário}       Permissão de objeto GRANT {comando} ON {object} TO {usuário} [ WITH GRANT OPTION] GRANT (exemplos) Grant Alter tables To igor; Grant select, insert, update, deleteOn empregados To igor; Grant All On empregados To igor;  30
Revoke REVOKE {comando} ON {object} FROM {usuário} Revoke (exemplos) Revoke deleteOn empregadosFrom igor; Revoke All On empregados From igor;  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_Trigger On 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
Triggers Exemplo: Create Trigger Tg_EmpregadosOnEmpregados InsteadOfInsertAs Declare@Nome Varchar(20), @EnderecoVarchar(30),               @FuncaoVarchar(30), @CoddepartInt,@Salario               Decimal(10,2) Select@Nome = Nome,@Endereco = Endereco,   @Funcao = Funcao,@Coddepart = Coddepart,   @Salario = Salario Frominserted InsertInto Empregados(Cod,Nome,Endereco,Funcao,Coddepart,Salario) values ((Selectmax(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 Proceduresp_insereUsuario 	@CPF DECIMAL(11,0), 	@NOME VARCHAR(30), 	@EMAIL VARCHAR(30) As INSERT INTOUSUARIO                  (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

Mais conteúdo relacionado

Mais procurados

Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDVinicius Buffolo
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoLeinylson Fontinele
 
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Leinylson Fontinele
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Leinylson Fontinele
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaLeinylson Fontinele
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfMarcelo Silva
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoLeinylson Fontinele
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggersDaniel Maia
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoLuis Ferreira
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 

Mais procurados (20)

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
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBD
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na prática
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggers
 
A Linguagem sql
A Linguagem sqlA Linguagem sql
A Linguagem sql
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 

Destaque

Apostila introdução à linguagem sql
Apostila introdução à linguagem sqlApostila introdução à linguagem sql
Apostila introdução à linguagem sqlReuel Lopes
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012Hcode
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005Andre Nascimento
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012Rodrigo Ribeiro
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosFábio dos Reis
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLFábio Delboni
 
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...Beat Signer
 
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010Flávio Lisboa
 
Administrando e armazenando dados com sql server 2005 (31 horas)
Administrando e armazenando dados com sql server 2005 (31 horas)Administrando e armazenando dados com sql server 2005 (31 horas)
Administrando e armazenando dados com sql server 2005 (31 horas)Vitor Savicki
 
A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01Reinaldo Junior
 
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_soxAuditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_soxSQLServerRS
 
Caderno de info(banco de dados).
Caderno de info(banco de dados).Caderno de info(banco de dados).
Caderno de info(banco de dados).Ajudar Pessoas
 
Apostila c# iniciantes
Apostila c# iniciantesApostila c# iniciantes
Apostila c# iniciantesCaique Moretto
 
Sql Server Stored Procedures
Sql Server   Stored ProceduresSql Server   Stored Procedures
Sql Server Stored Proceduresalexdutra
 

Destaque (19)

Apostila introdução à linguagem sql
Apostila introdução à linguagem sqlApostila introdução à linguagem sql
Apostila introdução à linguagem sql
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
 
Triggers no SQL Server
Triggers no SQL ServerTriggers no SQL Server
Triggers no SQL Server
 
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
Mapeamento Objeto Relacional com PHP - PHP Conference Brasil 2010
 
Administrando e armazenando dados com sql server 2005 (31 horas)
Administrando e armazenando dados com sql server 2005 (31 horas)Administrando e armazenando dados com sql server 2005 (31 horas)
Administrando e armazenando dados com sql server 2005 (31 horas)
 
A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
 
Dynamic Types no C# 4.0
Dynamic Types no C# 4.0Dynamic Types no C# 4.0
Dynamic Types no C# 4.0
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
 
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_soxAuditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
 
Caderno de info(banco de dados).
Caderno de info(banco de dados).Caderno de info(banco de dados).
Caderno de info(banco de dados).
 
Apostila c# iniciantes
Apostila c# iniciantesApostila c# iniciantes
Apostila c# iniciantes
 
Sql Server Stored Procedures
Sql Server   Stored ProceduresSql Server   Stored Procedures
Sql Server Stored Procedures
 

Semelhante a SQL Básico - Guia Completo

Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggersflaviognm
 
Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - EstrategiasIsmael
 
um breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesum breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesWilliam Costa
 
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
 
Net Coders Ladies SQL
Net Coders Ladies SQL Net Coders Ladies SQL
Net Coders Ladies SQL Aline Lavorato
 
08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dados08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dadosCarlos Santos
 
Instrucoes_Algoritmicas.pptx
Instrucoes_Algoritmicas.pptxInstrucoes_Algoritmicas.pptx
Instrucoes_Algoritmicas.pptxGustavoMaciel67
 
Modulo-02-Aula-04-certificao-sqlser.pptx
Modulo-02-Aula-04-certificao-sqlser.pptxModulo-02-Aula-04-certificao-sqlser.pptx
Modulo-02-Aula-04-certificao-sqlser.pptxAugustoNicolau2
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_paganacri
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQLArley Rodrigues
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersDaniel Maia
 
Treinamento Oracle Forms
Treinamento Oracle FormsTreinamento Oracle Forms
Treinamento Oracle FormsFelipe Goulart
 

Semelhante a SQL Básico - Guia Completo (20)

Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - Estrategias
 
Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
um breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesum breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidades
 
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
 
Net Coders Ladies SQL
Net Coders Ladies SQL Net Coders Ladies SQL
Net Coders Ladies SQL
 
Aula1
Aula1Aula1
Aula1
 
08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dados08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dados
 
Views Oracle Database
Views Oracle DatabaseViews Oracle Database
Views Oracle Database
 
Instrucoes_Algoritmicas.pptx
Instrucoes_Algoritmicas.pptxInstrucoes_Algoritmicas.pptx
Instrucoes_Algoritmicas.pptx
 
Modulo-02-Aula-04-certificao-sqlser.pptx
Modulo-02-Aula-04-certificao-sqlser.pptxModulo-02-Aula-04-certificao-sqlser.pptx
Modulo-02-Aula-04-certificao-sqlser.pptx
 
Java13
Java13Java13
Java13
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_pag
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQL
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggers
 
Treinamento Oracle Forms
Treinamento Oracle FormsTreinamento Oracle Forms
Treinamento Oracle Forms
 

SQL Básico - Guia Completo

  • 2. 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
  • 3. O Que é SQL? 3
  • 4. Tipos de Consultas SQL SQL – Structured Query Language Data Definition Language DDL Data Control Language DCL Data Manipulation Language DML Define o Esquema Manipula o Esquema Assegura o Esquema 4
  • 5. 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
  • 6. Manipulando Tabelas O comando Create Table é utilizado para criar uma tabela no banco de dados. Exemplo: Create TableDepartamento (Cod Interger Not Null, Nome Varchar(20) NotNull, ConstraintpkdepartPrimary Key (Cod) ) 6
  • 7. Manipulando Tabelas Exemplo: Create TableEmpregados (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, ConstraintpkempregadoPrimary Key (Cod), ConstraintfkdepartForeign Key (Coddepart) References departamento(Cod) ) 7
  • 8. 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 DropEnderecoCascade; Alter Table Empregados DropEnderecoRestrict; Alter Table Empregados Drop Column Endereco; 8
  • 9. Manipulando Tabelas O Comando DropTable apaga a tabela do banco de dados. Exemplo: Drop Table Empregados; O Comando Truncate apaga os dados da tabela. Exemplo: Truncate Table Empregados; 9
  • 10. 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 OrderBy pode ser utilizada para uma ordenação crescente (ASC) ou decrescente(DESC). 10
  • 11. Estrutura de Consultas SQL SELECT CASE WHEN STATUSLAN = 0 THEN ‘Em Aberto’ WHEN STATUSLAN = 1 THEN ‘Baixado’ ELSE ‘Cancelado’ ENDSTATUSLAN FROM TITULOS 11
  • 12. Estrutura de Consultas SQL NO LOCK SELECT COD FROM EMPREGADOS WITH(NO LOCK) 12
  • 13. 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
  • 14. 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: Select * From Empregados Where salario > 1000; Select * From Empregados Where salario = 720; Select * From Empregados Where salario <> 720; 14
  • 15. 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: Select * From Empregados Where salario Between 600 and 720; Select * From Empregados Where salario Not Between 600 and 720; OBS: Os valores extremos da faixa de valores estão inclusos no resultado. 15
  • 16. 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: Select * From Empregados Where nome like ‘%E%’; Select * From Empregados Where nome like ‘E%’; Select * From Empregados Where nome like ‘%E’; 16
  • 17. 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: Select * From Empregados Where salario In (600,650,720); Select * From Empregados Where salario Not In (600,650,720); 17
  • 18. 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: Select * From Empregados Where salario IS Null; Select * From Empregados Where salario IS Not Null; 18
  • 19. 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: Select * From Empregados Where salario IS Null and funcao = ‘Trainee’; Select * From Empregados Where salario IS Null and (funcao = ‘Trainee’ or funcao = ‘Estagiário’); 19
  • 20. 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
  • 21. 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
  • 23. 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
  • 24. 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 = (Selectmax(salario) From Empregados); 24
  • 25. VIEW Por Que o uso de View? Create View Consultor_Trainee (Nome,Salario,Departamento) As Select Empregados.Nome, Empregados.Salario, Departamento.Nome From Empregados Inner Join Departamento On (Empregados.Coddepart = Departamento.Cod) Where Empregados.Funcao IN (‘Trainee’,’Consultor’); 25
  • 26. Insert O comando Insert é utilizado para inserir dados nas tabelas do banco utilizado. Estrutura: Insert Intotabela (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
  • 27. Update O comando Update é utilizado para alterar os dados de uma tabela do banco utilizado. Estrutura: UpdatetabelaSet <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
  • 28. Delete O comando Delete é utilizado para apagar dados de uma tabela do banco utilizado. Estrutura: Delete FromtabelaWhere <Condição> Exemplo: Delete From Empregados Where Funcao = ‘Trainee’; 28
  • 29. 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 Empregados Where Funcao = ‘Trainee’; Rollback 29
  • 30. Grant Permissão de comandos DDL GRANT {comando} TO {usuário} Permissão de objeto GRANT {comando} ON {object} TO {usuário} [ WITH GRANT OPTION] GRANT (exemplos) Grant Alter tables To igor; Grant select, insert, update, deleteOn empregados To igor; Grant All On empregados To igor; 30
  • 31. Revoke REVOKE {comando} ON {object} FROM {usuário} Revoke (exemplos) Revoke deleteOn empregadosFrom igor; Revoke All On empregados From igor; 31
  • 32. 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
  • 33. Triggers Estrutura de uma trigger: Create Trigger Nome_da_Trigger On 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
  • 34. Triggers Exemplo: Create Trigger Tg_EmpregadosOnEmpregados InsteadOfInsertAs Declare@Nome Varchar(20), @EnderecoVarchar(30), @FuncaoVarchar(30), @CoddepartInt,@Salario Decimal(10,2) Select@Nome = Nome,@Endereco = Endereco, @Funcao = Funcao,@Coddepart = Coddepart, @Salario = Salario Frominserted InsertInto Empregados(Cod,Nome,Endereco,Funcao,Coddepart,Salario) values ((Selectmax(Cod)+1 From Empregados), @Nome,@Endereco,@Funcao,@Coddepart,@Salario) 34
  • 35. 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
  • 36. Stored Procedure Exemplo: Criando uma Stored Procedure: Create Proceduresp_insereUsuario @CPF DECIMAL(11,0), @NOME VARCHAR(30), @EMAIL VARCHAR(30) As INSERT INTOUSUARIO (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
  • 37. Dúvidas Contatos: E-Mail: igor.alvez@gmail.com Linkedin: http://www.linkedin.com/in/igoralves 37
  • 38. 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