SQL - Structured Query Language, 6ª edição

Autor(es): DAMAS, Luís
Visualizações: 453
Classificação: (0)

SQL | Structured Query Language é uma obra fundamental e de leitura obrigatória, pois aborda a questão do acesso a bancos de dados através da linguagem SQL - um padrão internacional. Os assuntos são apresentados de forma detalhada e prática, recorrendo a vários exemplos de comandos que são explicados com o detalhe suficiente para se tornarem acessíveis mesmo a leitores sem qualquer experiência de programação. Nesta nova edição, atualizada e ampliada, foram adicionados quatro novos capítulos que permitem ao leitor uma visão geral sobre o contexto em que se inserem os bancos de dados e os sistemas de informações - particularmente os vários modelos de bancos de dados, projeto de bancos de dados e normalização. São tratados com especial cuidado os comandos mais utilizados da linguagem: SELECT / INSERT, UPDATE e DELETE / CREATE, ALTER e DROP GRANT e REVOKE. Os comandos de SQL são testados em Access, SQL Server, Oracle e MySQL. O livro abrange também as três sublinguagens DDL, DML e DCL, e aborda ainda Criação de views e índices; funções de agregação (estatísticas); joins; ordenação; subconsultas; e cursore. O código-fonte dos programas e o banco de dados usado nos exemplos do livro (antes disponíveis em CD-ROM), podem ser acessados no repositório de materiais suplementares do GEN | Grupo Editorial Nacional, o GEN-IO, mediante cadastro.

19 capítulos

Formato Comprar item avulso Adicionar à Pasta

0 – Introdução

PDF Criptografado

0 - Introdução

Sumário

ß Breve história da SQL ß Características da linguagem SQL ß Apresentação resumida dos vários sistemas utilizados ß Apresentação da forma e ordem em que os assuntos são abordados

0.1 Introdução

Bem-vindos ao mundo dos bancos de dados.

Desta vez iremos estudar e apresentar a linguagem SQL, um verdadeiro caso de sucesso no que diz respeito a acesso e manipulação de dados.

Este livro apresentará a maior parte das características da linguagem SQL. Para que você nunca se sinta perdido, todo o texto está repleto de exemplos explicados com o detalhe necessário para que você não deixe de compreendê-los.

0.2 Breve História da Linguagem SQL

A história da linguagem SQL começa em junho de 1970 com a publicação por E. F. Codd, no

ACM Journal1, de um artigo intitulado “A Relational Model of Data for Large Shared Data

Banks”.

O modelo proposto por Codd é hoje considerado o fundamento para qualquer Sistema de Gerência de Banco de Dados Relacional (SGBDR).

 

1 – Bancos de Dados (Visão Geral)

PDF Criptografado

1 - Bancos de Dados

(Visão Geral)

Sumário

ß Apresentação da estrutura do livro ß Conceitos básicos sobre bancos de dados ß Análise de sistemas ß A linguagem SQL ß Ligação entre as linguagens de programação e bancos de dados

1.1 Introdução

Neste capítulo apresentaremos uma visão geral dos assuntos abordados neste livro.

Os tópicos aqui abordados resumidamente serão apresentados de uma forma mais profunda e pormenorizada nos capítulos seguintes.

Sendo a linguagem SQL – Structured Query Language – uma linguagem específica de acesso e manipulação de bancos de dados relacionais, é então necessário falar, ainda antes de pensarmos sequer na linguagem SQL, nos conceitos de bancos de dados e nos sistemas que os gerenciam.

1.2 Bancos de Dados

De uma forma simplista, podemos dizer que um banco de dados consiste em uma coleção de dados estruturados, organizados e armazenados de forma persistente.

Um banco de dados não tem, necessariamente, de estar informatizado. Pode perfeitamente consistir em um fichário existente em um escritório com o nome dos fornecedores ou mesmo em um conjunto de Post-it colados em um painel de parede com a informação dos automóveis existentes em estoque para venda.

 

2 – Modelos de Bancos de Dados

PDF Criptografado

2 - Modelos de Bancos de Dados

Sumário

ß Dados ß Informações ß Chaves e integridade ß Bancos de dados ß Sistemas de gerência de banco de dados ß

Modelos de bancos de dados ß Modelo hierárquico ß Modelo em rede ß Modelo relacional ß Modelo orientado a objetos ß Modelo objeto-relacional ß Modelo distribuído ß Arquitetura cliente-servidor

2.1 Introdução

Neste capítulo apresentaremos algumas das tecnologias disponíveis para o armazenamento de dados e os modelos em que se baseiam. Veremos também que problemas, vantagens e desvantagens resultam de cada uma das opções.

