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.
AgendaO que éSQLTipos de Consultas SQLManipulando TabelasEstrutura de uma Consulta SQLCondição no WhereFunções de AgregaçõesFunções de AgrupamentoJunçõesSubconsultasViewComando Insert, Update e DeleteCommit e RollbackGrant e RovokeTriggersStored Procedure2
Tipos de ConsultasSQLSQL – Structured Query LanguageData Definition LanguageDDLData Control LanguageDCLData ManipulationLanguageDMLDefine o EsquemaManipula o Esquema Assegura o Esquema4
5.
Manipulando TabelasPara amanipulação de tabelas existem alguns comandos específicos.Create TableConstraintChave PrimáriaChave EstrangeiraAlter TableDrop TableTruncate Table5
6.
Manipulando TabelasO comandoCreate 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 TabelasExemplo:Create TableEmpregados (Cod IntergerNot 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 TabelasO comandoAlter 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 TabelasO ComandoDropTable 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 ConsultasSQLPara 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 ConsultasSQLSELECTCASEWHEN STATUSLAN = 0 THEN ‘Em Aberto’WHEN STATUSLAN = 1 THEN ‘Baixado’ELSE ‘Cancelado’ENDSTATUSLANFROM TITULOS11
Condições no WhereAclausula 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 (=,<,>)BetweenLike / Not LikeIN / Not INIS Null / IS Not NullAnd e Or13
14.
Condições no WhereOperadoresde Comparação:= igual a > maior que<menor que>= maior que ou igual a<= menor que ou igual a<> diferenteExemplos:Select * From Empregados Where salario > 1000;Select * From Empregados Where salario = 720;Select * From Empregados Where salario <> 720; 14
15.
Condições no WhereOscomandos 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 WhereOscomandos 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 WhereOscomandos 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 WhereOscomandos 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 WhereOscomandos 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 AgregamentoEssasfunções tem a finalidade de agregar os dados a serem retornados numa consulta SQL, São elas:CountExemplo: Select count(*) From Empregados;Exemplo: Select count(salario) From Empregados;Max / MinExemplo: Select max(salario) From Empregados;Exemplo: Select min(salario) From Empregados;Sum/AvgExemplo: Select sum(Salario) From Empregados;Exemplo: Select avg(Salario) From Empregados;20
21.
Função de AgrupamentoEssafunçã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) > 60021
JunçõesExemplos: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.
SubConsultasO uso desubconsultas se faz quando é necessaria a utilização de uma consulta como restrição da consulta resultado. Exemplo:SelectNomeFrom EmpregadosWhereSalario = (Selectmax(salario) From Empregados);24
25.
VIEWPor Que ouso de View?Create View Consultor_Trainee (Nome,Salario,Departamento) AsSelectEmpregados.Nome, Empregados.Salario, Departamento.NomeFrom Empregados Inner Join Departamento On (Empregados.Coddepart = Departamento.Cod)WhereEmpregados.Funcao IN (‘Trainee’,’Consultor’);25
26.
InsertO 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.
UpdateO comando Updateé utilizado para alterar os dados de uma tabela do banco utilizado.Estrutura:UpdatetabelaSet <atribuições>Where <Condição>Exemplos:Update EmpregadosSet Funcao = ‘Consultor’Where Funcao = ‘Trainee’Update EmpregadosSet Funcao = ‘Consultor’, Salario = Salario + 500Where Funcao = ‘Trainee’27
28.
DeleteO comando Deleteé utilizado para apagar dados de uma tabela do banco utilizado.Estrutura:Delete FromtabelaWhere <Condição>Exemplo:Delete From EmpregadosWhere Funcao = ‘Trainee’;28
29.
Commit e RollbackCommit: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’;Rollback29
30.
GrantPermissão de comandosDDLGRANT {comando} TO {usuário} Permissão de objetoGRANT {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.
RevokeREVOKE {comando} ON{object} FROM {usuário}Revoke (exemplos)Revoke deleteOn empregadosFrom igor;Revoke All On empregados From igor; 31
32.
TriggersTriggers ou Gatilhossã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.
TriggersEstrutura de umatrigger:Create Trigger Nome_da_TriggerOn TabelaFor | 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
Stored ProcedureA StoredProcedure é 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