38
SQL Básico Igor Alves

Treinamentodesqlbsicoigoralves 13046863112845 Phpapp01 110506075413 Phpapp01

Embed Size (px)

DESCRIPTION

Banco de dados

Citation preview

SQL Bsico

SQL BsicoIgor AlvesAgendaO que SQLTipos de Consultas SQLManipulando TabelasEstrutura de uma Consulta SQLCondio no WhereFunes de AgregaesFunes de AgrupamentoJunesSubconsultasViewComando Insert, Update e DeleteCommit e RollbackGrant e RovokeTriggersStored Procedure2O Que SQL?3Tipos de Consultas SQLData Definition Language

DDLData Control Language

DCLData ManipulationLanguageDMLSQL Structured Query LanguageDefine o EsquemaManipula o Esquema Assegura o Esquema4Manipulando TabelasPara a manipulao de tabelas existem alguns comandos especficos.

Create TableConstraintChave PrimriaChave EstrangeiraAlter TableDrop TableTruncate Table

5Manipulando TabelasO comando Create Table utilizado para criar uma tabela no banco de dados.

Exemplo:Create Table Departamento (CodInterger Not Null, Nome Varchar(20) Not Null,Constraint pkdepart Primary Key (Cod))

6Manipulando TabelasExemplo:Create Table Empregados (CodInterger Not Null, Nome Varchar(20) Not Null, EnderecoVarchar (30), Funcao Varchar (30) Not Null, CoddepartInt Not Null, SalarioDecimal(10,2) Not Null,

Constraint pkempregado Primary Key (Cod), Constraint fkdepart Foreign Key (Coddepart) References departamento(Cod) )

7Manipulando TabelasO 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;

8Manipulando TabelasO 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;

9Estrutura de Consultas SQLPara se consultar uma informao em um banco de dados utlizado o comando SELECT da linguagem SQL. Esse comando tem uma estrurura bem definida.

SELECT FROM WHERE GROUP BY HAVING ORDER BY ;

OBS: A clausula Order By pode ser utilizada para uma ordenao crescente (ASC) ou decrescente(DESC).

10Estrutura de Consultas SQLSELECTCASEWHEN STATUSLAN = 0 THEN Em AbertoWHEN STATUSLAN = 1 THEN BaixadoELSE CanceladoEND STATUSLAN

FROM TITULOS11Estrutura de Consultas SQLNO LOCK

SELECTCODFROM EMPREGADOS WITH(NO LOCK)

12Condies no WhereA clausula WHERE das consultas sql tem uma serie de operadores que facilitam a definio das condies do comando SELECT a ser executado, So elas:

Operadores de Comparao (=,)BetweenLike / Not LikeIN / Not INIS Null / IS Not NullAnd e Or

13Condies no WhereOperadores de Comparao:

=igual a >maior que=maior que ou igual a 1000;Select * From Empregados Where salario = 720;Select * From Empregados Where salario 720; 14Condies no WhereOs comandos Between e Not Between so utilizados na clausula Where quando necessario utilizar uma faixa de valores para uma restrio, 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 esto inclusos no resultado.

15Condies no WhereOs comandos Like e Not Like so utilizados na clausula Where quando necessario utilizar uma faixa de valores para campos dos tipos caracter e datatime para uma restrio, como demonstrado abaixo:

Select * From Empregados Where nome like %E%;Select * From Empregados Where nome like E%;Select * From Empregados Where nome like %E;16Condies no WhereOs comandos IN e Not IN so utilizados na clausula Where quando necessario utilizar uma faixa de valores definida pelo usurio, como demonstrado abaixo:

Select * From Empregados Where salario In (600,650,720);Select * From Empregados Where salario Not In (600,650,720);

17Condies no WhereOs comandos IS Null e IS Not Null so utilizados quando deseja-se determinar se a condio nula ou no, como demonstrado abaixo:

Select * From Empregados Where salario IS Null;Select * From Empregados Where salario IS Not Null;

18Condies no WhereOs comandos AND(Todas as restries so validas) e OR(Pelo menos uma das restries valida) so utilizado para definir mais de uma restrio ou caso queira que a restrio 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 = Estagirio);