2.2 Dados e Informações

O leitor já conhece as palavras Dados e Informações, mas qual é a diferença entre Dados e

Informações? Será que são a mesma coisa?

Tomemos por exemplo o seguinte dado: 2. Qual o significado de 2?

Por si só, o valor 2 é um dado, mas qual é o seu significado? Se não tiver significado é como uma caixa cheia de palavras soltas. Embora possam constituir o conjunto de palavras de um livro, se forem analisadas individualmente e sem estarem integradas em um contexto qualquer deixam de ter significado.

 

3 – Projeto de Bancos de Dados Relacionais

PDF Criptografado

Verificação

Cap. 3

Págs. 41

Operador: ROBERTO

Data: 22/02/2007

3 - Projeto de Bancos de

Dados Relacionais

Sumário

ß Bancos de dados e sistemas de informações ß Ciclo de vida dos sistemas de informações ß Ciclo de vida de um banco de dados ß Modelo de Entidades e Relacionamentos (MER) ß Aplicação do MER a um exemplo prático

3.1 Introdução

Neste capítulo iremos estudar a forma como os bancos de dados, em particular os bancos de dados relacionais, são projetados.

É importante lembrar que um banco de dados existe, normalmente, no contexto de uma organização. A relação entre o banco de dados e a organização pode ser tal que o bom ou mau funcionamento daquele influenciará diretamente os resultados obtidos pela organização.

Por isso, o banco de dados tem que ser implementado de acordo com as necessidades da organização.

O projeto cuidadoso de um banco de dados é algo obrigatório no seu processo de desenvolvimento e implementação, que não pode ser negligenciado ou deixado nas mãos de quem não tem conhecimentos técnicos para tal.

 

4 – Normalização

PDF Criptografado

Verificação

Cap. 4

Págs. 19

Operador: ROBERTO

Data: 23/02/2007

4 - Normalização

Sumário

ß Normalização ß Dependências funcionais ß Dependências multivaloradas ß Primeira Forma Normal (1FN) ß

Segunda Forma Normal (2FN) ß Terceira Forma Normal (3FN) ß Forma Normal de Boyce-Codd (FNBC) ß

Quarta Forma Normal (4FN) ß Quinta Forma Normal (5FN) ß Desnormalização

4.1 Introdução

No capítulo anterior, estudamos como modelar no papel um banco de dados, independentemente da estrutura de hardware e software onde este será implementado.

Vimos também que existem entidades compostas por um conjunto de atributos e estas se relacionam entre si através de relacionamentos especificados através de atributos comuns (chave primária e chave estrangeira) para fazer a ligação entre as entidades.

No entanto, diante de um cenário real as dúvidas começam a surgir em cascata. Quantas entidades o meu modelo deverá conter? Que atributos devo colocar? Em que entidades coloco quais atributos? Que relacionamentos vão existir? Com que cardinalidade?

 

5 – Comando Select

PDF Criptografado

5 - Comando SELECT

(Seleções Simples)

Sumário

ß Apresentação do comando SELECT ß Seleções simples ß Projeção ß Restrição ß Cláusula WHERE

ß Condições ß Operadores lógicos e relacionais ß Precedência dos operadores ß Operadores BETWEEN, IN e IS

ß Seleções utilizando strings – operador LIKE

5.1 Introdução

A linguagem SQL (Structured Query Language) é uma linguagem declarativa, ao contrário das linguagens tradicionais, que são do tipo procedimental. Permite ao usuário expressar aquilo que pretende sem ter que entrar em grandes detalhes sobre a localização física dos componentes, etc.

Ao utilizarem a linguagem SQL, os usuários apenas indicam aquilo que pretendem sem dizer exatamente de que forma o computador terá que operar para obter os resultados solicitados. Por exemplo, ao indicar que se pretende apresentar o resultado de uma pesquisa de forma ordenada, apenas iremos adicionar ao comando de seleção a cláusula ORDER BY, não indicando qual o algoritmo de ordenação que o computador deverá utilizar.

 

6 – Ordenação

PDF Criptografado

6 - Ordenação

Sumário

ß Cláusula ORDER BY ß Ordenação por uma coluna ß Ordenação por mais de uma coluna ß Seleção de expressões

ß Ordenação por posição ß Ordenação e o valor NULL ß DISTINCT e ALL

6.1 Introdução

Neste capítulo abordaremos a forma pela qual podemos solicitar a ordenação dos resultados fornecidos por um comando SELECT.

A ordenação está baseada no valor do código ASCII de cada caractere. Assim, os dígitos aparecem antes dos caracteres alfabéticos e as maiúsculas aparecem antes das minúsculas.

