sql - governança municipal · comandos sql comandos ddl (data definitionlanguage) usados para...

36
SQL

Upload: vuongminh

Post on 26-Dec-2018

290 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

SQL

Page 2: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Histórico

� Structured Query Language (SQL)

� Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas de desenvolvimento de bancos de dados relacionais.

Page 3: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Histórico

O SQL tornou-se de fato o padrão depois de 1986, quando o AmericanNational Standards Institute (ANSI), a organização responsável pelos padrões industriais nos Estados Unidos, endossou o SQL como linguagem padrão para os bancos de dados relacionais.

Page 4: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Histórico

� Desde então o SQL vem sofrendo atualizações;

� já sofreu duas atualizações oficiais:

� em 1989;

� em 1992: esse é o usado atualmente mas ainda sofre atualizações, para se adequar as últimas versões de banco de dados relacionais lançadas no mercado.

Page 5: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Histórico

� SQL3

� Padrão aprovado em 1999;

� Versão da linguagem orientada a objetos;

� SGBDs comerciais oferecem parte da SQL3;

� Falta de padronização.

Page 6: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

O que é SQL

� O SGBD (Sistema Gerenciador de Banco de Dados) necessita de uma linguagem que permita aos usuários acesso aos dados.

� SQL (Structured Query Language) é a linguagem de consulta adotada pela maioria dos SGBDs relacionais.

Page 7: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Características do SQL

� Linguagem English-like

� Processa conjunto de registros (tabelas) ao invés de registros individuais

� Padronizada

� Fornece comandos para uma série de tarefas, como:� Recuperação de dados;

� Inclusão, atualização e exclusão de registros;

� Criar, modificar e excluir objetos do banco;

� Etc.

Page 8: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Comandos SQL

Page 9: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Comandos SQL

� Comandos DDL (Data Definition Language)� Usados para construir e modificar estruturas de tabelas e outros objetos no BD.

� Têm efeito imediato.

� Comandos DML(Data Manipulation Language)� Usados para trabalhar com os dados nas tabelas.� Necessitam de um “COMMIT” para sua confirmação.

Page 10: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Comando SELECT

� Recupera informações do banco de dados

� Sintaxe:

SELECT lista_de_colunas

FROM lista_de_tabelas

WHERE condições

GROUP BY agrupamento ***

ORDER BY ordenação_para_apresentação

Page 11: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Exemplo:

SELECT nome

FROM Departamentos;

ou

SELECT *

FROM Departamentos;

* =>Seleção de todas os campos (ou colunas) da tabela de Departamentos

Page 12: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Distinct

� Elimina duplicidades, significando que somente relações distintas serão apresentadas como resultado de uma pesquisa.

� Exemplo

SELECT DISTINCT nome

FROM Empregado;

Page 13: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� TOP n

� Seleciona um número específico de registros.

� Exemplo

SELECT TOP 10 * FROM Cidade;

Page 14: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Funções Agregadas (ou de Agrupamento)

Soma dos valores de n, ignorando nulos

Sum(n)

Menor valor da exprMin(expr)

Maior valor da expMax(expr)

Vezes que o número da expr avalia para algo não nulo

Count(expr)

Média do valor n, ignorando nulosAvg(n)

RetornoFunção

Page 15: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Select AVG (salarios) From Funcionario

� Select Count (codigoPessoa) From Pessoa

� Select MAX (dataInclusao) FROM Pessoa

� Select MIN (dataInclusao) FROM Pessoa

� Select SUM (salarios) FROM Funcionario

Page 16: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Cláusula WHERE

� Usada para selecionar as linhas para consultar ou alterar.

� Se omitida, todas as linhas da tabela serão submetidas àação referente ao comando em questão.

� Exemplo:

SELECT nome

FROM Pessoa

WHERE idade >= 10;

Page 17: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Você pode fazer condições compostas com AND, OR ou NOT.

SELECT nome

FROM empregados

(AND) WHERE (nome = ‘JOSE’ AND salario = 20)

(OR) WHERE (salario = 10 OR salario = 20)

(NOT) WHERE (nome IS NOT NULL)

Page 18: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Operadores lógicos

Menor que ou igual a<=

Menor que<

Maior que ou igual a>=

Maior que>

Igual a =

SignificadoOperador

Page 19: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Você pode fazer condições compostas com like, between ou is null.

SELECT nome

FROM empregados

(like) WHERE (nome like ‘%JOSE%’)

(between) WHERE (salario between 10 and 100)

(is null) WHERE (nome is null)

% => independente, qualquer coisa

Page 20: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Demais Operadores

É um valor nuloIs null

Com padrão de caracteresLike

Lista de valoresIn (...)

Entre dois valores (inclusive)Between...and...

SignificadoOperador

Page 21: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Operadores Negativos

Diferente do padrão de caracteres informadoNot like

Não é um valor nuloIs not null

Não existente numa dada lista de valoresNot in

Não entre dois valores informadosNot between

Não maior que Not nome coluna>

Diferente da colunaNot nome coluna=

Diferente<>

SignificadoOperador

Page 22: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Cláusula Group By

� Realiza o agrupamento por uma coluna da tabela

SELECT nomeFuncionario, nomeDepartamento

FROM Empregado

GROUP BY nomeDepartamento;

Page 23: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Cláusula Order By

� Modifica a ordem de apresentação do resultado da pesquisa (ascendente ou descendente).

SELECT nome, dataNascimento

FROM Empregado

ORDER BY nome ASC;

*** ASC – Ascendente

*** DESC – Descendente

Page 24: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Junção de Tabelas Join

