Você está na página 1de 37

SQL Bsico

Igor Alves

Agenda
O que SQL Tipos de Consultas SQL Manipulando Tabelas Estrutura de uma Consulta SQL Condio no Where Funes de Agregaes Funes de Agrupamento Junes Subconsultas View Comando Insert, Update e Delete Commit e Rollback Grant e Rovoke Triggers Stored Procedure

Tipos de Consultas SQL


SQL Structured Query Language

Data Definition Language DDL Define o Esquema

Data Manipulation Language DML Manipula o Esquema

Data Control Language DCL Assegura o Esquema

Manipulando Tabelas
Para a manipulao de tabelas existem alguns comandos especficos. Create Table Constraint Chave Primria Chave Estrangeira Alter Table Drop Table Truncate Table

Manipulando Tabelas
O comando Create Table utilizado para criar uma tabela no banco de dados. Exemplo: Create Table Departamento (Cod Interger Not Null, Nome Varchar(20) Not Null, Constraint pkdepart Primary Key (Cod) )

Manipulando Tabelas
Exemplo: Create Table Empregados (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, Constraint pkempregado Primary Key (Cod), Constraint fkdepart Foreign Key (Coddepart) References departamento(Cod) )

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 Drop Endereco Cascade; Alter Table Empregados Drop Endereco Restrict; Alter Table Empregados Drop Column Endereco;

Manipulando Tabelas
O 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;

Estrutura de Consultas SQL


Para se consultar uma informao em um banco de dados utlizado o comando SELECT da linguagem SQL. Esse comando tem uma estrurura bem definida. SELECT <lista de atributos e funes> FROM <lista de tabelas> WHERE <condies> GROUP BY <atributos de agrupamento> HAVING <condio de agrupamento> ORDER BY <list de atributos>;

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

Estrutura de Consultas SQL


SELECT CASE WHEN STATUSLAN = 0 THEN Em Aberto WHEN STATUSLAN = 1 THEN Baixado ELSE Cancelado END STATUSLAN FROM TITULOS

10

Estrutura de Consultas SQL


NO LOCK SELECT COD FROM EMPREGADOS WITH(NO LOCK)

11

Condies no Where
A 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 (=,<,>) Between Like / Not Like IN / Not IN IS Null / IS Not Null And e Or

12

Condies no Where
Operadores de Comparao: = > < >= <= <> igual a maior que menor que maior que ou igual a menor que ou igual a diferente

Exemplos: 1. Select * From Empregados Where salario > 1000; 2. Select * From Empregados Where salario = 720; 3. Select * From Empregados Where salario <> 720;

13

Condies no Where
Os comandos Between e Not Between so utilizados na clausula Where quando necessario utilizar uma faixa de valores para uma restrio, como demonstrado abaixo: 1. Select * From Empregados Where salario Between 600 and 720; 2. Select * From Empregados Where salario Not Between 600 and 720; OBS: Os valores extremos da faixa de valores esto inclusos no resultado.

14

Condies no Where
Os 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: 1. Select * From Empregados Where nome like %E%; 2. Select * From Empregados Where nome like E%; 3. Select * From Empregados Where nome like %E;

15

Condies no Where
Os comandos IN e Not IN so utilizados na clausula Where quando necessario utilizar uma faixa de valores definida pelo usurio, como demonstrado abaixo: 1. Select * From Empregados Where salario In (600,650,720); 2. Select * From Empregados Where salario Not In (600,650,720);

16

Condies no Where
Os comandos IS Null e IS Not Null so utilizados quando deseja-se determinar se a condio nula ou no, como demonstrado abaixo: 1. Select * From Empregados Where salario IS Null; 2. Select * From Empregados Where salario IS Not Null;

17

Condies no Where
Os 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: 1. Select * From Empregados Where salario IS Null and funcao = Trainee; 2. Select * From Empregados Where salario IS Null and (funcao = Trainee or funcao = Estagirio);

18

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

19

Funo de Agrupamento
Essa 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

20

Junes

21

Junes
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;

22

SubConsultas
O uso de subconsultas se faz quando necessaria a utilizao de uma consulta como restrio da consulta resultado. Exemplo: Select Nome From Empregados Where Salario = (Select max(salario) From Empregados);

23

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);

24

Insert
O 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);
25

Update
O comando Update utilizado para alterar os dados de uma tabela do banco utilizado. Estrutura: Update tabela Set <atribuies> Where <Condio> Exemplos: Update Empregados Set Funcao = Consultor Where Funcao = Trainee

Update Empregados Set Funcao = Consultor, Salario = Salario + 500 Where Funcao = Trainee
26

Delete
O comando Delete utilizado para apagar dados de uma tabela do banco utilizado. Estrutura: Delete From tabela Where <Condio> Exemplo: Delete From Empregados Where Funcao = Trainee;

27

Commit e Rollback
Commit: 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 Tran Delete From Empregados Where Funcao = Trainee; Rollback

28

Grant
Permisso de comandos DDL GRANT {comando} TO {usurio} Permisso de objeto GRANT {comando} ON {object} TO {usurio} [ WITH GRANT OPTION] GRANT (exemplos) Grant Alter tables To igor; Grant select, insert, update, delete On empregados To igor; Grant All On empregados To igor;

29

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

Revoke (exemplos) Revoke delete On empregados From igor; Revoke All On empregados From igor;

30

Triggers
Triggers 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.

31

Triggers
Estrutura de uma trigger: Create Trigger Nome_da_Trigger On 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.

32

Triggers
Exemplo: Create Trigger Tg_Empregados On Empregados Instead Of Insert As Declare @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 = Salario From inserted Insert Into Empregados(Cod,Nome,Endereco,Funcao,Coddepart,Salario) values ((Select max(Cod)+1 From Empregados), @Nome,@Endereco,@Funcao,@Coddepart,@Salario)
33

Stored Procedure
A 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)

34

Stored Procedure
Exemplo: Criando uma Stored Procedure: Create Procedure sp_insereUsuario @CPF DECIMAL(11,0), @NOME VARCHAR(30), @EMAIL VARCHAR(30) As INSERT INTO USUARIO (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';

35

Dvidas

Contatos: E-Mail: igor.alvez@gmail.com Linkedin: http://www.linkedin.com/in/igoralves


36

Referencias
SQL Magazine Introduo a Stored Procedure: http://www.devmedia.com.br/post-2213-Introducao-as-StoredProcedure-com-SQL-Server-2000-2005.html

37