0 < 1< ... <8 <9 < ...

Alguns sistemas são case sensitive1, outros não. Este fato irá influenciar a ordem pela qual serão ordenados os valores.

A ordenação pode ser realizada através da cláusula ORDER BY no comando SELECT. Esta cláusula, se existir, aparece sempre posicionada no final do comando SELECT.

SELECT Campo1 , Campo2 , ... , Campon , *

FROM Tabela1 , ... , Tabelak

[WHERE Condição]

 

7 – Juntando Várias Tabelas

PDF Criptografado

7 - Juntando Várias

Tabelas

Sumário

ß Ligação entre tabelas ß Produto cartesiano de tabelas ß Cross Join ß Equi Join ß Natural Join ß Inner Join

ß Outer Join ß UNION ß Self Join ß INTERSECT ß MINUS

.

7.1 Introdução

Neste capítulo abordaremos a ligação entre tabelas, operação normalmente conhecida como

Join.

Nota

O Join (ligação) entre tabelas permite extrair, através de um único SELECT, informações contidas em diferentes tabelas.

O Modelo Relacional estabelece claramente as regras para a divisão da informação entre tabelas, de forma a evitar a duplicação de informação.

Essa dispersão da informação por diferentes tabelas é facilmente manipulável através da linguagem SQL, uma vez que a ligação entre tabelas será realizada através da ligação entre as

Chaves Estrangeiras e as respectivas Chaves Primárias de onde são originárias.

Como o leitor já deve saber, uma Chave Estrangeira é um campo ou conjunto de campos existente em uma tabela que permite ligar os dados desta tabela a uma outra, onde este mesmo conjunto de campos existe como Chave Primária.

 

8 – Funções de Agregação

PDF Criptografado

8 - Funções de Agregação

Sumário

ß MAX ß MIN ß COUNT ß SUM ß AVG ß Funções de agregação e NULL ß Funções de agregação e

DISTINCT

8.1 Introdução

Neste capítulo estudaremos as Funções de Agregação disponibilizadas pela linguagem SQL.

Estas funções, também conhecidas como Funções Estatísticas, têm por objetivo obter informação sobre conjuntos de linhas especificados na cláusula WHERE ou sobre grupos de linhas indicados na cláusula GROUP BY1.

As funções de agregação são:

FUNÇÃO

DESCRIÇÃO

COUNT

Devolve o número de linhas.

MAX

Devolve o Maior valor da coluna.

MIN

Devolve o Menor valor da coluna.

SUM

Devolve a Soma de todos os valores da coluna.

AVG

Devolve a Média (AVeraGe) de todos os valores da coluna.

8.2 Função COUNT

A função de agregação COUNT devolve o número de linhas que resultam de um SELECT. Pode ser utilizada de três formas distintas:

FORMA

DESCRIÇÃO

 

9 – Agrupando a Informação

PDF Criptografado

9 - Agrupando a Informação

Sumário

ß Cláusula GROUP BY ß Cláusula HAVING ß WHERE vs HAVING ß Agrupamentos e o valor NULL ß

Ordenação

9.1 Introdução

Este capítulo está intimamente relacionado com o conteúdo do capítulo anterior.

Como vimos, as funções de agregação são uma ferramenta muito útil quando usadas para obter informação resumida sobre o resultado de um comando SELECT.

No entanto, estas funções podem ser particularmente úteis no tratamento de informações de forma agrupada, não como um todo, tal como anteriormente, mas em grupos menores.

Pensemos então no seguinte problema:

Problema: Mostrar o Valor das Comissões existentes no banco de dados.

Resolução: É fácil, é barato, … , só não dá milhões…

SELECT Id, Valor

FROM Comissao

ORDER BY Id

009damsL.indd 200

13.03.07 09:13:34

Agrupando a Informação

201

+----+-------+

| Id | Valor |

+----+-------+

| 14 | 10500 |

 

10 – Subconsulta

PDF Criptografado

10 - Subconsultas

Sumário

ß Subconsultas ß Subconsultas correlacionadas e não-correlacionadas ß Consultas – como funcionam ß Operador IN

ß Operador EXISTS ß ALL e ANY ß Observações sobre a utilização por outros comandos

10.1 Introdução

Uma das características do comando SELECT, que por vezes passa despercebida, reside no fato de qualquer comando SELECT não devolver dados, linhas ou colunas, mas devolver sempre uma Tabela como resultado da sua execução.

Nota

O resultado do comando SELECT é sempre uma Tabela, ainda que da sua execução não resulte qualquer linha como resultado.

