O documento apresenta os principais conceitos e comandos da linguagem SQL, incluindo consultas, manipulação de tabelas, junções, subconsultas, views, triggers e stored procedures.
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
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
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
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