19Funo de AgregamentoEssas funes tem a finalidade de agregar os dados a serem retornados numa consulta SQL, So 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;

20Funo de AgrupamentoEssa funo 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

21Junes

22JunesExemplos: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;

23SubConsultasO uso de subconsultas se faz quando necessaria a utilizao de uma consulta como restrio da consulta resultado.

Exemplo:SelectNome

From Empregados

WhereSalario = (Select max(salario) From Empregados);24VIEWPor 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);

25InsertO 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,Estagirio,600,1);

Insert Into Empregados(Cod,Nome,Funcao,Salario,Coddepart) Values(1,Nelson,Estagirio,600,(Select min(cod) From Departamento);

26UpdateO comando Update utilizado para alterar os dados de uma tabela do banco utilizado.

Estrutura:Update tabela Set Where

Exemplos:Update EmpregadosSet Funcao = ConsultorWhere Funcao = Trainee

Update EmpregadosSet Funcao = Consultor, Salario = Salario + 500Where Funcao = Trainee

27DeleteO comando Delete utilizado para apagar dados de uma tabela do banco utilizado.

Estrutura:Delete From tabela Where

Exemplo:Delete From EmpregadosWhere Funcao = Trainee;

28Commit e RollbackCommit: Usado para confirmar uma transao.

RollBack: Usado para desfazer uma transao.

OBS: No SQL Server para se utilizar os comandos Commit e RollBack necessrio a abertura de transao com o comando Begin Tran.

Exemplo:Begin TranDelete From EmpregadosWhere Funcao = Trainee;Rollback

29GrantGRANT (exemplos)

Grant Alter tables To igor;

Grant select, insert, update, delete On empregados To igor;

Grant All On empregados To igor;

Permisso de comandos DDL

GRANT {comando} TO {usurio}

Permisso de objeto

GRANT {comando} ON {object} TO {usurio} [ WITH GRANT OPTION]30RevokeRevoke (exemplos)

Revoke delete On empregados From igor;

Revoke All On empregados From igor;

REVOKE {comando} ON {object} FROM {usurio}

31TriggersTriggers ou Gatilhos so procedimentos disparados atravs do uso dos comandos: Insert,Update ou Delete.

No SQL Server Existem algumas condies que determinam o momento que a triggers ser executada, so 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.32TriggersEstrutura de uma trigger:Create Trigger Nome_da_TriggerOn Tabela For | Alter | Instead Of { insert,update, delete} As instrues SQL;

Para se alterar o cdigo de uma Trigger utiliza-se o comando: Alter Trigger.Para excluir uma Trigger utiliza-se o comando Drop Trigger.

33TriggersExemplo:Create Trigger Tg_Empregados On Empregados Instead Of Insert AsDeclare @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 = SalarioFrom inserted

Insert Into Empregados(Cod,Nome,Endereco,Funcao,Coddepart,Salario) values ((Select max(Cod)+1 From Empregados), @Nome,@Endereco,@Funcao,@Coddepart,@Salario)

34Stored ProcedureA Stored Procedure Um procedimento armazenado (Stored Procedure), uma coleo de instrues 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 usurio do banco de dados faa sua execuo.(SQL Magazine Introduo a Stored Procedure)

35Stored ProcedureExemplo:Criando uma Stored Procedure:Create Procedure sp_insereUsuario@CPF DECIMAL(11,0),@NOME VARCHAR(30),@EMAIL VARCHAR(30)AsINSERT INTO USUARIO (CPF,NOME,EMAIL,DT_CADASTRO) VALUES (@CPF,@NOME,@EMAIL, GETDATE());

Executando uma Stored Procedure:EXEC sp_insereUsuario@CPF = '03478956212', @NOME = 'Igor',@EMAIL = '[email protected]';

36Dvidas

Contatos: E-Mail: [email protected]: http://www.linkedin.com/in/igoralves37ReferenciasSQL Magazine Introduo a Stored Procedure:http://www.devmedia.com.br/post-2213-Introducao-as-Stored-Procedure-com-SQL-Server-2000-2005.html38