Isto é particularmente perceptível no fato de sempre serem atribuídos nomes às colunas resultantes de um SELECT, mesmo que estas sejam constituídas por expressões ou constantes.

Portanto, sendo o resultado de qualquer comando SELECT uma tabela, podemos então utilizar os resultados devolvidos nessa tabela e incorporá-los em outro comando SELECT que necessite deles.

 

11 – Manipulação de Dados

PDF Criptografado

11 - Manipulação de Dados

Sumário

ß Comando INSERT ß Comando UPDATE ß Comando DELETE ß Manipulação de datas

11.1 Introdução

Nos sete capítulos anteriores abordamos, de forma mais ou menos exaustiva, o comando

SELECT, o qual permite que nos comuniquemos com o Banco de Dados solicitando-lhe informações.

O comando SELECT é o único comando responsável por nos fornecer os dados existentes em um Banco de Dados.

O leitor já deve estar se perguntando:

Problema: E como é que esses dados são colocados lá?

A resposta será dada neste capítulo com a apresentação dos comandos INSERT, UPDATE e

DELETE.

Os comandos INSERT, UPDATE, DELETE e SELECT são normalmente classificados como pertencendo a uma sublinguagem da linguagem SQL denominada DML - Data Manipulation

Language, isto é, a parte da linguagem SQL responsável pela manipulação de dados.

Nota

Toda a manipulação dos dados existentes em um Banco de Dados Relacional pode ser realizada através dos comandos INSERT, UPDATE e DELETE.

 

12 – Criação e Manutenção de Tabelas

PDF Criptografado

12 - Criação e Manutenção de Tabelas

Sumário

ß DDL - Data definition language ß Comandos CREATE TABLE, ALTER TABLE, DROP TABLE ß Tipos de dados ß Integridade referencial ß Regras de integridade (CONSTRAINTS)

ß NOT NULL, PRIMARY KEY, CHECK ß PRIMARY KEY, FOREIGN KEY, REFERENCES

ß CASCADE

12.1 Introdução

Nos capítulos anteriores abordamos uma sublinguagem da linguagem SQL denominada DML

- Data Manipulation Language ou, em português, Linguagem de Manipulação de Dados.

Este subcomponente da linguagem SQL disponibiliza os comandos SELECT, INSERT, UPDATE e DELETE.

Estes quatro comandos permitem realizar todas as operações sobre dados. É por isso que o nome da sublinguagem se refere à Manipulação de Dados.

Por sua vez, para existirem os dados têm que ser armazenados em tabelas.

Essas tabelas terão que ser criadas, bem como outras possíveis estruturas de apoio e suporte.

A linguagem SQL também disponibiliza um conjunto de comandos para criação (CREATE), alteração (ALTER) e remoção (DROP) de tabelas e outras estruturas.

 

13 – Views e Índices

PDF Criptografado

13 - Views e Índices

Sumário

ß Noção de View ß Comandos CREATE VIEW, DROP VIEW ß Cláusula WITH CHECK OPTION ß O que são Índices ß Comandos CREATE INDEX, DROP INDEX

13.1 Introdução

O capítulo anterior é, sem dúvida, um dos mais importantes, pois aborda todo o contexto em que se faz a criação das estruturas (tabelas) onde são armazenados os dados.

No entanto, surgem outras questões.

Suponhamos, por exemplo, que na nossa tabela Pessoa existam Informações Gerais (Nome,

Endereço, Telefone, etc.), Informações Contábeis (Salário, Subsídios, Impostos, etc.) e Informações Médicas (Hepatite, AIDS, Drogas, etc.).

Embora essas informações estejam todas localizadas fisicamente na mesma tabela, não faz sentido que o departamento de contabilidade tenha acesso aos dados médicos de cada pessoa, da mesma forma que o pessoal de saúde não deverá ter acesso ao salário que cada pessoa ganha.

Apesar desta separação ser absolutamente necessária, ambos os serviços deverão ter acesso aos dados de informação geral para que o cheque com o salário possa ser enviado para o mesmo endereço para onde devem seguir as análises clínicas realizadas pelo serviço médico.

 

14 – Transações

PDF Criptografado

14 - Transações

Sumário

ß Noção de Transação ß Comandos COMMIT e ROLLBACK ß Noção de CHECKPOINT

14.1 Introdução

Para compreendermos o conceito de transação, começaremos apresentando um exemplo clássico, que permite ilustrar um problema que pode acontecer e que a noção de transação resolverá.

Suponhamos que o indivíduo A pretenda transferir 1000 reais da sua conta bancária para a conta do indivíduo B.

Uma transferência bancária corresponde a um depósito em uma conta e a uma retirada, do mesmo montante, em outra conta.