� O uso da operação JOIN numa cláusula FROM especifica como se deseja que as tabelas sejam vinculadas.Use INNER JOIN para associar somente os tuplascoincidentes de ambas as tabelas.

� O OUTER JOIN liga as linhas de tabelas, mas não necessariamente precisam casar entre si. Desta forma, mesmo as linhas que não se encontrou referência no cruzamento das tabelas aparecerá no Resultado de

Dados. Existem tipos de OUTER JOIN:

Page 25: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� LEFT JOIN usado para associar todas as tuplas da primeira tabela com apenas as coincidentes na segunda tabela. O Access retorna com valor nulo para as tuplas que não coincidem na segunda tabela.

� RIGHT JOIN usado para associar todas as tuplas da segunda tabela com apenas as coincidentes na primeira tabela

Page 26: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

SELECT nome_da_tabela1.nome_do_campo,

nome_da_tabela2.nome_do_campo

FROM nome_da_tabela1 inner join

nome_da_tabela2 on

nome_da_tabela1.nome_da_chaveprimaria1=

nome_da_tabela2.nome_da_chave_estrangeira

Page 27: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

SELECT Nome_Tabela.nome_campo

FROM Tabela1 LEFT OUTER JOIN Tabela2

ON Tabela1.chave_primaria = Tabela2.chave_estrangeira

SELECT Nome_Tabela.nome_campo

FROM Tabela1 RIGHT OUTER JOIN Tabela2

ON Tabela1.chave_primaria = Tabela2.chave_estrangeira

Page 28: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Um comando SELECT também pode fazer uma consulta que traz dados de duas ou mais tabelas.

SELECT nome_da_tabela1.nome_do_campo,

nome_da_tabela2.nome_do_campo

FROM nome_da_tabela1, nome_da_tabela2

WHERE nome_da_tabela1.nome_da_chaveprimaria1=

nome_da_tabela2.nome_da_chave_estrangeira

Page 29: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Comando INSERT

� Permite adicionar linhas à uma tabela

� Sintaxe

INSERT INTO [(coluna1, ..., colunaN)]

VALUES (<value1>, ..., <valueN>);

� Exemplo

INSERT INTO Pessoa (rg, nome, sexo)

VALUES (435442829, ‘João’, ‘M’);

Page 30: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Comando UPDATE

� Permite a alteração de valores de uma tabela

� Sintaxe:

UPDATE <tabela> SET <coluna> [ ..., colunaN]= <expressão> WHERE <condição>;

� Exemplo:

UPDATE Pessoa SET nome=‘José’WHERE rg=435442829;

Page 31: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Construções básicas

� Comando DELETE

� Remove linhas de uma tabela

� Sintaxe:

DELETE FROM <tabela> WHERE <condição>;

� Exemplo:

DELETE FROM Pessoa WHERE rg=435442829;

Page 32: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Tipos de dados

TINYINT: Valores numéricos inteiros variando de 0 até 256

SMALLINT: Valores numéricos inteiros variando de –32.768 até 32.767

INT: Valores numéricos inteiros variando de -2.147.483.648 até2.147.483.647

BIT: Somente pode assumir os valores 0 ou 1. Utilizado para armazenar valores lógicos

DECIMAL(I,D) e NUMERIC(I,D): Armazenam valores numéricos inteiros com casas decimais utilizando precisão. I deve ser substituído pela quantidade de dígitos total do número e D deve ser substituído pela quantidade de dígitos da parte decimal (após a vírgula)

SMALLMONEY: Valores numéricos decimais variando de -214.748,3648 até 214.748,3647

Page 33: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Tipos de dados

MONEY: Valores numéricos decimais variando de -922.337.203.685.477,5808 até 922.337.203.685.477,5807

REAL: Valores numéricos aproximados com precisão de ponto flutuante, indo de

-3.40E + 38 até 3.40E + 38

FLOAT: Valores numéricos aproximados com precisão de ponto flutuante, indo de

-1.79E + 308 até 1.79E + 308

SMALLDATETIME: Armazena hora e data variando de 1 de janeiro de 1900 até 6 de junho de 2079. A precisão de hora é armazenada até os segundos.

DATETIME: Armazena hora e data variando de 1 de janeiro de 1753 até31 de Dezembro de 9999. A precisão de hora é armazenada até os centésimos de segundos

Page 34: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Tipos de dados

CHAR(N): Armazena N caracteres fixos (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo épreenchido com espaços em branco

VARCHAR(N): Armazena N caracteres (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido

TEXT: Armazena caracteres (até 2.147.483.647) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que 2.147.483.647, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existemfunções específicas para trabalhar com este tipo de dado

Page 35: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Tipos de dados

NCHAR(N): Armazena N caracteres fixos (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo épreenchido com espaços em branco

NVARCHAR(N): Armazena N caracteres (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido

NTEXT: Armazena caracteres (até 1.073.741.823) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que 1.073.741.823, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existemfunções específicas para trabalhar com este tipo de dado

Page 36: SQL - Governança Municipal · Comandos SQL Comandos DDL (Data DefinitionLanguage) Usados para construir e modificar estruturas de tabelas e outros objetos no BD. Têm efeito imediato

Criando tabelas

� Uma tabela pode ser criada com o comando Create Table

CREATE TABLE Cliente1(

CodCliente int NOT NULL,Nome varchar(50),CPF varchar(11) NULL,DataCadastro datetime NOT NULL DEFAULT (getdate()),Cidade varchar(20) NULL,UF char(2) NULL,País varchar(20) DEFAULT ('Brasil')

)

** NOT NULL (Campo não pode ser nulo)** NULL (Campo pode ser nulo)** DEFAULT (Valor padrão para campo caso o mesmo não seja informado)