Treinamento de SQL Básico

28.694 visualizações

Publicada em

Treinamento de SQL Básico focado em SQL Server.

0 comentários
26 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
28.694
No SlideShare
0
A partir de incorporações
0
Número de incorporações
26
Ações
Compartilhamentos
0
Downloads
1.414
Comentários
0
Gostaram
26
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Treinamento de SQL Básico

  1. 1. SQL Básico<br />Igor Alves<br />
  2. 2. Agenda<br />O que é SQL<br />Tipos de Consultas SQL<br />Manipulando Tabelas<br />Estrutura de uma Consulta SQL<br />Condição no Where<br />Funções de Agregações<br />Funções de Agrupamento<br />Junções<br />Subconsultas<br />View<br />Comando Insert, Update e Delete<br />Commit e Rollback<br />Grant e Rovoke<br />Triggers<br />Stored Procedure<br />2<br />
  3. 3. O Que é SQL?<br />3<br />
  4. 4. Tipos de Consultas SQL<br />SQL – Structured Query Language<br />Data Definition <br />Language<br />DDL<br />Data Control<br /> Language<br />DCL<br />Data <br />Manipulation<br />Language<br />DML<br />Define o Esquema<br />Manipula o Esquema <br />Assegura o Esquema<br />4<br />
  5. 5. Manipulando Tabelas<br />Para a manipulação de tabelas existem alguns comandos específicos.<br />Create Table<br />Constraint<br />Chave Primária<br />Chave Estrangeira<br />Alter Table<br />Drop Table<br />Truncate Table<br />5<br />
  6. 6. Manipulando Tabelas<br />O comando Create Table é utilizado para criar uma tabela no banco de dados.<br />Exemplo:<br />Create TableDepartamento<br /> (Cod Interger Not Null,<br /> Nome Varchar(20) NotNull,<br />ConstraintpkdepartPrimary Key (Cod)<br />)<br />6<br />
  7. 7. Manipulando Tabelas<br />Exemplo:<br />Create TableEmpregados<br /> (Cod Interger Not Null,<br /> Nome Varchar(20) Not Null,<br />Endereco Varchar (30),<br /> Funcao Varchar (30) Not Null,<br /> Coddepart Int Not Null,<br /> Salario Decimal(10,2) Not Null,<br />ConstraintpkempregadoPrimary Key (Cod),<br />ConstraintfkdepartForeign Key (Coddepart) References departamento(Cod) <br />) <br />7<br />
  8. 8. Manipulando Tabelas<br />O comando Alter Table é utilizado para alterar a estrutura de uma tabela no banco de dados.<br />Exemplo:<br />Alter Table Empregados Add Column (DTNasc Datetime Not Null);<br />Alter Table Empregados Modify Column (Endereco Varchar(40));<br />Alter Table Empregados DropEnderecoCascade;<br />Alter Table Empregados DropEnderecoRestrict;<br />Alter Table Empregados Drop Column Endereco;<br />8<br />
  9. 9. Manipulando Tabelas<br />O Comando DropTable apaga a tabela do banco de dados.<br />Exemplo:<br />Drop Table Empregados;<br />O Comando Truncate apaga os dados da tabela.<br />Exemplo:<br />Truncate Table Empregados;<br />9<br />
  10. 10. Estrutura de Consultas SQL<br />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.<br />SELECT <lista de atributos e funções><br />FROM <lista de tabelas><br />WHERE <condições><br />GROUP BY <atributos de agrupamento> <br />HAVING <condição de agrupamento><br />ORDER BY <list de atributos>;<br />OBS: A clausula OrderBy pode ser utilizada para uma ordenação crescente (ASC) ou decrescente(DESC).<br />10<br />
  11. 11. Estrutura de Consultas SQL<br />SELECT<br />CASE<br />WHEN STATUSLAN = 0 THEN ‘Em Aberto’<br />WHEN STATUSLAN = 1 THEN ‘Baixado’<br />ELSE ‘Cancelado’<br />ENDSTATUSLAN<br />FROM TITULOS<br />11<br />
  12. 12. Estrutura de Consultas SQL<br />NO LOCK<br />SELECT<br />COD<br />FROM EMPREGADOS WITH(NO LOCK)<br />12<br />
  13. 13. Condições no Where<br />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:<br />Operadores de Comparação (=,<,>)<br />Between<br />Like / Not Like<br />IN / Not IN<br />IS Null / IS Not Null<br />And e Or<br />13<br />
  14. 14. Condições no Where<br />Operadores de Comparação:<br />= igual a <br />> maior que<br /><menor que<br />>= maior que ou igual a<br /><= menor que ou igual a<br /><> diferente<br />Exemplos:<br />Select * From Empregados Where salario > 1000;<br />Select * From Empregados Where salario = 720;<br />Select * From Empregados Where salario <> 720; <br />14<br />
  15. 15. Condições no Where<br />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:<br />Select * From Empregados Where salario Between 600 and 720;<br />Select * From Empregados Where salario Not Between 600 and 720;<br />OBS: Os valores extremos da faixa de valores estão inclusos no resultado.<br />15<br />
  16. 16. Condições no Where<br />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:<br />Select * From Empregados Where nome like ‘%E%’;<br />Select * From Empregados Where nome like ‘E%’;<br />Select * From Empregados Where nome like ‘%E’;<br />16<br />
  17. 17. Condições no Where<br />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:<br />Select * From Empregados Where salario In (600,650,720);<br />Select * From Empregados Where salario Not In (600,650,720);<br />17<br />
  18. 18. Condições no Where<br />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:<br />Select * From Empregados Where salario IS Null;<br />Select * From Empregados Where salario IS Not Null;<br />18<br />
  19. 19. Condições no Where<br />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:<br />Select * From Empregados Where salario IS Null and funcao = ‘Trainee’;<br />Select * From Empregados Where salario IS Null and (funcao = ‘Trainee’ or funcao = ‘Estagiário’);<br />19<br />
  20. 20. Função de Agregamento<br />Essas funções tem a finalidade de agregar os dados a serem retornados numa consulta SQL, São elas:<br />Count<br />Exemplo: Select count(*) From Empregados;<br />Exemplo: Select count(salario) From Empregados;<br />Max / Min<br />Exemplo: Select max(salario) From Empregados;<br />Exemplo: Select min(salario) From Empregados;<br />Sum/Avg<br />Exemplo: Select sum(Salario) From Empregados;<br />Exemplo: Select avg(Salario) From Empregados;<br />20<br />
  21. 21. Função de Agrupamento<br />Essa função tem a finalidade de agrupar os dados a serem retornados numa consulta SQL, Como demonstrado abaixo:<br />Select Distinct Funcao,Sum(Salario)<br />From Empregados <br />Where Cidade = ‘Salvador’ <br />Group By Funcao <br />Having SUM(Salario) > 600<br />21<br />
  22. 22. Junções<br />22<br />
  23. 23. Junções<br />Exemplos:<br />Select Empregados.nome, Empregados.funcao <br />From (Empregados Inner Join departamento On Empregados.coddepart = departamento.cod )<br />Where departamento.nome = ‘Consultoria’;<br />Equivalente a :<br />Select Empregados.nome, Empregados.funcao <br />From Empregados,departamento <br />Where Empregados.coddepart = departamento.cod )<br /> And departamento.nome = ‘Consultoria’;<br />23<br />
  24. 24. SubConsultas<br />O uso de subconsultas se faz quando é necessaria a utilização de uma consulta como restrição da consulta resultado. <br />Exemplo:<br />Select<br />Nome<br />From Empregados<br />Where<br />Salario = (Selectmax(salario) From Empregados);<br />24<br />
  25. 25. VIEW<br />Por Que o uso de View?<br />Create View Consultor_Trainee (Nome,Salario,Departamento) <br />As<br />Select<br />Empregados.Nome, Empregados.Salario, <br />Departamento.Nome<br />From<br /> Empregados Inner Join Departamento On<br /> (Empregados.Coddepart = Departamento.Cod)<br />Where<br />Empregados.Funcao IN (‘Trainee’,’Consultor’);<br />25<br />
  26. 26. Insert<br />O comando Insert é utilizado para inserir dados nas tabelas do banco utilizado.<br />Estrutura:<br />Insert Intotabela (atributo1, atributo2, ..., atributon) <br />Values (valor1, valor2, ..., valorn)<br />Exemplos:<br />Insert Into Empregados(Cod,Nome,Funcao,Salario,Coddepart)<br />Values (1,’Nelson’,’Estagiário’,600,1);<br />Insert Into Empregados(Cod,Nome,Funcao,Salario,Coddepart)<br />Values(1,’Nelson’,’Estagiário’,600,(Select min(cod) From <br /> Departamento);<br />26<br />
  27. 27. Update<br />O comando Update é utilizado para alterar os dados de uma tabela do banco utilizado.<br />Estrutura:<br />UpdatetabelaSet <atribuições>Where <Condição><br />Exemplos:<br />Update Empregados<br />Set Funcao = ‘Consultor’<br />Where Funcao = ‘Trainee’<br />Update Empregados<br />Set Funcao = ‘Consultor’, Salario = Salario + 500<br />Where Funcao = ‘Trainee’<br />27<br />
  28. 28. Delete<br />O comando Delete é utilizado para apagar dados de uma tabela do banco utilizado.<br />Estrutura:<br />Delete FromtabelaWhere <Condição><br />Exemplo:<br />Delete From Empregados<br />Where Funcao = ‘Trainee’;<br />28<br />
  29. 29. Commit e Rollback<br />Commit: Usado para confirmar uma transação.<br />RollBack: Usado para desfazer uma transação.<br />OBS: No SQL Server para se utilizar os comandos Commit e RollBack é necessário a abertura de transação com o comando Begin Tran.<br />Exemplo:<br />Begin Tran<br /> Delete From Empregados<br /> Where Funcao = ‘Trainee’;<br />Rollback<br />29<br />
  30. 30. Grant<br />Permissão de comandos DDL<br />GRANT {comando} TO {usuário}<br /> Permissão de objeto<br />GRANT {comando} ON {object} TO {usuário} [ WITH GRANT OPTION]<br />GRANT (exemplos)<br />Grant Alter tables To igor;<br />Grant select, insert, update, deleteOn empregados To igor;<br />Grant All On empregados To igor; <br />30<br />
  31. 31. Revoke<br />REVOKE {comando} ON {object} FROM {usuário}<br />Revoke (exemplos)<br />Revoke deleteOn empregadosFrom igor;<br />Revoke All On empregados From igor; <br />31<br />
  32. 32. Triggers<br />Triggers ou Gatilhos são procedimentos disparados através do uso dos comandos: Insert,Update ou Delete.<br />No SQL Server Existem algumas condições que determinam o momento que a triggers será executada, são elas:<br />After – Executa a trigger caso o comando executado tenha sido realizado com sucesso.<br />For – Executa a triggers em conjunto com o comando.<br />Instead Of – Executa a triggers no lugar do comando.<br />32<br />
  33. 33. Triggers<br />Estrutura de uma trigger:<br />Create Trigger Nome_da_Trigger<br />On Tabela<br />For | Alter | Instead Of { insert,update, delete}<br /> As instruções SQL;<br />Para se alterar o código de uma Trigger utiliza-se o comando: <br />Alter Trigger.<br />Para excluir uma Trigger utiliza-se o comando Drop Trigger.<br />33<br />
  34. 34. Triggers<br />Exemplo:<br />Create Trigger Tg_EmpregadosOnEmpregados InsteadOfInsertAs<br />Declare@Nome Varchar(20), @EnderecoVarchar(30), <br /> @FuncaoVarchar(30), @CoddepartInt,@Salario <br /> Decimal(10,2)<br />Select@Nome = Nome,@Endereco = Endereco,<br /> @Funcao = Funcao,@Coddepart = Coddepart,<br /> @Salario = Salario<br />Frominserted<br />InsertInto Empregados(Cod,Nome,Endereco,Funcao,Coddepart,Salario) values ((Selectmax(Cod)+1 From Empregados),<br /> @Nome,@Endereco,@Funcao,@Coddepart,@Salario)<br />34<br />
  35. 35. Stored Procedure<br />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)<br />35<br />
  36. 36. Stored Procedure<br />Exemplo:<br />Criando uma Stored Procedure:<br />Create Proceduresp_insereUsuario<br /> @CPF DECIMAL(11,0),<br /> @NOME VARCHAR(30),<br /> @EMAIL VARCHAR(30)<br />As<br />INSERT INTOUSUARIO <br /> (CPF,NOME,EMAIL,DT_CADASTRO)<br />VALUES(@CPF,@NOME,@EMAIL, GETDATE());<br />Executando uma Stored Procedure:<br />EXEC sp_insereUsuario<br /> @CPF = '03478956212', @NOME = 'Igor',<br /> @EMAIL = 'igor.alvez@gmail.com';<br />36<br />
  37. 37. Dúvidas<br />Contatos: <br /> E-Mail: igor.alvez@gmail.com<br />Linkedin: http://www.linkedin.com/in/igoralves<br />37<br />
  38. 38. Referencias<br />SQL Magazine – Introdução a Stored Procedure:<br />http://www.devmedia.com.br/post-2213-Introducao-as-Stored-Procedure-com-SQL-Server-2000-2005.html<br />38<br />

×