O conjunto de comandos de SQL a serem executados para realizar a referida transação seria constituído por dois comandos UPDATE:

UPDATE Tabela_Conta

SET Saldo = Saldo + 1000

WHERE Conta = 'Conta B'

UPDATE Tabela_Conta

SET Saldo = Saldo – 1000

WHERE Conta = 'Conta A'

O primeiro comando creditaria o montante na conta destino (Sr. B).

O segundo comando faria a retirada do mesmo montante na conta origem (Sr. A).

 

15 – Segurança

PDF Criptografado

15 - Segurança

Sumário

ß Conceitos gerais sobre segurança ß Views como mecanismo de segurança ß Tipos de níveis de segurança

ß Comandos CREATE, ALTER e DROP USER ß Comandos GRANT e REVOKE

15.1 Introdução

No capítulo anterior foi apresentada a noção de Transação e explicada a forma brilhante como os sistemas de banco de dados as processam. Apresentaremos agora um outro tópico, não menos importante, que consiste na Segurança de acesso aos dados e na própria segurança dos dados.

Ao contrário do tópico anterior, a forma como os bancos de dados lidam com a segurança deixa algo a desejar.

O modo como os SGBDR lidam com a segurança dos dados e do acesso à informação é realizado a partir de um conjunto de Permissões1.

Nota

A concessão de permissões normalmente é realizada através do comando GRANT.

Para eliminar uma permissão ou privilégio utiliza-se o comando REVOKE.

A forma como a maioria dos sistemas lida com estas questões é muito variável, sendo normalmente disponibilizada uma ferramenta que permite fazer a distribuição de privilégios de forma mais ou menos assistida e de forma mais ou menos visual.

 

16 – SQL Embutido

PDF Criptografado

16 - SQL Embutido

Sumário

ß Declaração de variáveis ß BEGIN DECLARE SECTION … END DECLARE SECTION ß A estrutura

SQLCA ß SELECT … INTO ß Declaração e utilização de cursores - DECLARE CURSOR - OPEN CURSOR

- FETCH ... INTO - CLOSE CURSOR ß WHENEVER ß Indicadores ß Prefixo EXEC SQL

16.1 Introdução

A linguagem SQL é, na realidade, uma grande linguagem, pois aproxima de uma forma extraordinária uma linguagem de acesso a dados da linguagem falada, reduzindo desta forma o tempo necessário à sua aprendizagem.

No entanto, nem tudo são rosas. Em informática (como em quase tudo na vida) sempre se ganha por um lado e se perde por outro.

Embora seja muito simples obter o resultado de consultas através do comando SELECT, existem algumas limitações.

Problema: Qual é o comando de SQL que permite obter os 100 melhores clientes de um

Banco?

Resposta:

Por incrível que pareça, não é possível responder a esta pergunta utilizando simplesmente a linguagem SQL, pois o SELECT devolve sempre todos os registros que satisfazem uma determinada condição, independentemente do número de registros envolvidos.

 

17 – SQL e Visual Basic

PDF Criptografado

17 - SQL e Visual Basic

Sumário

ß VB no contexto dos bancos de dados ß Módulo com funções de acesso a bancos de dados ß Exemplo de um projeto em Visual Basic: VB6  ADO, VB6  DAO, VB.Net

17.1 Introdução

No capítulo anterior vimos como a linguagem SQL podia ser integrada (embutida) no código de uma outra linguagem, a que chamamos “Linguagem Hospedeira”, aproveitando as vantagens e características de cada uma das linguagens.

Com o advento do sistema operacional Windows e com o avanço das técnicas de programação, as linguagens tradicionais1 evoluíram no sentido de se adaptar às novas abordagens e deram origem a outras, denominadas Linguagens Orientadas a Objetos.

A título de exemplo, pode-se observar a evolução das seguintes linguagens:

BASIC

PASCAL

C

Visual Basic

Delphi

C++ e/ou Visual C++

VB.Net

C#

Nas linguagens orientadas a objetos, como o próprio nome indica, existe a possibilidade de lidar com Objetos e com as Classes a partir das quais estes são criados.

 

Carregar mais


Detalhes do Produto

Livro Impresso
eBook
Capítulos

Formato
PDF
Criptografado
Sim
SKU
BPPD000209843
ISBN
9788521632443
Tamanho do arquivo
11 MB
Impressão
Desabilitada
Cópia
Desabilitada
Vocalização de texto
Não
Formato
PDF
Criptografado
Sim
Impressão
Desabilitada
Cópia
Desabilitada
Vocalização de texto
Não
SKU
Em metadados
ISBN
Em metadados
Tamanho do arquivo
Em metadados